Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • libxcb libxcb
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 40
    • Issues 40
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 9
    • Merge requests 9
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • xorg
  • lib
  • libxcblibxcb
  • Issues
  • #38

Closed
Open
Created Apr 04, 2019 by Thomas Guillem@tguillem

xcb_wait_for_special_event() wait indefinitely when the window is closed

Hello,

I encountered a deadlock inside VLC that seems to come from the xcb project.

It's quite easy to reproduce: Play a video with VLC using the xcb window module and the gl display module, close the X11 window, stop VLC => Deadlock.

Here is the full stacktrace, using the lastest libxcb (be1745c8)

[Switching to thread 16 (Thread 0x7f75c31b5700 (LWP 581))]
#0  0x00007f75edc23b49 in __GI___poll (fds=0x7f75c31b44c8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
29	../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
(gdb) bt f
#0  0x00007f75edc23b49 in __GI___poll (fds=0x7f75c31b44c8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
#1  0x00007f75ee505bd2 in poll () at /usr/lib/x86_64-linux-gnu/libasan.so.5
#2  0x00007f75eb10cec8 in _xcb_conn_wait (c=c@entry=0x62a000042200, cond=cond@entry=0x608000068748, vector=vector@entry=0x0, count=count@entry=0x0) at ../../src/xcb_conn.c:479
        ret = <optimized out>
        fd = {fd = 21, events = 1, revents = 0}
#3  0x00007f75eb10e6ee in xcb_wait_for_special_event (c=0x62a000042200, se=0x608000068720) at ../../src/xcb_in.c:795
        special = {se = 0x608000068720, next = 0x0}
        event = 0x0
#4  0x00007f75c61ab9fb in dri3_wait_for_event_locked (draw=0x618000061260) at ../../../src/loader/loader_dri3_helper.c:455
        ev = <optimized out>
        ge = <optimized out>
#5  0x00007f75c61abb48 in dri3_find_back (draw=draw@entry=0x618000061260) at ../../../src/loader/loader_dri3_helper.c:580
        b = <optimized out>
        num_to_consider = 2
#6  0x00007f75c61acbb6 in dri3_get_buffer (format=format@entry=4098, buffer_type=buffer_type@entry=loader_dri3_buffer_back, draw=draw@entry=0x618000061260, driDrawable=0x6060000d7c60) at ../../../src/loader/loader_dri3_helper.c:1658
        buffer = <optimized out>
        buf_id = <optimized out>
#7  0x00007f75c61ad9d9 in loader_dri3_get_buffers (driDrawable=driDrawable@entry=0x6060000d7c60, format=4098, stamp=stamp@entry=0x6060000d7c90, loaderPrivate=loaderPrivate@entry=0x618000061260, buffer_mask=<optimized out>, 
    buffer_mask@entry=1, buffers=buffers@entry=0x7f75c31b46c0) at ../../../src/loader/loader_dri3_helper.c:1874
        draw = 0x618000061260
        front = 0x0
        back = 0x0
        buf_id = <optimized out>
#8  0x00007f75c535cb75 in intel_update_image_buffers (drawable=0x6060000d7c60, brw=0x632000018830) at ../../../../../../src/mesa/drivers/dri/i965/brw_context.c:1741
        fb = <optimized out>
        dri_screen = <optimized out>
        images = {image_mask = 0, back = 0x0, front = 0x0}
        buffer_mask = 1
        ret = <optimized out>
        format = MESA_FORMAT_B8G8R8X8_UNORM
        brw = 0x632000018830
        dri_screen = <optimized out>
        __func__ = "intel_update_renderbuffers"
#9  0x00007f75c535cb75 in intel_update_renderbuffers (context=context@entry=0x6040000f6ed0, drawable=drawable@entry=0x6060000d7c60) at ../../../../../../src/mesa/drivers/dri/i965/brw_context.c:1417
        brw = 0x632000018830
        dri_screen = <optimized out>
        __func__ = "intel_update_renderbuffers"
