wwmm / easyeffects

Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications
GNU General Public License v3.0
6.19k stars 265 forks source link

Crash in `calf_plugins::bassenhancer_audio_module::process` #1379

Open bdaase opened 2 years ago

bdaase commented 2 years ago

EasyEffects Version

6.2.3

What package are you using?

Flatpak (Flathub)

Distribution

Fedora 35

Describe the bug

While toggling the Global Bypass button, EasyEffects randomly crashed for me. Here is the backtrace

(gdb) bt full
#0  0x00007f416a5102b4 in calf_plugins::bassenhancer_audio_module::process(unsigned int, unsigned int, unsigned int, unsigned int)
    (this=0x7f41d800ec90, offset=<optimized out>, numsamples=1024, inputs_mask=<optimized out>, outputs_mask=4294967295) at modules_dist.cpp:605
        maxDrive = 0
        c = 2
        proc = {-0.0010536724, -0.00135233277}
        values = {0.000258799235, -0.0214913413, 0.0217103474}
        out = {<unavailable>, <unavailable>}
        in = {0.000249502453, 0.000265567622}
        bypassed = false
#1  0x00007f416a518808 in calf_plugins::audio_module<calf_plugins::bassenhancer_metadata>::process_slice(unsigned int, unsigned int) (this=<optimized out>, offset=768, end=2048) at ./calf/giface.h:628
        out_mask = <optimized out>
        had_errors = false
        total_out_mask = 4294967295
#2  0x00007f416a4cb695 in calf_plugins::lv2_instance::run(unsigned int, bool) (this=0x7f41d800f5a0, SampleCount=2048, has_simulate_stereo_input_flag=<optimized out>) at lv2wrap.cpp:164
        offset = 0
        simulate_stereo_input = <optimized out>
#3  0x00007f41f273d6ca in BassEnhancer::process(std::span<float, 18446744073709551615ul>&, std::span<float, 18446744073709551615ul>&, std::span<float, 18446744073709551615ul>&, std::span<float, 18446744073709551615ul>&) (this=0x7f41f47e8210, left_in=..., right_in=..., left_out=..., right_out=...) at /usr/include/c++/11.2.0/bits/unique_ptr.h:173
#4  0x00007f41f28a5098 in (anonymous namespace)::on_process(void*, spa_io_position*) (userdata=0x7f41f47e8330, position=<optimized out>) at ../src/plugin_base.cpp:83
        d = 0x7f41f47e8330
        n_samples = 2048
        rate = <optimized out>
        in_left = 0x7f41ec00c020
        in_right = <optimized out>
        out_left = <optimized out>
        out_right = <optimized out>
        left_in = {static extent = 18446744073709551615, _M_ptr = 0x7f41ec00c020, _M_extent = {_M_extent_value = 2048}}
        right_in = {static extent = 18446744073709551615, _M_ptr = 0x7f41df944020, _M_extent = {_M_extent_value = 2048}}
        left_out = {static extent = 18446744073709551615, _M_ptr = 0x7f41df93b020, _M_extent = {_M_extent_value = 2048}}
        right_out = {static extent = 18446744073709551615, _M_ptr = 0x7f41df82b020, _M_extent = {_M_extent_value = 2048}}
#5  0x00007f41f2620ac9 in call_process (impl=0x7f41f49762e0) at ../src/pipewire/filter.c:995
        _f = <optimized out>
        __func__ = "call_process"
        impl = 0x7f41f49762e0
        p = 0x7f41f4976408
        b = <optimized out>
        drained = <optimized out>
        __func__ = "impl_node_process"
#6  impl_node_process (object=0x7f41f49762e0) at ../src/pipewire/filter.c:1060
        impl = 0x7f41f49762e0
        p = 0x7f41f4976408
        b = <optimized out>
        drained = <optimized out>
        __func__ = "impl_node_process"
#7  0x00007f41f2638dd2 in process_node (data=0x7f41f7d4b000) at ../src/pipewire/impl-node.c:1037
        _f = <optimized out>
        _res = -95
--Type <RET> for more, q to quit, c to continue without paging--c
        _n = <optimized out>
        this = 0x7f41f7d4b000
        ts = {tv_sec = 5549, tv_nsec = 581313824}
        p = 0x7f41f7d4b0b8
        a = 0x7f41ec69c000
        data_system = 0x7f41f4838ce0
        status = <optimized out>
#8  0x00007f41f2637630 in node_on_fd_events (source=<optimized out>) at ../src/pipewire/impl-node.c:1095
        cmd = 1
        this = 0x7f41f7d4b000
        data_system = <optimized out>
        __func__ = "node_on_fd_events"
#9  0x00007f41ed3b460c in loop_iterate (object=0x7f41f4949f38, timeout=<optimized out>) at ../spa/plugins/support/loop.c:309
        s = <optimized out>
        impl = 0x7f41f4949f38
        loop = 0x7f41f4949f50
        ep = {{events = 1, data = 0x7f41f7d4b660}, {events = 1, data = 0x7f41f622f330}, {events = 0, data = 0x0} <repeats 30 times>}
        i = 0
        nfds = <optimized out>
#10 0x00007f41f2617d2d in do_loop (user_data=0x7f41f48c85f0) at ../src/pipewire/data-loop.c:79
        _f = <optimized out>
        _res = -95
        _o = <optimized out>
        __clframe = {__cancel_routine = <optimized out>, __cancel_arg = <optimized out>, __do_it = <optimized out>, __cancel_type = <optimized out>}
        this = 0x7f41f48c85f0
        __func__ = "do_loop"
#11 0x00007f41f0dd93ba in start_thread (arg=0x7f41ed0c8640) at pthread_create.c:481
        ret = <optimized out>
        pd = 0x7f41ed0c8640
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139921126622784, -2106738611740289600, 140735476843664, 140735476843662, 140735476843663, 0, -2106738611685763648, -2106726096904333888}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#12 0x00007f41f0d03b03 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Expected Behavior

No response

Debug Log

Debug Log
``` Paste your log here ```

Additional Information

No response

Digitalone1 commented 2 years ago

Can't reproduce on Arch using git master. Tested playing something with celluloid, with and without Bass Enhancer in plugin stack toggling global bypass various times.

Can you be more specific on what you were doing and which player you used?

bdaase commented 2 years ago

It only happened once while using Spotify in Firefox, but I also can't reproduce it reliably.

I just wanted to persist it in case someone has an idea what might have happened or sees a similar crash. If you think this is not actionable at all, then feel free to close the issue.

wwmm commented 2 years ago

I also could not reproduce it.