unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Tassilo Horn <tsdh@gnu.org>
To: Michael Albinus <michael.albinus@gmx.de>
Cc: rpluim@gmail.com, 21313@debbugs.gnu.org
Subject: bug#21313: 25.0.50; Strange errors from dbus-handle-event
Date: Sat, 03 Oct 2015 07:40:05 +0200	[thread overview]
Message-ID: <87wpv4qzm2.fsf@gnu.org> (raw)
In-Reply-To: <877foo4nkd.fsf@gnu.org>

Michael Albinus <michael.albinus@gmx.de> writes:

> If you feel that the changes didn't improve the situation, then
> reverting them is indeed TRT, IMO.  At the very least, the code will
> be simpler after the revert.

Ok, done that now.

>>> the thing passed to `dbus-handle-event' looks like a dbus event
>>> except that its contents are bogus.  These events are created by
>>> xd_read_message_1 in dbusbind.c, however that function is reasonable
>>> strict and could not create the bogus event above, e.g., it calls
>>> make_number on the event type which becomes the second item in a
>>> dbus-event, i.e., the CHARACTER_POSITION above which is no number.
>>> 
>>> So what should that tell us?
>>
>> Either that the event was not a valid D-Bus event, or that it weasn't
>> created by that function?
>
> From the backtrace I have the feeling that it was created as another
> event, and the marker `dbus-event' has been pushed there later. But I
> cannot prove this.

I have the same feeling as Michael.  xd_read_message_1 and
inotify_callback / inotifyevent_to_event are the only functions creating
dbus and file-notify events here, and they'd all barf if the data they
read was screwed.

And keep in mind that it's not only about these kinds events.  Sometimes
keyboard events also get screwed, e.g., in the case where view-lossage
tells me that I've typed a key which I actually didn't.  Or in the case
where I get a crash where probably the event is handled on the C-level
where a broken event causes a segfault instead of being gracefully put
in the debugger.

> > > One idea for investigation would be to write special code that
> > > would collect data about these events, from the moment they are
> > > detected by pselect until they wind up in the D-bus handler, and
> > > put that data into a data structure accessible from Lisp.  Then
> > > you could examine that data when the problem happens, and analyze
> > > it.
> > 
> > Well, yes, but I have no idea how to do that.
> 
> What are your difficulties?
> 
> Basically, the idea is to record the last N events in some Lisp data
> structure.  I would start with raw events as they are read from the
> various sources, and move higher up the "food chain" as you gather
> more insight into the problem.

My problem is that the search space is not so small.  Assuming that
events are created correctly at first, I'd probably start recording
events at kbd_buffer_store_event but then I'd want to track when, where,
and how they are modified.  Well, just the first would be better than
nothing I guess.  I'll try that out.

If I had at least a reproducible recipe, I'd just try reverting the
changes to keyboard.c of the last months one by one and see if I can
find the culprit.  But right now (with my invalid reverted in process.c
fixes) I'm unable to provoke such an error although I've tried very
hard.

>> Btw, dbusbind.c seems to have its own debugging facilities, so
>> another idea would be to turn them on.
>
> Yes. Compiling dbusbind.c with the setting MYCPPFLAGS=-DDBUS_DEBUG
> enables traces to emacs' STDOUT. Don't hesitate to ask if you need
> more information for interpretation of them.
>
> You can also add more traces in dbusbind.c using the macro
> XD_DEBUG_MESSAGE.

I'm using that now but as said, I don't think that's where the problem
is.

Bye,
Tassilo





  reply	other threads:[~2015-10-03  5:40 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-21 16:24 bug#21313: 25.0.50; Strange errors from dbus-handle-event Tassilo Horn
2015-09-09 20:43 ` Tassilo Horn
2015-09-11 12:28   ` Tassilo Horn
2015-09-11 12:39     ` Eli Zaretskii
2015-09-11 13:06       ` Tassilo Horn
2015-09-11 13:59         ` Eli Zaretskii
2015-09-15 15:37           ` Tassilo Horn
2015-09-15 16:01             ` Eli Zaretskii
2015-09-16 11:39               ` Tassilo Horn
2015-09-22  5:49               ` Tassilo Horn
2015-09-22  8:00                 ` Robert Pluim
2015-09-22  8:21                   ` Tassilo Horn
2015-10-02 18:36                     ` Tassilo Horn
2015-10-02 19:05                       ` Eli Zaretskii
2015-10-02 20:33                         ` Tassilo Horn
2015-10-02 21:10                           ` Eli Zaretskii
2015-10-02 21:26                             ` Michael Albinus
2015-10-03  5:40                               ` Tassilo Horn [this message]
2015-10-03  6:32                                 ` Tassilo Horn
2015-10-03  7:14                                   ` Eli Zaretskii
2015-10-03  8:10                                     ` Tassilo Horn
2015-10-03  9:53                                       ` Eli Zaretskii
2015-10-03 12:06                                         ` Tassilo Horn
2015-10-03  7:43                                 ` Michael Albinus
2015-10-03  8:13                                   ` Tassilo Horn
2015-10-03  9:38                                     ` Tassilo Horn
2015-10-03 10:53                                       ` Eli Zaretskii
2015-10-14  9:58                                         ` Tassilo Horn
2015-10-14 17:05                                           ` Eli Zaretskii
2015-10-14 19:37                                             ` Tassilo Horn
2015-10-14 19:43                                               ` Eli Zaretskii
2015-10-15 11:37                                                 ` Tassilo Horn
2015-10-15 16:56                                                   ` Eli Zaretskii
2015-10-15 17:35                                                     ` Tassilo Horn
2015-10-15 19:44                                                       ` Eli Zaretskii
2015-10-16  4:53                                                         ` Tassilo Horn
2015-10-16  7:02                                                           ` Eli Zaretskii
2015-10-16  7:45                                                             ` Tassilo Horn
2015-10-16  8:23                                                               ` Eli Zaretskii
2015-10-16  9:25                                                                 ` Tassilo Horn
2015-10-16 10:11                                                                   ` Eli Zaretskii
2015-10-16 10:22                                                                     ` Tassilo Horn
2015-10-29  7:43                                                                       ` Tassilo Horn
2015-10-29 16:19                                                                         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87wpv4qzm2.fsf@gnu.org \
    --to=tsdh@gnu.org \
    --cc=21313@debbugs.gnu.org \
    --cc=michael.albinus@gmx.de \
    --cc=rpluim@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).