#10 0x00007f75c535cf51 in intel_prepare_render (brw=brw@entry=0x632000018830) at ../../../../../../src/mesa/drivers/dri/i965/brw_context.c:1438
        ctx = 0x632000018830
        driContext = 0x6040000f6ed0
        drawable = 0x6060000d7c60
#11 0x00007f75c53587ac in brw_clear (ctx=0x632000018830, mask=2) at ../../../../../../src/mesa/drivers/dri/i965/brw_clear.c:254
        fb = 0x61900011ee80
        devinfo = 0x61d00013ceb8
        partial_clear = false
        tri_mask = <optimized out>
#12 0x00007f75c63d33eb in vout_display_opengl_Display (vgl=0x61b00007f580, source=source@entry=0x618000060930) at ../../modules/video_output/opengl/vout_helper.c:1588
        prgm = <optimized out>
        program = <optimized out>
        tc = <optimized out>
        __PRETTY_FUNCTION__ = "vout_display_opengl_Display"
#13 0x00007f75c63dd1ed in PictureDisplay (vd=0x618000060910, pic=<optimized out>) at ../../modules/video_output/opengl/display.c:212
        sys = 0x603000272830
#14 0x00007f75ee2caddf in vout_display_Display (picture=0x6140000e9440, vd=0x618000060910) at ../../include/vlc_vout_display.h:348
        sys = 0x61a000120128
        vd = 0x618000060910
        torender = <optimized out>
        filtered = <optimized out>
        __func__ = "ThreadDisplayRenderPicture"
        do_snapshot = <optimized out>
        system_now = 118958594297
--Type <RET> for more, q to quit, c to continue without paging--
        render_subtitle_date = 118958606846
        do_dr_spu = <optimized out>
        do_early_spu = <optimized out>
        subpicture_chromas = 0x7f75c63e2a40 <gl_subpicture_chromas>
        subpic = 0x60b000353c90
        todisplay = 0x6140000e9440
        snap_pic = <optimized out>
        __PRETTY_FUNCTION__ = "ThreadDisplayRenderPicture"
        pts = 2466667
        system_pts = <optimized out>
#15 0x00007f75ee2caddf in ThreadDisplayRenderPicture (vout=vout@entry=0x61a000120110, is_forced=<optimized out>) at ../../src/video_output/video_output.c:1133
        sys = 0x61a000120128
        vd = 0x618000060910
        torender = <optimized out>
        filtered = <optimized out>
        __func__ = "ThreadDisplayRenderPicture"
        do_snapshot = <optimized out>
        system_now = 118958594297
        render_subtitle_date = 118958606846
        do_dr_spu = <optimized out>
        do_early_spu = <optimized out>
        subpicture_chromas = 0x7f75c63e2a40 <gl_subpicture_chromas>
        subpic = 0x60b000353c90
        todisplay = 0x6140000e9440
        snap_pic = <optimized out>
        __PRETTY_FUNCTION__ = "ThreadDisplayRenderPicture"
        pts = 2466667
        system_pts = <optimized out>
#16 0x00007f75ee2cb661 in ThreadDisplayPicture (vout=vout@entry=0x61a000120110, deadline=deadline@entry=0x7f75c31b4d00) at ../../src/video_output/video_output.c:1224
        sys = 0x61a000120128
        frame_by_frame = <optimized out>
        paused = <optimized out>
        first = false
        __PRETTY_FUNCTION__ = "ThreadDisplayPicture"
        system_now = <optimized out>
        render_delay = <optimized out>
        drop_next_frame = true
        date_next = 118958594011
        refresh = <optimized out>
        date_refresh = 118958640679
        force_refresh = false
        is_forced = <optimized out>
        ret = <optimized out>
