ammen99 / wf-recorder

MIT License
884 stars 62 forks source link

Can't SIGINT recording. #125

Closed Kazimazi closed 3 years ago

Kazimazi commented 3 years ago

I'm on 322e9a16eccd8ee44b518e4fc1638ce918c57d28. Tried Ctrl+C from terminal and kill -s INT , even waited for a while. Not sure how I should debug it.

ammen99 commented 3 years ago

Is this the first time you try wf-recorder or it used to work before?

Kazimazi commented 3 years ago

It worked before.

ammen99 commented 3 years ago

Could you try to bisect and find out which commit causes the issue?

Kazimazi commented 3 years ago

Tried some older versions, they don't work either. I'm starting to think that my system changed in some way due to updates and it's probably unrelated to wf-recorder. Anyway, I'm gonna ask around and close this issue for the time being.

Kazimazi commented 3 years ago

Found the problem and made an issue for it. https://github.com/colemickens/nixpkgs-wayland/issues/242

ppascher commented 3 years ago

Just wanted to add I have the same issue on arch (build from source). This is the first time I used wf-recorder.

ammen99 commented 3 years ago

Just wanted to add I have the same issue on arch (build from source). This is the first time I used wf-recorder.

Can you try running the 0.2.1 release?

ppascher commented 3 years ago

Ctrl+C works fine in 0.2.1 I bisected it to the latest commit 322e9a1. Also with that commit sometimes my recordings have a size of 0 bytes.

ppascher commented 3 years ago

While testing I just had a couple of cases where Ctrl+C worked on master. edit: with the previous commit 2bb52d8 it works 100% of the time.

ppascher commented 3 years ago

Not sure if it helps but here is a bt fullof a running wf-recorder process which is stuck after hitting Ctrl+C. The file was correctly written though.


#0  0x00007fe0945629b7 in __pthread_clockjoin_ex () from /usr/lib/libpthread.so.0
No symbol table info available.
#1  0x00007fe0947abe88 in __gthread_join (__value_ptr=0x0, __threadid=<optimized out>)
    at /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:669
No locals.
#2  std::thread::join (this=0x7ffecc5ddb10) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:110
        __e = 22
#3  0x000055cbd6f7e8b4 in main (argc=8, argv=0x7ffecc5de0f8) at ../src/main.cpp:912
        params = {file = "/home/user/test.gif", width = -1804008544, height = 32736, stride = 0,
          format = INPUT_FORMAT_BGR0, codec = "gif", muxer = "", pix_fmt = "", hw_device = "",
          codec_options = std::map with 0 elements, audio_sync_offset = 0, enable_audio = false,
          enable_ffmpeg_debug_output = true, opencl = false, force_yuv = false, opencl_device = -1, bframes = -1,
          write_aborted_flag = @0x55cbd6f92d88}
        default_cmdline_output = 0x55cbd6f876b7 "interactive"
        cmdline_output = "interactive"
        opts = {{name = 0x55cbd6f863e0 "output", has_arg = 1, flag = 0x0, val = 111}, {name = 0x55cbd6f863e7 "file",
            has_arg = 1, flag = 0x0, val = 102}, {name = 0x55cbd6f863ec "muxer", has_arg = 1, flag = 0x0, val = 109}, {
            name = 0x55cbd6f863f2 "pixel-format", has_arg = 1, flag = 0x0, val = 120}, {name = 0x55cbd6f863ff "geometry",
            has_arg = 1, flag = 0x0, val = 103}, {name = 0x55cbd6f86408 "codec", has_arg = 1, flag = 0x0, val = 99}, {
            name = 0x55cbd6f8640e "codec-param", has_arg = 1, flag = 0x0, val = 112}, {name = 0x55cbd6f8641a "device",
            has_arg = 1, flag = 0x0, val = 100}, {name = 0x55cbd6f86421 "log", has_arg = 0, flag = 0x0, val = 108}, {
            name = 0x55cbd6f86425 "audio", has_arg = 2, flag = 0x0, val = 97}, {name = 0x55cbd6f8642b "help", has_arg = 0,
            flag = 0x0, val = 104}, {name = 0x55cbd6f86430 "force-yuv", has_arg = 0, flag = 0x0, val = 116}, {
            name = 0x55cbd6f8643a "opencl", has_arg = 2, flag = 0x0, val = 101}, {name = 0x55cbd6f86441 "bframes",
            has_arg = 1, flag = 0x0, val = 98}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
        c = -1
        i = 0
        param = ""
        pos = 140602571225367
        registry = 0x55cbd8835da0
        first_frame = {tv_sec = 11334, tv_nsec = 988539242}
        spawned_thread = true
        writer_thread = {_M_id = {_M_thread = 140602423993920}}```
ammen99 commented 3 years ago

Thanks! Can you try adding this patch: http://ix.io/2FEh ?

ppascher commented 3 years ago

This seems to have fixed it. I can not reproduce the error after about 20 tries. Thank you for your work!