|
From: Christian S. <sch...@li...> - 2026-08-06 14:31:11
|
On Thursday, 6 August 2026 14:21:55 CEST Alextone wrote:
> Hi Christian, i hope all is well with you.
>
> I SVN D/L libgig and linuxsampler 2.5.0. Compile went fine for both of
> them, and installed without errors. So far. so far.
>
> I ran LS from a terminal, with no errors showing, and then pressed Ctrl
> + C to close it. I get a segfault, so i ran LS again, this time with gdb.
Hi Alex,
please use the LS mailing list.
> Here's what I got.
>
> (gdb) run
> Starting program: /usr/local/bin/linuxsampler
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> LinuxSampler 2.5.0
> Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck
> Copyright (C) 2005-2026 Christian Schoenebeck
> Binary built: Aug 6 2026
> Detected features: MMX SSE SSE2
> Automatic Stacktrace: Off
> Creating Sampler...OK
> Registered sampler engines: 'GIG','SF2','SFZ'
> Registered MIDI input drivers: ALSA,JACK
> Registered audio output drivers: ALSA,JACK
> Loading instrument editor plugins...OK
> Registered instrument editors: 'gigedit'
> Registered internal effect systems: LADSPA
> Registered internal effects: 159
> Starting LSCP network server (0.0.0.0:8888)...[New Thread 0x7ffff3ac46c0
> (LWP 45316)]
> OK
> LinuxSampler initialization completed. :-)
>
> ^C
> Thread 1 "ls-main" received signal SIGINT, Interrupt.
> __syscall_cancel_arch () at
> ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
> warning: 56 ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S: No
> such file or directory
> (gdb) bt full
> #0 __syscall_cancel_arch () at
> ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
> #1 0x00007ffff767d668 in __internal_syscall_cancel
> (a1=a1@entry=0, a2=a2@entry=0, a3=a3@entry=140737488346144,
> a4=a4@entry=140737488346144, a5=a5@entry=0, a6=a6@entry=0, nr=230)
> at ./nptl/cancellation.c:49
> result = <optimized out>
> pd = <optimized out>
> ch = <optimized out>
> #2 0x00007ffff76c9fba in __GI___clock_nanosleep (clock_id=<optimized out>,
> clock_id@entry=0, flags=flags@entry=0,
> req=req@entry=0x7fffffffdc20, rem=rem@entry=0x7fffffffdc20)
> at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
> r = <optimized out>
> #3 0x00007ffff76d53d3 in __GI___nanosleep
> (req=req@entry=0x7fffffffdc20, rem=rem@entry=0x7fffffffdc20)
> at ../sysdeps/unix/sysv/linux/nanosleep.c:25
> ret = <optimized out>
> #4 0x00007ffff76e6da8 in __sleep (seconds=0) at ../sysdeps/posix/sleep.c:55
> save_errno = 2
> ts = {tv_sec = 0, tv_nsec = 480383142}
> #5 0x0000555555557ccd in main (argc=<optimized out>, argv=<optimized
> out>) at linuxsampler.cpp:249
> addr = {s_addr = <optimized out>}
> (gdb)
>
>
> I'm on debian trixie with kernel 6.16.12 rt, with the usual system RT
> tweaks.
>
> Is there something i'm missing here, or a setting i need to check?
That's not a LinuxSampler bug and it does not crash for me BTW. There were no
changes in this part of LS for years, so you would most certainly get the same
crash with much older versions of LS as well.
In your BT it crashed in sleep() (nanosleep syscall). The syscall is blocked,
and after our custom SIGINT signal handler returned (which really just calls
atomic_set(&running, 0) and returns, so nothing fancy at all), glibc tried to
drain the nanosleep syscall and crashed inside its __syscall_cancel_arch()
function.
So it appears to be a bug with the combination of RT kernel and glibc version
that you are using. I can't tell the exact root cause, but it is most likely
either a Linux kernel or glibc issue.
/Christian
|