#17 0x00007f75ee2cb81e in Thread (object=0x61a000120110) at ../../src/video_output/video_output.c:1640
        cmd = 
              {type = 3, {boolean = 186, string = 0x4ba <error: Cannot access memory at address 0x4ba>, pair = {a = 1210, b = 0}, border = {left = 1210, top = 0, right = 0, bottom = 3200171520}, window = {x = 1210, y = 0, width = 0, height = 3200171520}, spu_rate = {channel = 1210, value = 0}, spu_delay = {channel = 1210, value = -4702112053718941696}, mouse = {i_x = 1210, i_y = 0, i_pressed = 0, b_double_click = false}, viewpoint = {yaw = 1.69557114e-42, pitch = 0, roll = 0, fov = -0.372543335}}}
        picture_interlaced = <optimized out>
        vout = 0x61a000120110
        sys = 0x61a000120128
        deadline = 0
        wait = true
#18 0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
        ret = <optimized out>
        pd = <optimized out>
        now = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {140143761250048, 1668550406390697037, 140143904765390, 140143904765391, 140143761250048, 107339823841552, -1599789454698984371, -1599839589398066099}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#19 0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) f 3
#3  0x00007f75eb10e6ee in xcb_wait_for_special_event (c=0x62a000042200, se=0x608000068720) at ../../src/xcb_in.c:795
795	        if(!_xcb_conn_wait(c, &se->special_event_cond, 0, 0))
(gdb) print *c
$1 = {has_error = 0, setup = 0x61e000172880, fd = 21, iolock = pthread_mutex_t = {Type = Normal, Status = Not acquired, Robust = No, Shared = No, Protocol = None}, in = {event_cond = pthread_cond_t = {
      Threads known to still execute a wait function = 0, Clock ID = CLOCK_REALTIME, Shared = No}, reading = 1, 
    queue = "\000\003k\000\000\000`\004\001\000\224", '\000' <repeats 21 times>, "p\357^\000\000\000\000\000\001\000\000\000\002\000\240\004\000\000`\004I\000\000\000\321\311z\262\033\000\000\000p\357^\000\000\000\000\000\347\356^\000\000\000\000\000\001\000\000\000\002\000\240\004\000\000`\004\004\000\000\000c\362W\262\033\000\000\000\347\356^\000\000\000\000\000\001\000\000\000\002\000\240\004\000\000`\004\004\000\000\000c\362W\262\033\000\000\000\347\356^\000\000\000\000\000Rxvt*color11:\t#FFFF00\nRxvt*color12:\t#4682B4\nRxvt*color13"..., queue_len = 0, request_expected = 107, request_read = 107, request_completed = 107, current_reply = 0x0, current_reply_tail = 0x62a000043290, 
    replies = 0x602000116cb0, events = 0x602000138f50, events_tail = 0x602000138c38, readers = 0x0, special_waiters = 0x7f75c31b4500, pending_replies = 0x0, pending_replies_tail = 0x62a0000432c8, in_fd = {fd = {22, 
        0 <repeats 15 times>}, nfd = 0, ifd = 0}, special_events = 0x608000068720}, out = {cond = pthread_cond_t = {Threads known to still execute a wait function = 0, Clock ID = CLOCK_REALTIME, Shared = No}, writing = 0, 
    socket_cond = pthread_cond_t = {Threads known to still execute a wait function = 0, Clock ID = CLOCK_REALTIME, Shared = No}, return_socket = 0x0, socket_closure = 0x0, socket_moving = 0, 
    queue = "\224\001\022\000\000\000`\004\005\000\240\004K", '\000' <repeats 23 times>, "\006\000\240\004\b\000\000\000\000\000\000\000r\357^", '\000' <repeats 21 times>, "\t\000\240\004", '\000' <repeats 16307 times>, queue_len = 0, 
    request = 107, request_written = 107, reqlenlock = pthread_mutex_t = {Type = Normal, Status = Not acquired, Robust = No, Shared = No, Protocol = None}, maximum_request_length_tag = LAZY_FORCED, maximum_request_length = {cookie = {
        sequence = 4194303}, value = 4194303}, out_fd = {fd = {26, 25, 0 <repeats 14 times>}, nfd = 0, ifd = 0}}, ext = {lock = pthread_mutex_t = {Type = Normal, Status = Not acquired, Robust = No, Shared = No, Protocol = None}, 
    extensions = 0x60e0000ee4a0, extensions_size = 10}, xid = {lock = pthread_mutex_t = {Type = Normal, Status = Not acquired, Robust = No, Shared = No, Protocol = None}, last = 9, base = 77594624, max = 2097151, inc = 1}}
