Hide Forgot
Created attachment 1339392 [details] coredump Description of problem: gnome-terminal crashes with a "signal 8, Arithmetic exception" when DISPLAY points to a Windows Exceed X-server $ gdb /usr/bin/gnome-terminal core.1408 [New LWP 1408] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Core was generated by `gnome-terminal'. Program terminated with signal 8, Arithmetic exception. #0 0x00007f12c7c3a23c in init_randr13 (changed=<synthetic pointer>, screen=0x8c0030) at gdkscreen-x11.c:640 640 refresh_rate = (1000 * xmode->dotClock) / (xmode->hTotal *xmode->vTotal); (gdb) p xmode->hTotal $1 = 0 (gdb) p xmode->vTotal $2 = 0 (gdb) p xmode->dotClock $3 = 0 (gdb) bt #0 0x00007f12c7c3a23c in init_multihead (changed=<synthetic pointer>, screen=0x8c0030 [GdkX11Screen]) at gdkscreen-x11.c:640 #1 0x00007f12c7c3a23c in init_multihead (screen=screen@entry=0x8c0030 [GdkX11Screen]) at gdkscreen-x11.c:841 #2 0x00007f12c7c3a908 in _gdk_x11_screen_new (display=display@entry=0x8bb0f0 [GdkX11Display], screen_number=0) at gdkscreen-x11.c:906 #3 0x00007f12c7c2a278 in _gdk_x11_display_open (display_name=<optimized out>) at gdkdisplay-x11.c:1416 #4 0x00007f12c7bfe389 in gdk_display_manager_open_display (manager=<optimized out>, name=0x0) at gdkdisplaymanager.c:472 #5 0x00007f12c80bc366 in post_parse_hook (context=<optimized out>, group=<optimized out>, data=0x88cad0, error=0x7ffcc191bf68) at gtkmain.c:801 #6 0x00007f12c634d798 in g_option_context_parse (context=context@entry=0x8a6f60, argc=argc@entry=0x7ffcc191bf5c, argv=argv@entry=0x7ffcc191bf50, error=error@entry=0x7ffcc191bf68) at goption.c:2165 #7 0x0000000000409108 in terminal_options_parse (working_directory=working_directory@entry=0x88c590 "/home/localusr", startup_id=startup_id@entry=0x0, argcp=argcp@entry=0x7ffcc191bf5c, argvp=argvp@entry=0x7ffcc191bf50, error=error@entry=0x7ffcc191bf68) at terminal-options.c:868 #8 0x0000000000405f89 in main (argc=1, argv=0x7ffcc191c1b8) at terminal.c:375 Version-Release number of selected component (if applicable): gnome-terminal-3.22.1-2.el7.x86_64 gtk3-3.22.10-4.el7.x86_64 How reproducible: Randomly Steps to Reproduce: 1.Launch gnome-terminal through Exceed Xserver Actual results: Crashes with Signal 8 Expected results: No crash Additional info: This problem seems to have appeared from RHEL 7.4 (no problem with 7.3) and I'm able only to reproduce it with Exceed X-server in Windows.
Have you been able to similarly crash any other gtk3 application? Say gedit, nautilus, evolution, etc..
Hello Debarshi, I have a similar crash but not sure if it's same ~~~ Core was generated by `/usr/libexec/gnome-session-check-accelerated'. Program terminated with signal 8, Arithmetic exception. #0 0x00007fb8f59bf23c in init_randr13 (changed=<synthetic pointer>, screen=0xe00020) at gdkscreen-x11.c:640 640 refresh_rate = (1000 * xmode->dotClock) / (xmode->hTotal *xmode->vTotal); (gdb) bt #0 0x00007fb8f59bf23c in init_randr13 (changed=<synthetic pointer>, screen=0xe00020) at gdkscreen-x11.c:640 #1 init_multihead (screen=screen@entry=0xe00020) at gdkscreen-x11.c:841 #2 0x00007fb8f59bf908 in _gdk_x11_screen_new (display=display@entry=0xdf90e0, screen_number=0) at gdkscreen-x11.c:906 #3 0x00007fb8f59af278 in _gdk_x11_display_open (display_name=<optimized out>) at gdkdisplay-x11.c:1416 #4 0x00007fb8f5983389 in gdk_display_manager_open_display (manager=<optimized out>, name=0x0) at gdkdisplaymanager.c:472 #5 0x00007fb8f5e410da in gtk_init_check (argc=argc@entry=0x0, argv=argv@entry=0x0) at gtkmain.c:1093 #6 0x00007fb8f5e41109 in gtk_init (argc=argc@entry=0x0, argv=argv@entry=0x0) at gtkmain.c:1150 #7 0x00000000004012a0 in main (argc=<optimized out>, argv=<optimized out>) at gnome-session-check-accelerated.c:140 (gdb) list 635 for (j = 0; j < resources->nmode; j++) 636 { 637 XRRModeInfo *xmode = &resources->modes[j]; 638 if (xmode->id == crtc->mode) 639 { 640 refresh_rate = (1000 * xmode->dotClock) / (xmode->hTotal *xmode->vTotal); 641 break; 642 } 643 } 644 (gdb) p xmode $1 = (XRRModeInfo *) 0xdfd140 (gdb) p *xmode $2 = {id = 63, width = 1920, height = 1058, dotClock = 0, hSyncStart = 0, hSyncEnd = 0, hTotal = 0, hSkew = 0, vSyncStart = 0, vSyncEnd = 0, vTotal = 0, name = 0xdfd190 "1920x1058", nameLength = 9, modeFlags = 0} ~~~ in this customer's case, he is not able to access the gnome via xdmcp. Please take a look at this and let me know if they are the same or different, Thanks,
I guess XRRModeInfo needs to be replaced with GVariant implementation as in below patch for reference: https://mail.gnome.org/archives/commits-list/2013-July/msg07229.html and IMHO bug needs to be marked against gtk3. Please check and confirm.
(In reply to Ajinkya Patil from comment #4) > Hello Debarshi, > > I have a similar crash but not sure if it's same Yes, it's the same crash.
(In reply to Divya from comment #5) > I guess XRRModeInfo needs to be replaced with GVariant implementation as in > below patch for reference: > > https://mail.gnome.org/archives/commits-list/2013-July/msg07229.html That's slightly different. It's about abstracting X and Wayland display configuration code, which is used by Settings to set up displays, behind the same public API. Since XRandR (including XRRModeInfo) is an X API that's not present in Wayland, GnomeRR (which is part of libgnome-desktop) either needs to have separate code paths for X and Wayland or it can use something else (eg., Mutter) that already takes care of the abstraction. That patch does the latter. This bug is about GTK+'s X backend, and since GTK+ already has different code paths for each of it's display backends, we need to fix the particular backend. This particular bug is relatively very simple. It's just that the Windows Exceed X server doesn't advertise a refresh rate value and GTK+ isn't prepared for that.
(In reply to Piyush Bhoot from comment #0) > This problem seems to have appeared from RHEL 7.4 (no problem with 7.3) and > I'm able only to reproduce it with Exceed X-server in Windows. Yes, that's because gtk3 was rebased from 3.14.x to 3.22.x in RHEL 7.4, and the display output code had some significant changes. The absence of a refresh rate from the X server isn't the end of the world - GTK+ simply falls back to 60 Hz. However, there is one place which is missing some conditional guards.
Bug 1566101 is related.
Switching to verified based on comment 23.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2018:3140