Subject: bug#23424: 25.0.93; error in process sentinel with Melpa added to package-archives

From: Kaushal Modi <[email-masked]>
Date: Mon, 02 May 2016 16:22:28 +0000

>
> Given the cause of the problem, how would you wish to improve the
> error message?
>
>   Thread 1 hit Breakpoint 3, Fsignal (error_symbol=20888, data=0) at
> eval.c:1471
>   1471        = (NILP (error_symbol) ? Fcar (data) : error_symbol);
>   $44 = 20888
>   $45 = (struct Lisp_Symbol *) 0x2b2ad00 <lispsym+20888>
>   "end-of-file"
>   (gdb) bt
>   #0  Fsignal (error_symbol=20888, data=0) at eval.c:1471
>

>   Lisp Backtrace:
>   "read-from-string" (0x82d6a0)
>   0x62aa770 PVEC_COMPILED
>   "apply" (0x82de30)
>   "url-http-activate-callback" (0x82e400)
>   "url-http-end-of-document-sentinel" (0x82e9b0)
>   "url-http-async-sentinel" (0x82ef98)
>   (gdb) frame 20
>   #20 0x0126427b in Fread_from_string (string=-9223372036748765968,
> start=0,
>       end=0) at lread.c:2073
>   2073      ret = read_internal_start (string, start, end);
>   (gdb) p string
>   $46 = -9223372036748765968
>   (gdb) xstring
>   $47 = (struct Lisp_String *) 0x65194f0
>   0
>

Hi Eli, I don't have C coding experience to be able to provide an answer
that makes sense or is practically possible. I was just curious to know if
it were possible to add more info to the process sentinel error message..

So here's my try at a suggestion on how that error message could possible
be improved:

For instance.. an action to fetch an XYZ url was started. But for whatever
reason (like empty string detection), that XYZ url fetch action was
incomplete. So may be the error said: Unable to fetch XYZ url (instead of
providing the lower level error of empty string to the user).

But then again, how do we define what's upper level and what's lower level
error? :)

I aim to just brain-storm on possible error message improvement. Hope this
helps.

Thanks for replicating the error in gdb. Without you paraphrasing what that
backtrace meant, I wouldn't have known what to make out of that long
backtrace.

I tried a brief attempt at recreating the same, but it didn't work.. I got
the "error in process filter" to happen in emacs, but the gdb interface
just showed this:

=====

Temporary breakpoint 2 at 0x578c80: file sysdep.c, line 915.
(gdb) r -Q
Starting program: /home/kmodi/downloads/git/emacs/src/emacs -Q
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffed75f700 (LWP 9860)]

(emacs:9848): GLib-GIO-CRITICAL **: g_settings_schema_source_lookup:
assertion 'source != NULL' failed

break Fsignal

bt

=====

I was expecting the (gdb) prompt to show up where I could type "break
Fsignal" (I am assuming that's how you set breakpoint at Fsignal?). But it
didn't.. looks like that prompt was lost after "GLib-GIO-CRITICAL **:
g_settings_schema_source_lookup: assertion 'source != NULL' failed" showed
up.

( I am totally exposing my level of experience with gdb and C debug with
that :))
-- 

-- 
Kaushal Modi