Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pipewire-Jack Segmentation Fault #63

Open
naregderlevonian opened this issue Jun 30, 2024 · 11 comments
Open

Pipewire-Jack Segmentation Fault #63

naregderlevonian opened this issue Jun 30, 2024 · 11 comments

Comments

@naregderlevonian
Copy link

naregderlevonian commented Jun 30, 2024

Pipewire 1.2.0. I get this message in Arch:

MOD Desktop DEBUG: jacklib syms 0x7bd9a4fa9de0 0x7bd9a4fae5e0 | 257 | using pipewire with filename '/usr/lib/libjack.so.0'
--------------------------------------------------------
/usr/lib/libjack.so.0 loaded successfully!
[1]    14472 segmentation fault (core dumped)  ./mod-desktop.run

In Pipewire 1.0.4, this works without problems.

@xpufx
Copy link

xpufx commented Jul 8, 2024

Have the exact same thing. Opensuse Tumbleweed. Pipewire 1.2.0. I don't know the version but it worked on my desktop before as well.

@Riebeck-one
Copy link

Exact same error as @naregderlevonian. It happens since I updated to pipewire 1.2.0.

@igorlakic
Copy link

Same issue on Debian testing.

@magillos
Copy link

Same here for me with the stand-alone app, but VST plugin seems to be working fine (it has its own bugs though).

@Inqb8tr-jp
Copy link

Same with pipewire-1.2.2 on Manjaro Linux.

@jotuel
Copy link

jotuel commented Sep 25, 2024

MOD Desktop DEBUG: jacklib syms 0x78b806b87e10 (nil) | 65 | using regular jack
QSocketNotifier: Can only be used with threads started with QThread
--------------------------------------------------------
libjack.so.0 loaded successfully!
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
--------------------------------------------------------
----------- loadSettings 654
----------- updateDeviceDetails 1028 | 3 4
----------- setStopped 782

compared to running with pw-jack

MOD Desktop DEBUG: jacklib syms 0x74264f844770 0x74264f848f00 | 257 | using pipewire with filename '/usr/lib/x86_64-linux-gnu/pipewire-0.3/jack/libjack.so.0'
QSocketNotifier: Can only be used with threads started with QThread
--------------------------------------------------------
/usr/lib/x86_64-linux-gnu/pipewire-0.3/jack/libjack.so.0 loaded successfully!
Segmentation fault

so I think it needs to use the libraries that it came with for now.

@falkTX
Copy link
Member

falkTX commented Sep 25, 2024

I dont have the newest pipewire on any of my systems, this needs debugging from other people.

There are debug builds in github actions, but now they expired.. I can push some commits to have them regenerated, then we see how to debug this...

@magillos
Copy link

magillos commented Oct 5, 2024

Here is what gdb outputs:

Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Detaching after fork from child process 40234]
[Detaching after fork from child process 40235]
ERROR: This system has no python serial support
Using FakeHMI => <mod.development.FakeHMI object at 0x7ffff5ac86d0>
cc start socket missing
last state file does not exist or is corrupt
DEBUG:root:[host] popped from queue: transport 0 4.000000 120.000000
[New Thread 0x7ffff5a1e6c0 (LWP 40258)]
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
[Thread 0x7ffff5a1e6c0 (LWP 40258) exited]
last state file does not exist or is corrupt
WARNING:tornado.general:Connect error on fd 11: ECONNREFUSED
WARNING:tornado.general:Connect error on fd 10: ECONNREFUSED
DEBUG:root:[host] popped from queue: feature_enable processing 0
last state file does not exist or is corrupt
INFO:root:[host] HMI initialized right away
Readsock none
Writesock none
Host failed to initialize, is the backend running?
jack client deactivated NOT
jack client deactivated NOT
[Inferior 1 (process 40227) exited with code 01]

@AngelBePro
Copy link

Not sure if this is helpful but this is what I got using gdb run and gdb backtrace. Using pipewire 1.2.6

