Subject: bug#21313: 25.0.50; Strange errors from dbus-handle-event

From: Tassilo Horn <[email-masked]>
Date: Fri, 11 Sep 2015 15:06:48 +0200

Eli Zaretskii <[email-masked]> writes:

>> Just now, I had three other strange errors during killing in
>> message-mode.  The first two were about errors in
>> `file-notify-handle-event' which was called with something wrong.
>> With the first error, it received a buffer (!) instead of an event,
>> with the second error I think it received something else which I
>> can't remember.  At least it hasn't been a file-notification event.
>
> I think this is the same problem as the one fixed in bug #21337,
> except that the cause for the problem is different: where it was
> GnuTLS in that bug, it's something else in yours.

Yes, seems so.

> So I suggest to read the description of the root cause posted by
> Robert Pluim in http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21337#31,
> and then look for something very similar, but involving other sources
> of input events, perhaps D-Bus.  The symptoms you describe exactly
> match what he explained there.

The problem is that I have almost no idea what that code does and how it
is intended to work, so I can't really debug it in a sensible way.

And to make things worse, I think this issue also has some timing
component in it.  That is, it only happens when I press and hold C-k for
at least one or two seconds which kills quite a lot of lines given that
I use a very fast keyboard repeat rate.  When I kill just the lines of a
paragraph like this one, then take a short pause, then kill the next
one, the issue is much less likely to appear.  So emacs needs to be
flooded with events in some sense.

If you have some ideas where things could go wrong, I'm happy to do
whatever may help.  Maybe adding some debugging code or conditional
breakpoints could narrow down the scope a bit?

BTW, the last errors came from `file-notify-handle-event' but I'm
reasonably sure that in this emacs session I only had used Gnus so far.
I don't use auto-revert-mode, so actually filenotify.el should not even
have been loaded so far and no watches should have existed.  My current
emacs session is the same: only Gnus => (featurep 'filenotify) ;=> nil.
Does that give any clue?

Bye,
Tassilo