(gdb) thread apply all bt

Thread 16 (Thread 0x7f75c31b5700 (LWP 581)):
#0  0x00007f75edc23b49 in __GI___poll (fds=0x7f75c31b44c8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f75ee505bd2 in poll () at /usr/lib/x86_64-linux-gnu/libasan.so.5
#2  0x00007f75eb10cec8 in _xcb_conn_wait (c=c@entry=0x62a000042200, cond=cond@entry=0x608000068748, vector=vector@entry=0x0, count=count@entry=0x0) at ../../src/xcb_conn.c:479
#3  0x00007f75eb10e6ee in xcb_wait_for_special_event (c=0x62a000042200, se=0x608000068720) at ../../src/xcb_in.c:795
#4  0x00007f75c61ab9fb in dri3_wait_for_event_locked (draw=0x618000061260) at ../../../src/loader/loader_dri3_helper.c:455
#5  0x00007f75c61abb48 in dri3_find_back (draw=draw@entry=0x618000061260) at ../../../src/loader/loader_dri3_helper.c:580
#6  0x00007f75c61acbb6 in dri3_get_buffer (format=format@entry=4098, buffer_type=buffer_type@entry=loader_dri3_buffer_back, draw=draw@entry=0x618000061260, driDrawable=0x6060000d7c60) at ../../../src/loader/loader_dri3_helper.c:1658
#7  0x00007f75c61ad9d9 in loader_dri3_get_buffers (driDrawable=driDrawable@entry=0x6060000d7c60, format=4098, stamp=stamp@entry=0x6060000d7c90, loaderPrivate=loaderPrivate@entry=0x618000061260, buffer_mask=<optimized out>, 
    buffer_mask@entry=1, buffers=buffers@entry=0x7f75c31b46c0) at ../../../src/loader/loader_dri3_helper.c:1874
