Bug 1188002

Summary: gnome-abrt crashes on closing X display
Product: [Fedora] Fedora Reporter: Pavel Alexeev <pahan>
Component: gnome-abrtAssignee: Matej Habrnal <mhabrnal>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: medium    
Version: rawhideCC: ajax, bugzilla, jfilak, mhabrnal, moez.roy, pahan, sandmann, vondruch
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
URL: https://retrace.fedoraproject.org/faf/reports/bthash/ffe247bee7f8f23835201c607fc9cc8dd71e546c
Whiteboard: abrt_hash:4aa2f7daefd577f9b8a50262c173abfe033c8d2f
Fixed In Version: gnome-abrt-1.2.0-1.fc23 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-06-10 09:30:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
File: backtrace
none
File: cgroup
none
File: core_backtrace
none
File: dso_list
none
File: environ
none
File: limits
none
File: maps
none
File: open_fds
none
File: proc_pid_status
none
File: var_log_messages
none
File: exploitable
none
A python script which opens and closes X display
none
open and close X in C none

Description Pavel Alexeev 2015-02-01 11:27:08 UTC
Version-Release number of selected component:
gnome-abrt-1.0.0-1.fc21

Additional info:
reporter:       libreport-2.3.0
backtrace_rating: 4
cmdline:        /usr/bin/python /usr/bin/gnome-abrt -p /var/tmp/abrt/ccpp-2015-01-31-12:17:53-1947
crash_function: XCloseDisplay
executable:     /usr/bin/python2.7
kernel:         3.18.4-200.hu.1.uksm.bfs.bfq.fc21.x86_64
runlevel:       N 5
type:           CCpp
uid:            1000

Truncated backtrace:
Thread no. 1 (10 frames)
 #0 XCloseDisplay at ClDisplay.c:51
 #1 ffi_call_unix64 at ../src/x86/unix64.S:76
 #2 ffi_call at ../src/x86/ffi64.c:525
 #3 _call_function_pointer at /usr/src/debug/Python-2.7.8/Modules/_ctypes/callproc.c:836
 #4 _ctypes_callproc at /usr/src/debug/Python-2.7.8/Modules/_ctypes/callproc.c:1183
 #5 PyCFuncPtr_call at /usr/src/debug/Python-2.7.8/Modules/_ctypes/_ctypes.c:3965
 #6 PyObject_Call at /usr/src/debug/Python-2.7.8/Objects/abstract.c:2529
 #7 do_call at /usr/src/debug/Python-2.7.8/Python/ceval.c:4328
 #8 call_function at /usr/src/debug/Python-2.7.8/Python/ceval.c:4133
 #9 PyEval_EvalFrameEx at /usr/src/debug/Python-2.7.8/Python/ceval.c:2753

Comment 1 Pavel Alexeev 2015-02-01 11:27:11 UTC
Created attachment 986701 [details]
File: backtrace

Comment 2 Pavel Alexeev 2015-02-01 11:27:12 UTC
Created attachment 986702 [details]
File: cgroup

Comment 3 Pavel Alexeev 2015-02-01 11:27:13 UTC
Created attachment 986703 [details]
File: core_backtrace

Comment 4 Pavel Alexeev 2015-02-01 11:27:14 UTC
Created attachment 986704 [details]
File: dso_list

Comment 5 Pavel Alexeev 2015-02-01 11:27:16 UTC
Created attachment 986705 [details]
File: environ

Comment 6 Pavel Alexeev 2015-02-01 11:27:17 UTC
Created attachment 986706 [details]
File: limits

Comment 7 Pavel Alexeev 2015-02-01 11:27:18 UTC
Created attachment 986707 [details]
File: maps

Comment 8 Pavel Alexeev 2015-02-01 11:27:20 UTC
Created attachment 986708 [details]
File: open_fds

Comment 9 Pavel Alexeev 2015-02-01 11:27:21 UTC
Created attachment 986709 [details]
File: proc_pid_status

Comment 10 Pavel Alexeev 2015-02-01 11:27:22 UTC
Created attachment 986710 [details]
File: var_log_messages

Comment 11 Pavel Alexeev 2015-02-01 11:27:23 UTC
Created attachment 986711 [details]
File: exploitable

Comment 12 Jakub Filak 2015-02-02 06:20:08 UTC
Created attachment 986947 [details]
A python script which opens and closes X display

Could you please try to run this simple test and report the results here?

Comment 13 Pavel Alexeev 2015-03-09 18:09:54 UTC
Now it works:

$ ./py.py
It works!

Comment 14 Pavel Alexeev 2015-03-09 18:10:43 UTC
May it be related to cases when few instances of X sessions run?

