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.
Attach gdb to i-v-o, and type "bt full" when it dies.
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.
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.
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).
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/issues/144.
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.