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.