Bug 101813 - Abort() when bumblebee restarts (XIOError)
Summary: Abort() when bumblebee restarts (XIOError)
Status: NEW
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Chris Wilson
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-17 00:07 UTC by Stefan Helmert
Modified: 2017-07-18 11:53 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Helmert 2017-07-17 00:07:35 UTC
On Ubuntu 16.04.2, Lenovo W520 laptop, newest bumblebee: If I start bumblebeed, plug external display in and start intel-virtual-output, everything works fine. I can clone or extend the desktop on internal and external display. 

But if I restart bumblebeed while intel-virtual-output is running, intel-virtual-output crashes with segmentation fault.
Comment 1 Chris Wilson 2017-07-17 07:05:43 UTC
Attach gdb to i-v-o, and type "bt full" when it dies.
Comment 2 Stefan Helmert 2017-07-17 11:49:25 UTC
If the gdb is attached to it, it does not crash. But without it crashes. Here is the bt, but I think this won't help:

(gdb) attach 16072
Attaching to process 16072
Reading symbols from /usr/bin/intel-virtual-output...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libXinerama.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libXrandr.so.2...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libXdamage.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libXfixes.so.3...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libXcursor.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libXtst.so.6...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libXrender.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libXss.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libXext.so.6...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libxcb.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libxshmfence.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libX11.so.6...(no debugging symbols found)...done.
Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/libc-2.23.so...done.
done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libXau.so.6...(no debugging symbols found)...done.
Reading symbols from /usr/lib/x86_64-linux-gnu/libXdmcp.so.6...(no debugging symbols found)...done.
Reading symbols from /lib/x86_64-linux-gnu/libdl.so.2...Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/libdl-2.23.so...done.
done.
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.23.so...done.
done.
0x00007f6e6cfecfa0 in __writev_nocancel () at ../sysdeps/unix/syscall-template.S:84
84	../sysdeps/unix/syscall-template.S: Datei oder Verzeichnis nicht gefunden.
(gdb) bt full
#0  0x00007f6e6cfecfa0 in __writev_nocancel () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1  0x00007f6e6d800f29 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
No symbol table info available.
#2  0x00007f6e6d80131d in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
No symbol table info available.
#3  0x00007f6e6d8013a5 in xcb_writev () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
No symbol table info available.
#4  0x00007f6e6d2f74ae in _XSend () from /usr/lib/x86_64-linux-gnu/libX11.so.6
No symbol table info available.
#5  0x00007f6e6d2f79a2 in _XReply () from /usr/lib/x86_64-linux-gnu/libX11.so.6
No symbol table info available.
#6  0x00007f6e6ea56746 in XFixesGetCursorImage () from /usr/lib/x86_64-linux-gnu/libXfixes.so.3
No symbol table info available.
#7  0x0000000000407dad in ?? ()
No symbol table info available.
#8  0x0000000000404b84 in ?? ()
No symbol table info available.
#9  0x00007f6e6cf10830 in __libc_start_main (main=0x403960, argc=1, argv=0x7fffb68d0328, init=<optimized out>, 
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffb68d0318) at ../csu/libc-start.c:291
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 6198074037994051019, 4219824, 140736256082720, 0, 0, 
                -6197913077676714549, -6278261848200129077}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x40bdd0, 
---Type <return> to continue, or q <return> to quit---
              0x7f6e6f27cab0 <_dl_fini>}, data = {prev = 0x0, cleanup = 0x0, canceltype = 4242896}}}
        not_first_call = <optimized out>
#10 0x00000000004063d9 in ?? ()
No symbol table info available.
Comment 3 Stefan Helmert 2017-07-17 11:58:11 UTC
Oh, I think I used the debugger the wrong way. Now I have catched the crash:

:8 marking cursor changed
context_enable_timer timer active? 0
polling - enable timer? 1, nfd=4, ndisplay=2
poll reports 1 fd awake
:0 timer expired (count=1)
:8 setting cursor position (0, 0), visible? 1
:8 updating cursor 1x1, serial 5
:8 setting cursor shape 200018
:8 mark flush (flush=0)
context_enable_timer timer active? 1
display_flush(:8)
:0 timer still active? 0
polling - enable timer? 0, nfd=4, ndisplay=2
poll reports 1 fd awake
:8 woken up
XIO error on display :8

Program received signal SIGABRT, Aborted.
0x00007ffff5a90428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
54	../sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt full
#0  0x00007ffff5a90428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
        resultvar = 0
        pid = 18840
        selftid = 18840
#1  0x00007ffff5a9202a in __GI_abort () at abort.c:89
        save_stage = 2
        act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {12, 140737318618888, 140737315805615, 6364248, 206158430232, 140737488344432, 
              140737488344224, 24, 140737315676816, 140737318623088, 24, 2, 140737353684736, 24, 6461808, 6461768}}, sa_flags = -164178639, sa_restorer = 0x628670}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x0000000000406758 in ?? ()
No symbol table info available.
#3  0x00007ffff5e64cee in _XIOError () from /usr/lib/x86_64-linux-gnu/libX11.so.6
No symbol table info available.
#4  0x00007ffff5e6269a in _XReadEvents () from /usr/lib/x86_64-linux-gnu/libX11.so.6
No symbol table info available.
#5  0x00007ffff5e516e8 in XNextEvent () from /usr/lib/x86_64-linux-gnu/libX11.so.6
No symbol table info available.
#6  0x0000000000404dc6 in ?? ()
No symbol table info available.
#7  0x00007ffff5a7b830 in __libc_start_main (main=0x403960, argc=2, argv=0x7fffffffdc38, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
    stack_end=0x7fffffffdc28) at ../csu/libc-start.c:291
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 1478028051214348441, 4219824, 140737488346160, 0, 0, -1478027506602626919, -1478049976647831399}, mask_was_saved = 0}}, 
---Type <return> to continue, or q <return> to quit---
          priv = {pad = {0x0, 0x0, 0x2, 0x403960}, data = {prev = 0x0, cleanup = 0x0, canceltype = 2}}}
        not_first_call = <optimized out>
#8  0x00000000004063d9 in ?? ()
No symbol table info available.
Comment 4 Chris Wilson 2017-07-17 12:09:23 UTC
Ok, that's enough to remind me which one it is. In sort, closing display under xlib is tricky. One way is to install a fake extension just to get a close display handler from which we can then avoid such IOErrors (hopefully).


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.