Thread 1 "mod-desktop" received signal SIGSEGV, Segmentation fault.
Downloading 30.70 K source file /usr/src/debug/pipewire/build/../pipewire/spa/plugins/support/loop.c
loop_queue_invoke (object=0x55555566ef40, func=0x7ffff1a94a80 <do_data_loop_setup>, seq=0, data=0x0, size=0, block=false, user_data=0x7ffff1767e90) at ../pipewire/spa/plugins/support/loop.c:308                
308             in_thread = (impl->thread == 0 || pthread_equal(impl->thread, pthread_self()));
(gdb) backtrace
#0  loop_queue_invoke (object=0x55555566ef40, func=0x7ffff1a94a80 <do_data_loop_setup>, seq=0, data=0x0, size=0, block=false, user_data=0x7ffff1767e90) at ../pipewire/spa/plugins/support/loop.c:308
#1  loop_invoke (object=0x7ffff176dff8, func=0x7ffff1a94a80 <do_data_loop_setup>, seq=0, data=0x0, size=0, block=false, user_data=0x7ffff1767e90) at ../pipewire/spa/plugins/support/loop.c:435
#2  0x00007ffff1aa3dee in data_loop_start (impl=impl@entry=0x7ffff1767e90, loop=loop@entry=0x7ffff1768358) at ../pipewire/src/pipewire/context.c:295
#3  0x00007ffff1aa40f8 in acquire_data_loop (impl=impl@entry=0x7ffff1767e90, name=name@entry=0x0, klass=0x7ffff176e1d0 "data.rt", klass@entry=0x0) at ../pipewire/src/pipewire/context.c:696
#4  0x00007ffff1aa4349 in pw_context_acquire_loop (context=context@entry=0x7ffff1767e90, props=props@entry=0x0) at ../pipewire/src/pipewire/context.c:734
#5  0x00007ffff1aa4846 in context_get_support (context=0x7ffff1767e90, n_support=0x7fffffffcdc0, info=0x0) at ../pipewire/src/pipewire/context.c:636
#6  pw_context_get_support (context=0x7ffff1767e90, n_support=n_support@entry=0x7fffffffcdc0) at ../pipewire/src/pipewire/context.c:648
#7  0x00007ffff243daef in jack_client_open (client_name=0x555555431350 "MOD Desktop", options=JackNoStartServer, status=0x7fffffffceec) at ../pipewire/pipewire-jack/src/pipewire-jack.c:4108
#8  0x000055555541cb04 in ?? ()
#9  0x0000555555419eea in ?? ()
#10 0x0000555555412751 in ?? ()
#11 0x000055555541979b in ?? ()
#12 0x000055555540edc0 in ?? ()
#13 0x00007ffff6634e08 in __libc_start_call_main (main=main@entry=0x55555540ed05, argc=argc@entry=1, argv=argv@entry=0x7fffffffda88) at ../sysdeps/nptl/libc_start_call_main.h:58
#14 0x00007ffff6634ecc in __libc_start_main_impl (main=0x55555540ed05, argc=1, argv=0x7fffffffda88, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffda78)
    at ../csu/libc-start.c:360
#15 0x000055555540eefa in ?? ()

@CarloCattano
Copy link

Same issue here with pw 1.2.6

/usr/lib/libjack.so.0 loaded successfully!
[New Thread 0x7fffeac006c0 (LWP 29285)]

Thread 1 "mod-desktop" received signal SIGSEGV, Segmentation fault.
Downloading 30.70 K source file /usr/src/debug/pipewire/build/../pipewire/spa/plugins/support/loop.c
loop_queue_invoke (object=0x55555566ef20, func=0x7ffff0ac5a80 <do_data_loop_setup>, seq=0, data=0x0, size=0, block=false,
    user_data=0x7ffff0798e90) at ../pipewire/spa/plugins/support/loop.c:308
308		in_thread = (impl->thread == 0 || pthread_equal(impl->thread, pthread_self()));
#0  loop_queue_invoke (object=0x55555566ef20, func=0x7ffff0ac5a80 <do_data_loop_setup>, seq=0, data=0x0, size=0, block=false,
    user_data=0x7ffff0798e90) at ../pipewire/spa/plugins/support/loop.c:308
#1  loop_invoke (object=0x7ffff079eff8, func=0x7ffff0ac5a80 <do_data_loop_setup>, seq=0, data=0x0, size=0, block=false,
    user_data=0x7ffff0798e90) at ../pipewire/spa/plugins/support/loop.c:435
#2  0x00007ffff0ad4dee in data_loop_start (impl=impl@entry=0x7ffff0798e90, loop=loop@entry=0x7ffff0799358)
    at ../pipewire/src/pipewire/context.c:295
#3  0x00007ffff0ad50f8 in acquire_data_loop (impl=impl@entry=0x7ffff0798e90, name=name@entry=0x0, klass=0x7ffff079f1d0 "data.rt",
    klass@entry=0x0) at ../pipewire/src/pipewire/context.c:696
#4  0x00007ffff0ad5349 in pw_context_acquire_loop (context=context@entry=0x7ffff0798e90, props=props@entry=0x0)
    at ../pipewire/src/pipewire/context.c:734
#5  0x00007ffff0ad5846 in context_get_support (context=0x7ffff0798e90, n_support=0x7fffffffcd60, info=0x0)
    at ../pipewire/src/pipewire/context.c:636
#6  pw_context_get_support (context=0x7ffff0798e90, n_support=n_support@entry=0x7fffffffcd60) at ../pipewire/src/pipewire/context.c:648
#7  0x00007ffff3317aef in jack_client_open (client_name=0x555555431350 "MOD Desktop", options=JackNoStartServer, status=0x7fffffffce8c)
    at ../pipewire/pipewire-jack/src/pipewire-jack.c:4108
#8  0x000055555541cb04 in ?? ()
#9  0x0000555555419eea in ?? ()
#10 0x0000555555412751 in ?? ()
#11 0x000055555541979b in ?? ()
#12 0x000055555540edc0 in ?? ()
#13 0x00007ffff6634e08 in __libc_start_call_main (main=main@entry=0x55555540ed05, argc=argc@entry=1, argv=argv@entry=0x7fffffffda28)
    at ../sysdeps/nptl/libc_start_call_main.h:58
#14 0x00007ffff6634ecc in __libc_start_main_impl (main=0x55555540ed05, argc=1, argv=0x7fffffffda28, init=<optimized out>,
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffda18) at ../csu/libc-start.c:360
#15 0x000055555540eefa in ?? ()

@falkTX
Copy link
Member

falkTX commented Nov 10, 2024

those logs make it very much appear like a pipewire bug, some internal data consistency is failing.
maybe it does not like that multiple clients are created from different threads?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants