backscrub icon indicating copy to clipboard operation
backscrub copied to clipboard

Crash with animated/live backgrounds

Open BenBE opened this issue 4 years ago • 2 comments

Crash on experimental branch using animated/live backgrounds:

main [grab:  2806054 retr:  8208613 copy:   246660 prep:  4396040 mask: 11148906 post:       61 v4l2:  6063207 FPS: 30.42] ai: [wait: 22613512 prep:  1334692 tflt:  6603206 mask:   417547 FPS: 31.18] 
(experimental-0-gabee2f87:172148): Gdk-CRITICAL **: 23:59:05.322: gdk_window_get_toplevel: assertion 'GDK_IS_WINDOW (window)' failed

Thread 16 "backscrub" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffa7fff700 (LWP 172168)]
0x00007ffff676e72d in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
LEGEND: STACK | HEAP | CODE | DATA | RWX | RODATA
───────────────────────────────────────────────────────────────────────────────────────────────────────────────[ REGISTERS ]────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 RAX  0x0
 RBX  0x7fffa7ffd240 ◂— 0x0
 RCX  0x7fff9c000048 —▸ 0x7fff9c122e60 ◂— 0x80
 RDX  0x0
 RDI  0x7fff9c0008d6 ◂— 0x7000600050007
 RSI  0x1
 R8   0x7
 R9   0x9a
 R10  0x7fffa7ff9d40 —▸ 0x7fff9c0aa4b0 —▸ 0x7fff9c322d00 —▸ 0x7fff9c0bfef0 —▸ 0x7fff9c913cf0 ◂— ...
 R11  0x0
 R12  0x7fff9c323b40 ◂— 0x1
 R13  0x7fff9c1e96d0 ◂— 0x1
 R14  0x555555ee5de0 ◂— 0x555555ee5de0
 R15  0x7fffa7ffd330 ◂— 0x7fff01010000
 RBP  0x555555ee5de0 ◂— 0x555555ee5de0
 RSP  0x7fffa7ffd210 ◂— 0x0
 RIP  0x7ffff676e72d ◂— mov    eax, dword ptr [rax + 0x100]
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ DISASM ]─────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 ► 0x7ffff676e72d    mov    eax, dword ptr [rax + 0x100]
   0x7ffff676e733    test   eax, eax
   0x7ffff676e735    jne    0x7ffff676e723 <0x7ffff676e723>
    ↓
   0x7ffff676e723    pop    rbp
   0x7ffff676e724    ret    
 
   0x7ffff676e725    nop    dword ptr [rax]
   0x7ffff676e728    call   gdk_window_get_toplevel <gdk_window_get_toplevel>
 
   0x7ffff676e72d    mov    eax, dword ptr [rax + 0x100]
   0x7ffff676e733    test   eax, eax
   0x7ffff676e735    jne    0x7ffff676e723 <0x7ffff676e723>
 
   0x7ffff676e737    mov    rdi, rbp
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ STACK ]──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
00:0000│ rsp  0x7fffa7ffd210 ◂— 0x0
01:0008│      0x7fffa7ffd218 —▸ 0x7ffff676ea60 ◂— jmp    0x7ffff676e93d
02:0010│      0x7fffa7ffd220 ◂— 0x3c0
03:0018│      0x7fffa7ffd228 ◂— 0x0
... ↓
07:0038│      0x7fffa7ffd248 ◂— 0xf000000140
───────────────────────────────────────────────────────────────────────────────────────────────────────────────[ BACKTRACE ]────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 ► f 0     7ffff676e72d
   f 1     7ffff676ea60
   f 2     7ffff6bb224a gtk_widget_queue_draw_area+202
   f 3     7ffff6bb989c gtk_widget_queue_draw+188
   f 4     7ffff7f780ed
   f 5     7ffff7f7a0f4 cvShowImage+132
   f 6     7ffff7f72cfd
   f 7     5555555a8adc read_thread(std::shared_ptr<background_t>)+1346
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
pwndbg> bt full
#0  0x00007ffff676e72d in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#1  0x00007ffff676ea60 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#2  0x00007ffff6bb224a in gtk_widget_queue_draw_area () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#3  0x00007ffff6bb989c in gtk_widget_queue_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#4  0x00007ffff7f780ed in  () at /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.4.2
#5  0x00007ffff7f7a0f4 in cvShowImage () at /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.4.2
#6  0x00007ffff7f72cfd in cv::imshow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::_InputArray const&) () at /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.4.2
#7  0x00005555555a8adc in read_thread(std::shared_ptr<background_t>) ()
#8  0x00005555555ab06e in void std::__invoke_impl<void, void (*)(std::shared_ptr<background_t>), std::shared_ptr<background_t> >(std::__invoke_other, void (*&&)(std::shared_ptr<background_t>), std::shared_ptr<background_t>&&) ()
#9  0x00005555555aafac in std::__invoke_result<void (*)(std::shared_ptr<background_t>), std::shared_ptr<background_t> >::type std::__invoke<void (*)(std::shared_ptr<background_t>), std::shared_ptr<background_t> >(void (*&&)(std::shared_ptr<background_t>), std::shared_ptr<background_t>&&) ()                                                                                                                                                                                     
#10 0x00005555555aaf0b in void std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<background_t>), std::shared_ptr<background_t> > >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) ()
#11 0x00005555555aae9e in std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<background_t>), std::shared_ptr<background_t> > >::operator()() ()
#12 0x00005555555aae30 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::shared_ptr<background_t>), std::shared_ptr<background_t> > > >::_M_run() ()
#13 0x00007ffff7425de4 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#14 0x00007ffff71cb609 in start_thread (arg=<optimized out>) at pthread_create.c:477
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {
          cancel_jmp_buf = {{
              jmp_buf = {140736011958016, -8222578280321195037, 140737488343726, 140737488343727, 140737488343728, 140736011950592, 8222666242538660835, 8222559887469503459},
              mask_was_saved = 0
            }},
          priv = {
            pad = {0x0, 0x0, 0x0, 0x0},
            data = {
              prev = 0x0,
              cleanup = 0x0,
              canceltype = 0
            }
          }
        }
        not_first_call = 0
#15 0x00007ffff70f2293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Doesn't happen right away, but after some (random) delay …

BenBE avatar Oct 07 '21 22:10 BenBE

Hopefully addressed by #122, let's leave this open for a while to check...

phlash avatar Nov 07 '21 18:11 phlash

Latest build from experimental seems stable with the recently applied changes. No crashes seen so far with build experimental-0-g04bc4b3c (04bc4b3c).

BenBE avatar Nov 07 '21 21:11 BenBE