all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Michael Albinus via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Kun Liu <kun.liu@gmail.com>
Cc: Eli Zaretskii <eliz@gnu.org>, 70760@debbugs.gnu.org
Subject: bug#70760: 29.3.50; core dumps when copy in other apps
Date: Fri, 17 May 2024 18:23:46 +0200	[thread overview]
Message-ID: <8734qgz9t9.fsf@gmx.de> (raw)
In-Reply-To: <CA+Nei8OxHCH9pKaFkVyurUbo5+JyzjycoJYM3n45L7eq=4aT_w@mail.gmail.com> (Kun Liu's message of "Thu, 16 May 2024 12:07:14 -0700")

Kun Liu <kun.liu@gmail.com> writes:

Hi,

> I spent more time on this issue. I watched closely both "dbus-monitor -
> -system" and "dbus-monitor" outputs, while trying to replicate the
> issue in Emacs. It appears that just as you said, when Emacs reported
> invalid dbus events, which crashes Emacs sometimes, dbus-monitor
> outputs never showed any messages immediately preceding or following
> the error.

This is another evidence why I believe the invalid D-Bus event hasn't
been injected to Emacs from external. It is something which happens in
Emacs internally, and that's why I believe we cannot simply ignore
bad-formed D-Bus events.

> Which really begs the question, if dbus did not have any messages for
> Emacs at the time, why did Emacs think there was a message for it?

Well, look at the architecture.

Emacs id connected to both the system and session D-Bus via a file
descriptor. From time to time Emacs receives events via this way in
xd_read_message_1. This will be transformed into a "Lispy event", a list
which starts with the symbol `dbus-event'. Something like

--8<---------------cut here---------------start------------->8---
(dbus-event :system 2 2 org.freedesktop.DBus :1.492 nil nil
 nil dbus-call-method-handler)
--8<---------------cut here---------------end--------------->8---

This "Lispy event" will be stored in Emacs' input event queue, see line
1759 or 1803 in dbusbind.c. There's no further action in dbusbind.c wrt
to this event afterwards,

The Emacs main loop checks periodically the input event queue. If it
detects something, it takes action. Often it is just a keyboard
event. But there are also special events like the D-Bus event. For them,
the variable `special-event-map', checking first for the event type, and
call the respective handler then. For D-Bus events, this would be the
call (dbus-handle-event event), which we have seen in your backtraces.

But what if an event is added to the input event queue, which has an
arbitrary format? Or an existing event has been modified? It could look
like a D-Bus event (the car of the event is `dbus-event'), but the rest
of the list is random. It must not come via the dbusevent.c mechanism
I've explained above, anybody can push such an event onto then input
event queue. But I have no idea how to debug this.

Best regards, Michael.





  reply	other threads:[~2024-05-17 16:23 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-03 21:30 bug#70760: 29.3.50; core dumps when copy in other apps Kun Liu
2024-05-04  7:11 ` Eli Zaretskii
2024-05-04 18:08   ` Kun Liu
2024-05-04 19:02     ` Eli Zaretskii
     [not found]       ` <CA+Nei8PsdEL-bOOQg86aZk1n1ahpb38XUokyHR98muaRTUY+5Q@mail.gmail.com>
2024-05-04 21:37         ` Kun Liu
2024-05-05  5:11         ` Eli Zaretskii
2024-05-05 15:45           ` Kun Liu
2024-05-05 16:12             ` Eli Zaretskii
2024-05-05 16:44               ` Kun Liu
2024-05-05 17:11                 ` Kun Liu
2024-05-05 17:34               ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-14  6:17                 ` Kun Liu
2024-05-14  7:13                   ` Eli Zaretskii
2024-05-15 10:35                     ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-15 16:27                       ` Kun Liu
2024-05-15 17:54                         ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-15 18:25                           ` Kun Liu
2024-05-15 21:06                             ` Kun Liu
2024-05-16  9:20                               ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-16 19:07                                 ` Kun Liu
2024-05-17 16:23                                   ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2024-05-17 17:34                                     ` Eli Zaretskii
2024-05-17 20:43                                       ` Kun Liu
2024-05-18  0:34                                         ` Kun Liu
2024-05-18 10:32                                       ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-18 11:44                                         ` Eli Zaretskii
2024-05-18 11:54                                           ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-18 12:09                                             ` Eli Zaretskii
2024-05-18 16:55                                               ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-18 17:54                                                 ` Eli Zaretskii
2024-05-18 18:22                                                   ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-18 19:20                                                     ` Eli Zaretskii
2024-05-16  9:07                             ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors

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

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

  git send-email \
    --in-reply-to=8734qgz9t9.fsf@gmx.de \
    --to=bug-gnu-emacs@gnu.org \
    --cc=70760@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=kun.liu@gmail.com \
    --cc=michael.albinus@gmx.de \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.