#8  0x00007f75c535cb75 in intel_update_image_buffers (drawable=0x6060000d7c60, brw=0x632000018830) at ../../../../../../src/mesa/drivers/dri/i965/brw_context.c:1741
#9  0x00007f75c535cb75 in intel_update_renderbuffers (context=context@entry=0x6040000f6ed0, drawable=drawable@entry=0x6060000d7c60) at ../../../../../../src/mesa/drivers/dri/i965/brw_context.c:1417
#10 0x00007f75c535cf51 in intel_prepare_render (brw=brw@entry=0x632000018830) at ../../../../../../src/mesa/drivers/dri/i965/brw_context.c:1438
#11 0x00007f75c53587ac in brw_clear (ctx=0x632000018830, mask=2) at ../../../../../../src/mesa/drivers/dri/i965/brw_clear.c:254
#12 0x00007f75c63d33eb in vout_display_opengl_Display (vgl=0x61b00007f580, source=source@entry=0x618000060930) at ../../modules/video_output/opengl/vout_helper.c:1588
#13 0x00007f75c63dd1ed in PictureDisplay (vd=0x618000060910, pic=<optimized out>) at ../../modules/video_output/opengl/display.c:212
#14 0x00007f75ee2caddf in vout_display_Display (picture=0x6140000e9440, vd=0x618000060910) at ../../include/vlc_vout_display.h:348
#15 0x00007f75ee2caddf in ThreadDisplayRenderPicture (vout=vout@entry=0x61a000120110, is_forced=<optimized out>) at ../../src/video_output/video_output.c:1133
#16 0x00007f75ee2cb661 in ThreadDisplayPicture (vout=vout@entry=0x61a000120110, deadline=deadline@entry=0x7f75c31b4d00) at ../../src/video_output/video_output.c:1224
#17 0x00007f75ee2cb81e in Thread (object=0x61a000120110) at ../../src/video_output/video_output.c:1640
#18 0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#19 0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 15 (Thread 0x7f75c4d85700 (LWP 580)):
#0  0x00007f75edd03fbc in futex_wait_cancelable (private=0, expected=0, futex_word=0x614000075500) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f75edd03fbc in __pthread_cond_wait_common (abstime=0x0, mutex=0x6140000754b0, cond=0x6140000754d8) at pthread_cond_wait.c:502
#2  0x00007f75edd03fbc in __pthread_cond_wait (cond=cond@entry=0x6140000754d8, mutex=mutex@entry=0x6140000754b0) at pthread_cond_wait.c:655
#3  0x00007f75c5224fcb in cnd_wait (mtx=0x6140000754b0, cond=0x6140000754d8) at ../../../include/c11/threads_posix.h:155
#4  0x00007f75c5224fcb in util_queue_thread_func (input=input@entry=0x60200011f3f0) at ../../../src/util/u_queue.c:255
#5  0x00007f75c5224d57 in impl_thrd_routine (p=<optimized out>) at ../../../include/c11/threads_posix.h:87
#6  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#7  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 14 (Thread 0x7f75c7483700 (LWP 575)):
#0  0x00007f75edd03fbc in futex_wait_cancelable (private=0, expected=0, futex_word=0x60c000050190) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f75edd03fbc in __pthread_cond_wait_common (abstime=0x0, mutex=0x60c000050140, cond=0x60c000050168) at pthread_cond_wait.c:502
#2  0x00007f75edd03fbc in __pthread_cond_wait (cond=0x60c000050168, mutex=0x60c000050140) at pthread_cond_wait.c:655
#3  0x00007f75ee342275 in vlc_cond_wait (p_condvar=<optimized out>, p_mutex=<optimized out>) at ../../src/posix/thread.c:205
#4  0x00007f75ee30e9ee in vlc_fifo_WaitCond (fifo=<optimized out>, condvar=<optimized out>) at ../../src/misc/fifo.c:71
#5  0x00007f75ee30e9fd in vlc_fifo_Wait (fifo=<optimized out>) at ../../src/misc/fifo.c:66
#6  0x00007f75ee23b315 in DecoderThread (p_data=<optimized out>) at ../../src/input/decoder.c:1679
#7  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#8  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 13 (Thread 0x7f75d23d1700 (LWP 574)):
#0  0x00007f75edd03fbc in futex_wait_cancelable (private=0, expected=0, futex_word=0x60c00003bf14) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f75edd03fbc in __pthread_cond_wait_common (abstime=0x0, mutex=0x60c00003bec0, cond=0x60c00003bee8) at pthread_cond_wait.c:502
#2  0x00007f75edd03fbc in __pthread_cond_wait (cond=0x60c00003bee8, mutex=0x60c00003bec0) at pthread_cond_wait.c:655
#3  0x00007f75ee342275 in vlc_cond_wait (p_condvar=<optimized out>, p_mutex=<optimized out>) at ../../src/posix/thread.c:205
#4  0x00007f75ee30e9ee in vlc_fifo_WaitCond (fifo=<optimized out>, condvar=<optimized out>) at ../../src/misc/fifo.c:71
#5  0x00007f75ee30e9fd in vlc_fifo_Wait (fifo=<optimized out>) at ../../src/misc/fifo.c:66
#6  0x00007f75ee23b315 in DecoderThread (p_data=<optimized out>) at ../../src/input/decoder.c:1679
#7  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#8  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 12 (Thread 0x7f75d21a9700 (LWP 573)):
#0  0x00007f75edd03fbc in futex_wait_cancelable (private=0, expected=0, futex_word=0x61e0001608f0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f75edd03fbc in __pthread_cond_wait_common (abstime=0x0, mutex=0x61e000160950, cond=0x61e0001608c8) at pthread_cond_wait.c:502
#2  0x00007f75edd03fbc in __pthread_cond_wait (cond=0x61e0001608c8, mutex=0x61e000160950) at pthread_cond_wait.c:655
#3  0x00007f75cf79a3ab in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#4  0x00007f75cf3f6d13 in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#5  0x00007f75cf3f7728 in avcodec_send_packet () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
--Type <RET> for more, q to quit, c to continue without paging--
#6  0x00007f75d071bff0 in DecodeBlock (p_dec=p_dec@entry=0x61d0000ed910, pp_block=pp_block@entry=0x7f75d21a8b30) at ../../modules/codec/avcodec/video.c:1111
#7  0x00007f75d071d7f4 in DecodeVideo (p_dec=0x61d0000ed910, p_block=<optimized out>) at ../../modules/codec/avcodec/video.c:1354
#8  0x00007f75ee23a84a in DecoderDecode (p_dec=p_dec@entry=0x61d0000ed910, p_block=0x62500010e100) at ../../src/input/decoder.c:1307
#9  0x00007f75ee23a7ef in DecoderProcess (p_dec=p_dec@entry=0x61d0000ed910, p_block=p_block@entry=0x62500010e100) at ../../src/input/decoder.c:1430
#10 0x00007f75ee23ad14 in DecoderThread (p_data=<optimized out>) at ../../src/input/decoder.c:1690
#11 0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#12 0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 0x7f75c9257700 (LWP 572)):
#0  0x00007f75edd03fbc in futex_wait_cancelable (private=0, expected=0, futex_word=0x61e000161130) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f75edd03fbc in __pthread_cond_wait_common (abstime=0x0, mutex=0x61e000161198, cond=0x61e000161108) at pthread_cond_wait.c:502
#2  0x00007f75edd03fbc in __pthread_cond_wait (cond=0x61e000161108, mutex=0x61e000161198) at pthread_cond_wait.c:655
#3  0x00007f75cf79a9ee in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#4  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#5  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7f75c9a6e700 (LWP 571)):
#0  0x00007f75edd03fbc in futex_wait_cancelable (private=0, expected=0, futex_word=0x61e000160f80) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f75edd03fbc in __pthread_cond_wait_common (abstime=0x0, mutex=0x61e000160fe8, cond=0x61e000160f58) at pthread_cond_wait.c:502
#2  0x00007f75edd03fbc in __pthread_cond_wait (cond=0x61e000160f58, mutex=0x61e000160fe8) at pthread_cond_wait.c:655
#3  0x00007f75cf79a9ee in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#4  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#5  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7f75ca285700 (LWP 570)):
#0  0x00007f75edd03fbc in futex_wait_cancelable (private=0, expected=0, futex_word=0x61e000160dd0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f75edd03fbc in __pthread_cond_wait_common (abstime=0x0, mutex=0x61e000160e38, cond=0x61e000160da8) at pthread_cond_wait.c:502
#2  0x00007f75edd03fbc in __pthread_cond_wait (cond=0x61e000160da8, mutex=0x61e000160e38) at pthread_cond_wait.c:655
#3  0x00007f75cf79a9ee in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#4  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#5  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7f75caa9c700 (LWP 569)):
#0  0x00007f75edd03fbc in futex_wait_cancelable (private=0, expected=0, futex_word=0x61e000160c20) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f75edd03fbc in __pthread_cond_wait_common (abstime=0x0, mutex=0x61e000160c88, cond=0x61e000160bf8) at pthread_cond_wait.c:502
#2  0x00007f75edd03fbc in __pthread_cond_wait (cond=0x61e000160bf8, mutex=0x61e000160c88) at pthread_cond_wait.c:655
#3  0x00007f75cf79a9ee in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#4  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#5  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7f75cb29d700 (LWP 568)):
#0  0x00007f75edd03fbc in futex_wait_cancelable (private=0, expected=0, futex_word=0x61e000160a70) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f75edd03fbc in __pthread_cond_wait_common (abstime=0x0, mutex=0x61e000160ad8, cond=0x61e000160a48) at pthread_cond_wait.c:502
#2  0x00007f75edd03fbc in __pthread_cond_wait (cond=0x61e000160a48, mutex=0x61e000160ad8) at pthread_cond_wait.c:655
#3  0x00007f75cf79a9ee in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#4  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#5  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7f75cba9e700 (LWP 567)):
#0  0x00007f75edd03fbc in futex_wait_cancelable (private=0, expected=0, futex_word=0x6150000c4220) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f75edd03fbc in __pthread_cond_wait_common (abstime=0x0, mutex=0x6150000c41d0, cond=0x6150000c41f8) at pthread_cond_wait.c:502
#2  0x00007f75edd03fbc in __pthread_cond_wait (cond=cond@entry=0x6150000c41f8, mutex=mutex@entry=0x6150000c41d0) at pthread_cond_wait.c:655
#3  0x00007f75ee342275 in vlc_cond_wait (p_condvar=p_condvar@entry=0x6150000c41f8, p_mutex=p_mutex@entry=0x6150000c41d0) at ../../src/posix/thread.c:205
#4  0x00007f75ee317cbb in picture_pool_Wait (pool=0x6150000c41c0) at ../../src/misc/picture_pool.c:254
#5  0x00007f75ee2cc244 in vout_GetPicture (vout=0x61a000120110) at ../../src/video_output/video_output.c:310
#6  0x00007f75ee23746e in vout_new_buffer (p_dec=<optimized out>) at ../../src/input/decoder.c:583
#7  0x00007f75ee23f5b8 in decoder_NewPicture (dec=dec@entry=0x61d0000ed910) at ../../src/input/decoder_helpers.c:90
#8  0x00007f75d071d93d in lavc_va_GetFrame (ctx=ctx@entry=0x6190000b4080, frame=frame@entry=0x61600015db80) at ../../modules/codec/avcodec/video.c:1469
#9  0x00007f75d071dcea in lavc_GetFrame (ctx=0x6190000b4080, frame=0x61600015db80, flags=1) at ../../modules/codec/avcodec/video.c:1606
#10 0x00007f75cf3f949b in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#11 0x00007f75cf79b7af in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#12 0x00007f75cf50fb3a in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#13 0x00007f75cf510ca9 in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
--Type <RET> for more, q to quit, c to continue without paging--
#14 0x00007f75cf515af8 in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#15 0x00007f75cf519b8e in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#16 0x00007f75cf79a89f in  () at /usr/lib/x86_64-linux-gnu/libavcodec.so.58
#17 0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#18 0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f75d5431700 (LWP 561)):
#0  0x00007f75edd043a9 in futex_reltimed_wait_cancelable (private=0, reltime=0x7f75d54308c0, expected=0, futex_word=0x61f0000e8090) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  0x00007f75edd043a9 in __pthread_cond_wait_common (abstime=0x7f75d5430990, mutex=0x61f0000e8040, cond=0x61f0000e8068) at pthread_cond_wait.c:533
#2  0x00007f75edd043a9 in __pthread_cond_timedwait (cond=cond@entry=0x61f0000e8068, mutex=mutex@entry=0x61f0000e8040, abstime=abstime@entry=0x7f75d5430990) at pthread_cond_wait.c:667
#3  0x00007f75ee342369 in vlc_cond_timedwait (p_condvar=p_condvar@entry=0x61f0000e8068, p_mutex=p_mutex@entry=0x61f0000e8040, deadline=deadline@entry=119024406893) at ../../src/posix/thread.c:213
#4  0x00007f75ee27c7cf in ControlPop (b_postpone_seek=false, i_deadline=119024406893, p_param=0x7f75d5430c80, pi_type=<synthetic pointer>, p_input=0x61f0000e7f10) at ../../src/input/input.c:1635
#5  0x00007f75ee27c7cf in MainLoop (p_input=p_input@entry=0x61f0000e7f10, b_interactive=b_interactive@entry=true) at ../../src/input/input.c:857
#6  0x00007f75ee27d3dc in Run (data=0x61f0000e7f10) at ../../src/input/input.c:572
#7  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#8  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f75d7cc5700 (LWP 558)):
#0  0x00007f75edc23b49 in __GI___poll (fds=0x7f75d7cc4c60, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f75ee505bd2 in poll () at /usr/lib/x86_64-linux-gnu/libasan.so.5
#2  0x00007f75eacefbbb in poll (__timeout=-1, __nfds=<optimized out>, __fds=0x7f75d7cc4c60) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
#3  0x00007f75eacefbbb in Run (data=<optimized out>) at ../../modules/control/dbus/dbus.c:855
#4  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#5  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f75d7dc6700 (LWP 557)):
#0  0x00007f75edd03fbc in futex_wait_cancelable (private=0, expected=0, futex_word=0x616000008c88) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f75edd03fbc in __pthread_cond_wait_common (abstime=0x0, mutex=0x616000008b20, cond=0x616000008c60) at pthread_cond_wait.c:502
#2  0x00007f75edd03fbc in __pthread_cond_wait (cond=cond@entry=0x616000008c60, mutex=mutex@entry=0x616000008b20) at pthread_cond_wait.c:655
#3  0x00007f75ee342275 in vlc_cond_wait (p_condvar=p_condvar@entry=0x616000008c60, p_mutex=p_mutex@entry=0x616000008b20) at ../../src/posix/thread.c:205
#4  0x00007f75ee28b14c in vlc_player_destructor_Thread (data=0x616000008b10) at ../../src/input/player.c:858
#5  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#6  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f75e85c7700 (LWP 556)):
#0  0x00007f75edc23b49 in __GI___poll (fds=0x60400001e590, nfds=3, timeout=1500) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f75ee505bd2 in poll () at /usr/lib/x86_64-linux-gnu/libasan.so.5
#2  0x00007f75eb1e0101 in  () at /usr/lib/x86_64-linux-gnu/libpulse.so.0
#3  0x00007f75eb1d1920 in pa_mainloop_poll () at /usr/lib/x86_64-linux-gnu/libpulse.so.0
#4  0x00007f75eb1d1f6e in pa_mainloop_iterate () at /usr/lib/x86_64-linux-gnu/libpulse.so.0
#5  0x00007f75eb1d2020 in pa_mainloop_run () at /usr/lib/x86_64-linux-gnu/libpulse.so.0
#6  0x00007f75eb1e0049 in  () at /usr/lib/x86_64-linux-gnu/libpulse.so.0
#7  0x00007f75eb17d4f8 in  () at /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-12.2.so
#8  0x00007f75edcfdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#9  0x00007f75edc2e80f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f75ed75fd00 (LWP 552)):
#0  0x00007f75edb6d5cc in __GI___sigtimedwait (set=set@entry=0x7ffc722f8860, info=info@entry=0x7ffc722f7dc0, timeout=timeout@entry=0x0) at ../sysdeps/unix/sysv/linux/sigtimedwait.c:29
#1  0x00007f75edd0826c in __sigwait (set=0x7ffc722f8860, sig=0x7ffc722f87e0) at ../sysdeps/unix/sysv/linux/sigwait.c:28
#2  0x00007f75ee51b731 in  () at /usr/lib/x86_64-linux-gnu/libasan.so.5
#3  0x000055b23bf14a43 in main (argc=<optimized out>, argv=<optimized out>) at ../../bin/vlc.c:262

Full step to reproduce:

  • Use/Build latest VLC or use VLC 3.0 from your distrib (harder to reproduce on stable VLC 3.x: it block only one time over 10)
  • Run with the following argument ./vlc <video> -Idummy --vout gl
  • Close the video window
  • Ctrl-c to stop VLC

Debian stretch with Intel HD 630:

  • Xorg 1.20.3
  • libgl1-mesa-dri 18.3.4-2 / EGL or GLX backend
Edited Apr 05, 2019 by Thomas Guillem
Assignee
Assign to
Time tracking