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

Segfault reading synthdef from file #349

Open
ErikNatanael opened this issue Jan 24, 2023 · 4 comments
Open

Segfault reading synthdef from file #349

ErikNatanael opened this issue Jan 24, 2023 · 4 comments

Comments

@ErikNatanael
Copy link

scsynth segfaults when trying to read this SynthDef from file or when trying to add it/write it to disk:

signal_idle_synthesis.scsyndef.tar.gz

SC version: 3.12.2
OS: Ubuntu 22.10
Audio backend: JACK 1.9.21

The SynthDef has worked in earlier versions as I'm reviving an old project, but I can't remember which version.

Backtrace (newly compiled with debug symbols):

Thread 1 "scsynth" received signal SIGSEGV, Segmentation fault.
DoBufferColoring (inWorld=0x555555aa3380, inGraphDef=0x555555b36990) at /home/erik/git/supercollider/server/scsynth/SC_GraphDef.cpp:873
873                     outputSpec->mNumConsumers++;
(gdb) backtrace
#0  DoBufferColoring (inWorld=0x555555aa3380, inGraphDef=0x555555b36990)
    at /home/erik/git/supercollider/server/scsynth/SC_GraphDef.cpp:873
#1  0x00005555555bbcfd in GraphDef_Read (inWorld=inWorld@entry=0x555555aa3380, buffer=@0x7fffffffd0b8: 0x555555b3f41c "", 
    inList=0x555555b36530, inVersion=inVersion@entry=2) at /home/erik/git/supercollider/server/scsynth/SC_GraphDef.cpp:421
#2  0x00005555555bbf92 in GraphDefLib_Read (inWorld=inWorld@entry=0x555555aa3380, buffer=<optimised out>, inList=<optimised out>, 
    inList@entry=0x555555b36530) at /home/erik/git/supercollider/server/scsynth/SC_GraphDef.cpp:200
#3  0x00005555555bc272 in GraphDef_Load (inWorld=0x555555aa3380, path=..., inList=0x555555b36530)
    at /usr/include/c++/11/bits/basic_string.h:194
#4  0x00005555555bc8b2 in GraphDef_LoadDir (inWorld=inWorld@entry=0x555555aa3380, dirname=..., inList=0x555555b36530, 
    inList@entry=0x0) at /home/erik/git/supercollider/server/scsynth/SC_GraphDef.cpp:653
#5  0x00005555555a4abf in World_LoadGraphDefs (world=0x555555aa3380) at /home/erik/git/supercollider/server/scsynth/SC_World.cpp:277
#6  0x00005555555a7350 in World_New (inOptions=0x7fffffffd780) at /home/erik/git/supercollider/server/scsynth/SC_World.cpp:451
#7  0x0000555555569ed7 in scsynth_main (argc=3, argv=0x7fffffffdb78)
    at /home/erik/git/supercollider/server/scsynth/scsynth_main.cpp:417
#8  0x00007ffff7732d90 in __libc_start_call_main (main=main@entry=0x555555568360 <main(int, char**)>, argc=argc@entry=3, 
    argv=argv@entry=0x7fffffffdb78) at ../sysdeps/nptl/libc_start_call_main.h:58
#9  0x00007ffff7732e40 in __libc_start_main_impl (main=0x555555568360 <main(int, char**)>, argc=3, argv=0x7fffffffdb78, 
    init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fffffffdb68) at ../csu/libc-start.c:392
#10 0x0000555555569a55 in _start ()

SynthDef code:

(
var sampleRate = s.sampleRate;
~buffer_size = 1005611;
~rate = 0.125 * 10;
~rate = (~buffer_size/sampleRate) * (1/170000);
~totalDuration = ~buffer_size/(sampleRate * ~rate);
~eventLength = 1/(~rate * sampleRate);
~speed = ~buffer_size/(sampleRate * ~rate);
)
SynthDef(\signal_idle_synthesis, {
	| activity_buffers = #[0, 0, 0, 0, 0, 0, 0, 0], pid_buffers = #[0, 0, 0, 0, 0, 0, 0, 0],
	idle_buffers = #[0, 0, 0, 0, 0, 0, 0, 0], self_buffers = #[0, 0, 0, 0, 0, 0, 0, 0]
	rate = 1.0 |
	var phase, activities, pids, idles, selves, sine, noise, sig, click_trig, click_amps, clicks, click_rq = 0.001, click_freqs, decay_amount = ~eventLength, cross_delay = 0.008, activityAmp,
	env, atk, sus;

	phase = Phasor.ar(0.0, rate, 0.0, ~buffer_size*2);// + MouseX.kr(0, 1006111);
	FreeSelf.kr(phase >= (~buffer_size*1.0001));

	// array of 8 values, one for each cpu
	activities = BufRd.ar(1, activity_buffers, phase, 0.0, 1);
	activities = Select.kr(phase >= ~buffer_size, [activities, #[0, 0, 0, 0, 0, 0, 0, 0]]);
	pids = BufRd.ar(1, pid_buffers, phase, 0.0, 1);
	pids = Select.kr(phase >= ~buffer_size, [pids, #[0, 0, 0, 0, 0, 0, 0, 0]]);
	idles = BufRd.ar(1, idle_buffers, phase, 0.0, 1);
	idles = Select.kr(phase >= ~buffer_size, [idles, #[0, 0, 0, 0, 0, 0, 0, 0]]);
	selves = BufRd.ar(1, self_buffers, phase, 0.0, 1);
	selves = Select.kr(phase >= ~buffer_size, [selves, #[0, 0, 0, 0, 0, 0, 0, 0]]);

	click_trig = Changed.ar(phase.floor, 0);
	click_amps = activities.collect{ |activity|
		Lag.ar(Decay.ar((activity * 0.015).clip(0.0, 0.5) * click_trig, decay_amount), 0.1);//.lag(0.001);
	};
	click_freqs = pids.collect{ |pid, i| ((pid.pow(2)) % 5000).linexp(0, 5000, 100, 7000) -200 + 100 + (100*i) };
	click_freqs = click_freqs.max(50);
	clicks = RHPF.ar(click_amps, click_freqs, click_rq);

	atk = ~eventLength/2 * (1/activities);
	sus = ~eventLength - (atk * 2);
	atk = atk * (1 + (idles*3)); // make atk longer for idle events
	sus = sus * (1 + idles); // make sus longer for idle events

	env = EnvGen.ar(Env(
		levels: [0, 1, 1, 0],
		times: [atk, sus, atk],
		curve: [activities.linlin(0, 10, 0, -10), -2], loopNode: 0), gate: click_trig);

	// debug sig
	sine = SinOsc.ar(click_freqs);
	noise = Limiter.ar(Resonz.ar(PinkNoise.ar(), click_freqs.min(17000).max(40), 0.03, mul: 30));

	sig = (sine * (1-idles)) + (noise * idles);

	activityAmp = (1.0 - activities.linlin(0, 10, 1.0, 0.707).pow(2)).clip(0.0, 0.5);
	sig = sig * activityAmp * env * (1.0 - (selves*0.5));

	sig = Splay.ar(sig);
	sig[0] = sig[0] + DelayN.ar(LPF.ar(sig[1]*0.8, 500), cross_delay, cross_delay);
	sig[1] = sig[1] + DelayN.ar(LPF.ar(sig[0]*0.8, 500), cross_delay, cross_delay);

	// scale up amplitude
	sig = sig * 3;
	sig = LeakDC.ar(sig);
	sig = Greyhole.ar(sig * (activityAmp + 0.5), \delayTime.kr(0.07), \damp.kr(0.8), \size.kr(5.0), \diff.kr(0.75), \feedback.kr(0.85), modDepth: 0.12, modFreq: 2.8);// * 0.2 + (sig * 0.8);
	sig[0] = sig[0] + DelayN.ar(LPF.ar(sig[1]*0.2, 2000), cross_delay, cross_delay);
	sig[1] = sig[1] + DelayN.ar(LPF.ar(sig[0]*0.2, 2000), cross_delay, cross_delay);
	Out.ar(\out.kr(0), sig);
}).add;

Commenting out the last two cross delays, it works, but I cannot figure out why.

When adding the SynthDef (running the above code) I get JACK notifications followed by a segfault. The .synthdef file is created.

SC IDE Post window output:

Jack: Process: graph not finished!
Jack: Process: waiting to switch delta = 10993
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = SuperCollider name = SuperCollider notify = 3
Jack: Process: graph not finished!
Jack: Process: waiting to switch delta = 21001
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = SuperCollider name = SuperCollider notify = 3
Jack: Process: graph not finished!
Jack: Process: switch to next state delta = 32006
Jack: Process: graph not finished!
Jack: Process: waiting to switch delta = 10987
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = SuperCollider name = SuperCollider notify = 3
Jack: Process: graph not finished!
Jack: Process: waiting to switch delta = 20995
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = SuperCollider name = SuperCollider notify = 3
Jack: Process: graph not finished!
Jack: Process: switch to next state delta = 32002
Jack: JackSocketServerChannel::Execute : poll client error err = Success
Jack: JackSocketServerChannel::ClientKill ref = 2 fd = 17
Jack: JackEngine::ClientKill ref = 2
Jack: JackEngine::ClientDeactivate ref = 2 name = SuperCollider
Jack: JackEngine::PortDisconnect ref = -1 src = 25 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 1 dst = 25
Jack: JackGraphManager::Disconnect port_src = 1 port_dst = 25
Jack: JackConnectionManager::Disconnect port_src = 1 port_dst = 25
Jack: JackConnectionManager::Disconnect port_src = 25 port_dst = 1
Jack: JackConnectionManager::DecConnectionRef: ref1 = 0 ref2 = 2
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 26 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 2 dst = 26
Jack: JackGraphManager::Disconnect port_src = 2 port_dst = 26
Jack: JackConnectionManager::Disconnect port_src = 2 port_dst = 26
Jack: JackConnectionManager::Disconnect port_src = 26 port_dst = 2
Jack: JackConnectionManager::DirectDisconnect last: ref1 = 0 ref2 = 2
Jack: JackConnectionManager::DecConnectionRef: ref1 = 0 ref2 = 2
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 27 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 27 dst = 13
Jack: JackGraphManager::Disconnect port_src = 27 port_dst = 13
Jack: JackConnectionManager::Disconnect port_src = 27 port_dst = 13
Jack: JackConnectionManager::Disconnect port_src = 13 port_dst = 27
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 28 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 28 dst = 14
Jack: JackGraphManager::Disconnect port_src = 28 port_dst = 14
Jack: JackConnectionManager::Disconnect port_src = 28 port_dst = 14
Jack: JackConnectionManager::Disconnect port_src = 14 port_dst = 28
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 29 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 29 dst = 15
Jack: JackGraphManager::Disconnect port_src = 29 port_dst = 15
Jack: JackConnectionManager::Disconnect port_src = 29 port_dst = 15
Jack: JackConnectionManager::Disconnect port_src = 15 port_dst = 29
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 30 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 30 dst = 16
Jack: JackGraphManager::Disconnect port_src = 30 port_dst = 16
Jack: JackConnectionManager::Disconnect port_src = 30 port_dst = 16
Jack: JackConnectionManager::Disconnect port_src = 16 port_dst = 30
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 31 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 31 dst = 17
Jack: JackGraphManager::Disconnect port_src = 31 port_dst = 17
Jack: JackConnectionManager::Disconnect port_src = 31 port_dst = 17
Jack: JackConnectionManager::Disconnect port_src = 17 port_dst = 31
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 32 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 32 dst = 18
Jack: JackGraphManager::Disconnect port_src = 32 port_dst = 18
Jack: JackConnectionManager::Disconnect port_src = 32 port_dst = 18
Jack: JackConnectionManager::Disconnect port_src = 18 port_dst = 32
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 33 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 33 dst = 19
Jack: JackGraphManager::Disconnect port_src = 33 port_dst = 19
Jack: JackConnectionManager::Disconnect port_src = 33 port_dst = 19
Jack: JackConnectionManager::Disconnect port_src = 19 port_dst = 33
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 34 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 34 dst = 20
Jack: JackGraphManager::Disconnect port_src = 34 port_dst = 20
Jack: JackConnectionManager::Disconnect port_src = 34 port_dst = 20
Jack: JackConnectionManager::Disconnect port_src = 20 port_dst = 34
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 35 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 35 dst = 21
Jack: JackGraphManager::Disconnect port_src = 35 port_dst = 21
Jack: JackConnectionManager::Disconnect port_src = 35 port_dst = 21
Jack: JackConnectionManager::Disconnect port_src = 21 port_dst = 35
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 36 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 36 dst = 22
Jack: JackGraphManager::Disconnect port_src = 36 port_dst = 22
Jack: JackConnectionManager::Disconnect port_src = 36 port_dst = 22
Jack: JackConnectionManager::Disconnect port_src = 22 port_dst = 36
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 37 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 37 dst = 23
Jack: JackGraphManager::Disconnect port_src = 37 port_dst = 23
Jack: JackConnectionManager::Disconnect port_src = 37 port_dst = 23
Jack: JackConnectionManager::Disconnect port_src = 23 port_dst = 37
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 38 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 38 dst = 24
Jack: JackGraphManager::Disconnect port_src = 38 port_dst = 24
Jack: JackConnectionManager::Disconnect port_src = 38 port_dst = 24
Jack: JackConnectionManager::Disconnect port_src = 24 port_dst = 38
Jack: JackConnectionManager::DirectDisconnect last: ref1 = 2 ref2 = 0
Jack: JackConnectionManager::DecConnectionRef: ref1 = 2 ref2 = 0
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::ClientNotify: no callback for notification = 12
Jack: JackEngine::PortDisconnect ref = -1 src = 39 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 40 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 41 dst = 65535
Jack: JackEngine::PortDisconnect ref = -1 src = 42 dst = 65535
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackConnectionManager::DirectDisconnect last: ref1 = 2 ref2 = 1
Jack: JackGraphManager::DisconnectRefNum cur_index = 3 ref1 = 2 ref2 = 1
Jack: JackConnectionManager::DirectDisconnect last: ref1 = 1 ref2 = 2
Jack: JackGraphManager::DisconnectRefNum cur_index = 3 ref1 = 1 ref2 = 2
Jack: JackPosixProcessSync::TimedWait time out = 213320
Jack: Process: graph not finished!
Jack: Process: switch to next state delta = 6522866197
Jack: JackPosixProcessSync::TimedWait finished delta = 6250.0
Jack: JackEngine::ClientExternalClose ref = 2
Jack: JackEngine::ClientCloseAux ref = 2
Jack: JackEngine::PortUnRegister ref = 2 port_index = 25
Jack: JackEngine::PortDisconnect ref = -1 src = 25 dst = 65535
Jack: JackGraphManager::DisconnectAllInput port_index = 25
Jack: JackConnectionManager::RemoveInputPort ref = 2 port_index = 25 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 26
Jack: JackEngine::PortDisconnect ref = -1 src = 26 dst = 65535
Jack: JackGraphManager::DisconnectAllInput port_index = 26
Jack: JackConnectionManager::RemoveInputPort ref = 2 port_index = 26 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 27
Jack: JackEngine::PortDisconnect ref = -1 src = 27 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 27 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 27 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 28
Jack: JackEngine::PortDisconnect ref = -1 src = 28 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 28 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 28 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 29
Jack: JackEngine::PortDisconnect ref = -1 src = 29 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 29 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 29 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 30
Jack: JackEngine::PortDisconnect ref = -1 src = 30 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 30 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 30 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 31
Jack: JackEngine::PortDisconnect ref = -1 src = 31 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 31 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 31 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 32
Jack: JackEngine::PortDisconnect ref = -1 src = 32 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 32 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 32 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 33
Jack: JackEngine::PortDisconnect ref = -1 src = 33 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 33 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 33 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 34
Jack: JackEngine::PortDisconnect ref = -1 src = 34 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 34 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 34 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 35
Jack: JackEngine::PortDisconnect ref = -1 src = 35 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 35 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 35 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 36
Jack: JackEngine::PortDisconnect ref = -1 src = 36 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 36 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 36 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 37
Jack: JackEngine::PortDisconnect ref = -1 src = 37 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 37 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 37 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 38
Jack: JackEngine::PortDisconnect ref = -1 src = 38 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 38 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 38 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 39
Jack: JackEngine::PortDisconnect ref = -1 src = 39 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 39 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 39 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 40
Jack: JackEngine::PortDisconnect ref = -1 src = 40 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 40 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 40 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 41
Jack: JackEngine::PortDisconnect ref = -1 src = 41 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 41 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 41 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::PortUnRegister ref = 2 port_index = 42
Jack: JackEngine::PortDisconnect ref = -1 src = 42 dst = 65535
Jack: JackGraphManager::DisconnectAllOutput port_index = 42 
Jack: JackConnectionManager::RemoveOutputPort ref = 2 port_index = 42 
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ClientNotify: no callback for notification = 10
Jack: JackEngine::ReleaseRefnum server quit
Server 'localhost' exited with exit code 0.
server 'localhost' disconnected shared memory interface
@dyfer
Copy link
Member

dyfer commented Jan 25, 2023

@ErikNatanael thank you for the report. I can confirm this also occurs on macOS with a recent develop build.

Backtrace:

Thread 5 Crashed:
0   scsynth                       	       0x100cdaa6c DoBufferColoring(World*, GraphDef*) + 144 (SC_GraphDef.cpp:875)
1   scsynth                       	       0x100cd9fe4 GraphDef_Read(World*, char*&, GraphDef*, int) + 1696 (SC_GraphDef.cpp:421)
2   scsynth                       	       0x100cd9fe4 GraphDef_Read(World*, char*&, GraphDef*, int) + 1696 (SC_GraphDef.cpp:421)
3   scsynth                       	       0x100cd9920 GraphDefLib_Read(World*, char*, GraphDef*) + 208 (SC_GraphDef.cpp:200)
4   scsynth                       	       0x100cdb508 GraphDef_Load(World*, boost::filesystem::path const&, GraphDef*) + 84 (SC_GraphDef.cpp:623)
5   scsynth                       	       0x100cdb420 GraphDef_LoadGlob(World*, char const*, GraphDef*) + 224 (SC_GraphDef.cpp:609)
6   scsynth                       	       0x100cf5208 LoadSynthDefCmd::Stage2() + 28 (SC_SequencedCommand.cpp:1355)
7   scsynth                       	       0x100cedb60 SC_SequencedCommand::CallNextStage() + 292 (SC_SequencedCommand.cpp:194)
8   scsynth                       	       0x100cd1678 FifoMsg::Perform() + 12 (SC_FifoMsg.h:47) [inlined]
9   scsynth                       	       0x100cd1678 SCMsgFifo::MsgFifo<FifoMsg, 65536>::Perform() + 52 (MsgFifo.h:62) [inlined]
10  scsynth                       	       0x100cd1678 SC_AudioDriver::RunThread() + 584 (SC_CoreAudio.cpp:383)
11  scsynth                       	       0x100cd4d90 decltype(*(static_cast<SC_AudioDriver*&>(fp0)).*fp()) std::__1::__invoke<void (SC_AudioDriver::*&)(), SC_AudioDriver*&, void>(void (SC_AudioDriver::*&)(), SC_AudioDriver*&) + 28 (type_traits:3859) [inlined]
12  scsynth                       	       0x100cd4d90 std::__1::__bind_return<void (SC_AudioDriver::*)(), std::__1::tuple<SC_AudioDriver*>, std::__1::tuple<>, __is_valid_bind_return<void (SC_AudioDriver::*)(), std::__1::tuple<SC_AudioDriver*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (SC_AudioDriver::*)(), std::__1::tuple<SC_AudioDriver*>, 0ul, std::__1::tuple<> >(void (SC_AudioDriver::*&)(), std::__1::tuple<SC_AudioDriver*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) + 28 (bind.h:257) [inlined]
13  scsynth                       	       0x100cd4d90 std::__1::__bind_return<void (SC_AudioDriver::*)(), std::__1::tuple<SC_AudioDriver*>, std::__1::tuple<>, __is_valid_bind_return<void (SC_AudioDriver::*)(), std::__1::tuple<SC_AudioDriver*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (SC_AudioDriver::*)(), SC_AudioDriver*>::operator()<>() + 28 (bind.h:292) [inlined]
14  scsynth                       	       0x100cd4d90 decltype(static_cast<std::__1::__bind<void (SC_AudioDriver::*)(), SC_AudioDriver*>>(fp)()) std::__1::__invoke<std::__1::__bind<void (SC_AudioDriver::*)(), SC_AudioDriver*> >(std::__1::__bind<void (SC_AudioDriver::*)(), SC_AudioDriver*>&&) + 28 (type_traits:3918) [inlined]
15  scsynth                       	       0x100cd4d90 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (SC_AudioDriver::*)(), SC_AudioDriver*> >(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (SC_AudioDriver::*)(), SC_AudioDriver*> >&, std::__1::__tuple_indices<>) + 28 (thread:287) [inlined]
16  scsynth                       	       0x100cd4d90 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, std::__1::__bind<void (SC_AudioDriver::*)(), SC_AudioDriver*> > >(void*) + 64 (thread:298)
17  libsystem_pthread.dylib       	       0x1be0e426c _pthread_start + 148
18  libsystem_pthread.dylib       	       0x1be0df08c thread_start + 8

I'm not sure if this is related to sc3-plugins (because of Greyhole) or is it more of an scsynth bug (which should be filed in supercollider instead). One point of interest is that for some reason Greyhole Ugen does not seem to load on supernova for me (I wanted to check whether supernova crashes as well); I get signal_idle_synthesis: Unit generator GreyholeRaw not installed.

@telephon
Copy link
Member

an idea what this could be, @LFSaw ?

@LFSaw
Copy link
Member

LFSaw commented Jan 25, 2023

AFAIK, Greyhole did never work on supernova, I'm afraid... this has possibly to do with it being a faust auto-generated plugin (?).

@dyfer
Copy link
Member

dyfer commented Jan 25, 2023

I vaguely remember that there might have been some fix submitted to Faust to fix supernova plugin creation. So maybe one thing try would be to re-create this plugin with a newer version of Faust (not necessarily for supernova, but to check whether that fixes the submitted issue), but that's a shot in the dark.

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

4 participants