Comment 15 Jakub Filak 2015-03-10 09:17:39 UTC
(In reply to Pavel Alexeev (aka Pahan-Hubbitus) from comment #13)
> Now it works:
> 
> $ ./py.py
> It works!

Thank you!

(In reply to Pavel Alexeev (aka Pahan-Hubbitus) from comment #14)
> May it be related to cases when few instances of X sessions run?

It failed for me when there was no X session running. Can you please this scenario too?

Comment 16 Moez Roy 2015-05-14 09:12:53 UTC
Steps to reproduce:

1. Download latest rawhide: https://kojipkgs.fedoraproject.org/work/tasks/2991/9722991/Fedora-Live-Workstation-x86_64-rawhide-20150513.iso

2. In gnome-terminal type 'python /usr/bin/gnome-abrt'

Comment 17 Moez Roy 2015-05-19 04:40:45 UTC
*** Bug 1217533 has been marked as a duplicate of this bug. ***

Comment 18 Moez Roy 2015-05-22 08:57:15 UTC
gnome-abrt no longer works in Rawhide.

Comment 19 Jakub Filak 2015-05-22 10:09:53 UTC
(In reply to Moez Roy from comment #18)
> gnome-abrt no longer works in Rawhide.

Can you please do the test mentioned in comment #12?

Comment 20 Vít Ondruch 2015-05-22 19:29:27 UTC
Another user experienced a similar problem:

It crashes right after start.

reporter:       libreport-2.5.1
backtrace_rating: 4
cmdline:        /usr/bin/python3 /usr/bin/gnome-abrt
crash_function: XCloseDisplay
executable:     /usr/bin/python3.4
global_pid:     4744
kernel:         4.0.0-1.fc23.x86_64
package:        gnome-abrt-1.1.2-2.fc23
reason:         python3.4 killed by SIGSEGV
runlevel:       unknown
type:           CCpp
uid:            1000

Comment 21 Vít Ondruch 2015-05-22 19:34:32 UTC
(In reply to Jakub Filak from comment #19)
> (In reply to Moez Roy from comment #18)
> > gnome-abrt no longer works in Rawhide.
> 
> Can you please do the test mentioned in comment #12?

$ ./py.py 
Segmentation fault (core dumped)

Comment 22 Moez Roy 2015-05-24 03:54:26 UTC
(In reply to Vít Ondruch from comment #21)
> (In reply to Jakub Filak from comment #19)
> > (In reply to Moez Roy from comment #18)
> > > gnome-abrt no longer works in Rawhide.
> > 
> > Can you please do the test mentioned in comment #12?
> 
> $ ./py.py 
> Segmentation fault (core dumped)

Same here:

[liveuser@localhost ~]$ python2 test_display.py 
Segmentation fault (core dumped)

[liveuser@localhost ~]$ python3 test_display.py 
  File "test_display.py", line 18
    print "It works!"
                    ^
SyntaxError: Missing parentheses in call to 'print'
[liveuser@localhost ~]$

Comment 23 Moez Roy 2015-05-24 04:04:29 UTC
(In reply to Moez Roy from comment #22)
> (In reply to Vít Ondruch from comment #21)
> > (In reply to Jakub Filak from comment #19)
> > > (In reply to Moez Roy from comment #18)
> > > > gnome-abrt no longer works in Rawhide.
> > > 
> > > Can you please do the test mentioned in comment #12?
> > 
> > $ ./py.py 
> > Segmentation fault (core dumped)
> 
> Same here:
> 
> [liveuser@localhost ~]$ python2 test_display.py 
> Segmentation fault (core dumped)
> 
> [liveuser@localhost ~]$ python3 test_display.py 
>   File "test_display.py", line 18
>     print "It works!"
>                     ^
> SyntaxError: Missing parentheses in call to 'print'
> [liveuser@localhost ~]$

print ("It works!")

[liveuser@localhost ~]$ python3 test_display_p3.py 
Segmentation fault (core dumped)
[liveuser@localhost ~]$

Comment 24 Jakub Filak 2015-05-26 16:07:44 UTC
I am re-assigning this report from gnome-abrt to libX11 because the crash is reproducible with a minimal script which simply opens and closes X display.

Comment 25 Matej Habrnal 2015-06-02 08:45:16 UTC
Created attachment 1033663 [details]
open and close X in C

I've created a minimal example (open and close X display) in C and it works on my rawhide. I attached the example. You can compile it by running "gcc openX.c -L/usr/X11R6/lib -lX11 -o openX"


So the issue is probably in Python.

Comment 26 Jakub Filak 2015-06-02 13:10:52 UTC
(In reply to Matej Habrnal from comment #25)
> Created attachment 1033663 [details]
> open and close X in C
> 
> I've created a minimal example (open and close X display) in C and it works
> on my rawhide. I attached the example. You can compile it by running "gcc
> openX.c -L/usr/X11R6/lib -lX11 -o openX"
> 
> 
> So the issue is probably in Python.

Thank you for the C example! I think the root cause of the crash is in the fact that we should not use libX11 through "cdll.LoadLibrary()". So, please replace the python implementation with your C implementation in gnome-abrt.

Comment 27 Matej Habrnal 2015-06-02 14:04:37 UTC
I've created a pull request which fixes the issue: https://github.com/abrt/gnome-abrt/pull/134 .

Comment 28 Moez Roy 2015-06-05 13:50:40 UTC
Can you update gnome-abrt in rawhide?

Thanks.