From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Joe Corneli via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#56869: 29.0.50; segfault, "assertion 'GDK_IS_DEVICE (device)' failed" Date: Thu, 18 Aug 2022 14:20:27 +0100 Message-ID: <87a681663o.fsf@Proteus> References: <87sfmgjelt.fsf@Proteus> <87a68nfnp4.fsf@yahoo.com> <87bkt24tng.fsf@Proteus> <87zggmcxpb.fsf@Proteus> <875yjadt7j.fsf@yahoo.com> <87y1vvaysh.fsf@Proteus> <87r11nvw44.fsf@yahoo.com> <87h72ihpk7.fsf@Proteus> <87edxmw98w.fsf@yahoo.com> <87edxlfzwz.fsf@Proteus> <87a689wsdx.fsf@yahoo.com> <87pmh33wfu.fsf@Proteus> <87tu6d4ne8.fsf@Proteus> <87pmh1qa19.fsf@yahoo.com> <87r11g4hrv.fsf@Proteus> <87h72cqx2w.fsf@yahoo.com> <87r11g2r2b.fsf@Proteus> <8735dvx9r1.fsf@Proteus> <874jyap981.fsf@yahoo.com> Reply-To: Joe Corneli Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15688"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 56869@debbugs.gnu.org To: Po Lu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Aug 18 15:23:46 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oOfUv-0003w6-LI for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 18 Aug 2022 15:23:45 +0200 Original-Received: from localhost ([::1]:57472 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oOfUu-0002aM-J1 for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 18 Aug 2022 09:23:44 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55764) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oOfSJ-0007qG-EL for bug-gnu-emacs@gnu.org; Thu, 18 Aug 2022 09:21:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:36260) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oOfSI-0001uT-KI for bug-gnu-emacs@gnu.org; Thu, 18 Aug 2022 09:21:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oOfSI-000434-7V for bug-gnu-emacs@gnu.org; Thu, 18 Aug 2022 09:21:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Joe Corneli Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 18 Aug 2022 13:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56869 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 56869-submit@debbugs.gnu.org id=B56869.166082884515531 (code B ref 56869); Thu, 18 Aug 2022 13:21:02 +0000 Original-Received: (at 56869) by debbugs.gnu.org; 18 Aug 2022 13:20:45 +0000 Original-Received: from localhost ([127.0.0.1]:54242 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOfRx-00042O-VQ for submit@debbugs.gnu.org; Thu, 18 Aug 2022 09:20:45 -0400 Original-Received: from box.hyperreal.enterprises ([85.159.211.210]:38499) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOfRt-000427-LY for 56869@debbugs.gnu.org; Thu, 18 Aug 2022 09:20:40 -0400 Original-Received: from authenticated-user (box.hyperreal.enterprises [85.159.211.210]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by box.hyperreal.enterprises (Postfix) with ESMTPSA id D0ACD43F1C; Thu, 18 Aug 2022 14:20:31 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=hyperreal.enterprises; s=mail; t=1660828831; bh=JQsHnjcCQBs/YBjCjf0sTKZr20rxb2z7Q0bOPP3niyE=; h=References:From:To:Cc:Subject:In-reply-to:Date:From; b=spJNTlBOTj2ZAPofUo5ZPUfjhDrl0DDV5DzE3d9QhzxicC+0v2jdfYSUq4th3Tc73 Ycz1GJv4I8rNnvc/S9Oze/yro9pdEH8txhQfwrMKrCmuxz4Sf3aWpTcd6hmEreFQK6 5aiPPo3D6IGOBRYIXs87NUEBsHFtu6eA2TJrZzVQcdFuuSEFm7iETxiApkxb0wdGlD 1qzz2Yc8V606HZOPN8JSHvWKhm6I5sMvzIRRdWI3u3A3HCxxw/cTy/PyxYQwERooE4 RKrNdSP/t4y/wv4sIexJj4fkhNc30NXC6GGBMBHFZX+ifz9uinAArx+NMnNHiKgf/F WY762BBup+ooA== In-reply-to: <874jyap981.fsf@yahoo.com> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:240150 Archived-At: Po Lu writes: > Joe Corneli writes: > >> Joe Corneli writes: >>> >>> In light of the previous, I think this is what=E2=80=99s needed. Detai= ls will >>> be forthcoming with the next crash! >>> >>> joe@Proteus:~$ sudo apt-get source libgtk-3-0 >> >> OK, here=E2=80=99s the next round of backtrace. Now it includes some Li= sp >> details, implicating feebleline (https://melpa.org/#/feebleline) as the >> source of the problems. > > Async input can be read almost anywhere, and that includes from Lisp. > So feebleline is most likely not the problem here. For now, I=E2=80=99ve turned off the feature that seemed most suspicious... https://github.com/tautologyclub/feebleline/issues/66 If it turns out that I don=E2=80=99t have any crashes then great! Otherwis= e, more reports will surely follow. > As I said, the line number is unfortunately not very informative, so > please type "l" to show a listing of the GDK code at that particular > line. > > Thanks. Sure, though I forgot to save the core file last time, so I can=E2=80=99t p= ress "l" in gdb, but here are indicative code snippets from the files named in the previous backtrace. The mentioned lines are marked below: ... M-x occur RET /\*[0-9]+\*/ RET Thank you! >> #0 gdk_x11_device_manager_xi2_translate_event >> (xevent=3D, event=3D, display=3D, translator=3D) >> at ../../../../../gdk/x11/gdkdevicemanager-xi2.c:1794 event->motion.type =3D GDK_MOTION_NOTIFY; event->motion.window =3D window; event->motion.time =3D xev->time; event->motion.x =3D (gdouble) xev->event_x / scale; event->motion.y =3D (gdouble) xev->event_y / scale; event->motion.x_root =3D (gdouble) xev->root_x / scale; event->motion.y_root =3D (gdouble) xev->root_y / scale; event->motion.device =3D device; gdk_event_set_source_device (event, source_device); gdk_event_set_seat (event, gdk_device_get_seat (device)); gdk_event_set_device_tool (event, source_device->last_tool); /*1794= */ event->motion.state =3D _gdk_x11_device_xi2_translate_state (&xev->= mods, &xev->buttons, &xev->group); #ifdef XINPUT_2_2 if (xev->flags & XIPointerEmulated) gdk_event_set_pointer_emulated (event, TRUE); #endif >> #1 gdk_x11_device_manager_xi2_translate_event >> (translator=3D, display=3D, event=3D, xevent=3D) >> at ../../../../../gdk/x11/gdkdevicemanager-xi2.c:1478 static gboolean gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,= /*1478*/ GdkDisplay *display, GdkEvent *event, XEvent *xevent) { GdkX11DeviceManagerXI2 *device_manager; XGenericEventCookie *cookie; GdkDevice *device, *source_device; gboolean return_val =3D TRUE; GdkWindow *window; GdkWindowImplX11 *impl; int scale; XIEvent *ev; /*...*/ >> #2 0x00007ffff757e989 in _gdk_x11_event_translator_translate >> (translator=3Dtranslator@entry=3D0x55555647e400, display=3D0x5555564= 5a0e0, xevent=3Dxevent@entry=3D0x7ffffffe9730) >> at ../../../../../gdk/x11/gdkeventtranslator.c:51 GdkEvent * _gdk_x11_event_translator_translate (GdkEventTranslator *translator, GdkDisplay *display, XEvent *xevent) { GdkEventTranslatorIface *iface; GdkEvent *event; g_return_val_if_fail (GDK_IS_EVENT_TRANSLATOR (translator), NULL); g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); iface =3D GDK_EVENT_TRANSLATOR_GET_IFACE (translator); if (!iface->translate_event) return NULL; event =3D gdk_event_new (GDK_NOTHING); if ((iface->translate_event) (translator, display, event, xevent)) /*51*/ return event; gdk_event_free (event); return NULL; } >> #3 0x00007ffff757e4cc in gdk_event_source_translate_event (xevent=3D0x7= ffffffe9730, event_source=3D0x55555648b380) >> at ../../../../../gdk/x11/gdkeventsource.c:230 static GdkEvent * gdk_event_source_translate_event (GdkEventSource *event_source, XEvent *xevent) { GdkEvent *event =3D gdk_event_new (GDK_NOTHING); GdkFilterReturn result =3D GDK_FILTER_CONTINUE; GdkEventTranslator *event_translator; GdkWindow *filter_window; Display *dpy; dpy =3D GDK_DISPLAY_XDISPLAY (event_source->display); #ifdef HAVE_XGENERICEVENTS /* Get cookie data here so it's available * to every event translator and event filter. */ if (xevent->type =3D=3D GenericEvent) XGetEventData (dpy, &xevent->xcookie); #endif filter_window =3D gdk_event_source_get_filter_window (event_source, xeven= t, &event_translator); if (filter_window) event->any.window =3D g_object_ref (filter_window); /* Run default filters */ if (_gdk_default_filters) { /* Apply global filters */ result =3D gdk_event_apply_filters (xevent, event, NULL); } if (result =3D=3D GDK_FILTER_CONTINUE && filter_window && filter_window->filters) { /* Apply per-window filters */ result =3D gdk_event_apply_filters (xevent, event, filter_window); } if (result !=3D GDK_FILTER_CONTINUE) { #ifdef HAVE_XGENERICEVENTS if (xevent->type =3D=3D GenericEvent) XFreeEventData (dpy, &xevent->xcookie); #endif if (result =3D=3D GDK_FILTER_REMOVE) { gdk_event_free (event); return NULL; } else /* GDK_FILTER_TRANSLATE */ return event; } gdk_event_free (event); event =3D NULL; if (event_translator) { /* Event translator was gotten before in get_filter_window() */ event =3D _gdk_x11_event_translator_translate (event_translator, /*23= 0*/ event_source->display, xevent); } else { GList *list =3D event_source->translators; while (list && !event) { GdkEventTranslator *translator =3D list->data; list =3D list->next; event =3D _gdk_x11_event_translator_translate (translator, event_source->displa= y, xevent); } } if (event && (event->type =3D=3D GDK_ENTER_NOTIFY || event->type =3D=3D GDK_LEAVE_NOTIFY) && event->crossing.window !=3D NULL) { /* Handle focusing (in the case where no window manager is running */ handle_focus_change (&event->crossing); } #ifdef HAVE_XGENERICEVENTS if (xevent->type =3D=3D GenericEvent) XFreeEventData (dpy, &xevent->xcookie); #endif return event; } >> #4 _gdk_x11_display_queue_events (display=3D0x55555645a0e0) at >>../../../../../gdk/x11/gdkeventsource.c:341 void _gdk_x11_display_queue_events (GdkDisplay *display) { GdkEvent *event; XEvent xevent; Display *xdisplay =3D GDK_DISPLAY_XDISPLAY (display); GdkEventSource *event_source; GdkX11Display *display_x11; display_x11 =3D GDK_X11_DISPLAY (display); event_source =3D (GdkEventSource *) display_x11->event_source; while (!_gdk_event_queue_find_first (display) && XPending (xdisplay)) { XNextEvent (xdisplay, &xevent); switch (xevent.type) { case KeyPress: case KeyRelease: break; default: if (XFilterEvent (&xevent, None)) continue; } event =3D gdk_event_source_translate_event (event_source, &xevent); /= *341*/ if (event) { GList *node; node =3D _gdk_event_queue_append (display, event); _gdk_windowing_got_event (display, node, event, xevent.xany.seria= l); } } } >> #5 0x00007ffff75460e4 in gdk_display_get_event (display=3Ddisplay@entry= =3D0x55555645a0e0) >> at ../../../../gdk/gdkdisplay.c:441 GdkEvent* gdk_display_get_event (GdkDisplay *display) { g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); if (display->event_pause_count =3D=3D 0) GDK_DISPLAY_GET_CLASS (display)->queue_events (display); /*441*/ return _gdk_event_unqueue (display); } >> #6 0x00007ffff757e0e6 in gdk_event_source_dispatch >> (source=3D, callback=3D, user_data=3D<= optimised out>) >> at ../../../../../gdk/x11/gdkeventsource.c:363 static gboolean gdk_event_source_dispatch (GSource *source, GSourceFunc callback, gpointer user_data) { GdkDisplay *display =3D ((GdkEventSource*) source)->display; GdkEvent *event; gdk_threads_enter (); event =3D gdk_display_get_event (display); /*363*/ if (event) { _gdk_event_emit (event); gdk_event_free (event); } gdk_threads_leave (); return TRUE; } --=20 Dr Joseph A. Corneli (https://github.com/holtzermann17) HYPERREAL ENTERPRISES LTD is a private company limited by shares, incorpora= ted 25th, June 2019 as Company Number 634284 on the Register of Companies for Scotland (https://beta.companieshouse.gov.uk/company/SC634284).