Ardour freezes at setup editor

Project crashed and I’m desperately trying to recover from crash but then it always freezes at “setup editor” phase on splash screen. No matter which version, 8.2 or 8.6, same thing. Is there anything I can do to recover the project?

Linux Mint 21.2

Terminal doesn’t print more than this after opening the project:

Set cursor set to default
start clocking
Setting time domain

EDIT: with gdb

Summary
[Thread 0x7ffff45ff640 (LWP 12149) exited]
[Thread 0x7fffbefff640 (LWP 12148) exited]
[Thread 0x7fffbcbfc640 (LWP 12160) exited]
[Thread 0x7fffbe3ff640 (LWP 12159) exited]
[Thread 0x7fffbd3fd640 (LWP 12158) exited]
[New Thread 0x7fffbd3fd640 (LWP 12163)]
[New Thread 0x7fffbcbfc640 (LWP 12164)]
[Thread 0x7fffbcbfc640 (LWP 12164) exited]
[New Thread 0x7fffbcbfc640 (LWP 12165)]
[New Thread 0x7fffbe3ff640 (LWP 12166)]
[New Thread 0x7fffa37fe640 (LWP 12167)]
[Thread 0x7fffa3fff640 (LWP 12161) exited]
[New Thread 0x7fffa3fff640 (LWP 12194)]
[New Thread 0x7fffa2ffd640 (LWP 12195)]
[New Thread 0x7fffa27fc640 (LWP 12196)]
[Detaching after vfork from child process 12197]
[New Thread 0x7fffa1ffb640 (LWP 12198)]
[Thread 0x7fffa1ffb640 (LWP 12198) exited]
[Thread 0x7fffa3fff640 (LWP 12194) exited]
[Thread 0x7fffa2ffd640 (LWP 12195) exited]
[Thread 0x7fffbd3fd640 (LWP 12163) exited]
[Detaching after vfork from child process 12199]
[New Thread 0x7fffa1ffb640 (LWP 12200)]
[Thread 0x7fffa1ffb640 (LWP 12200) exited]
Set cursor set to default
[New Thread 0x7fffa1ffb640 (LWP 12201)]
start clocking
[New Thread 0x7fffbd3fd640 (LWP 12202)]
[New Thread 0x7fffa2ffd640 (LWP 12203)]
[New Thread 0x7fffa3fff640 (LWP 12204)]
[New Thread 0x7fffa17fa640 (LWP 12205)]
[New Thread 0x7fffa0ff9640 (LWP 12206)]
[New Thread 0x7fff87fff640 (LWP 12207)]
[New Thread 0x7fff877fe640 (LWP 12208)]
[New Thread 0x7fff86ffd640 (LWP 12209)]
[New Thread 0x7fff867fc640 (LWP 12210)]
[New Thread 0x7fff85ffb640 (LWP 12211)]
[New Thread 0x7fff857fa640 (LWP 12212)]
[Thread 0x7fffa27fc640 (LWP 12196) exited]
[New Thread 0x7ffff330b640 (LWP 12215)]
[New Thread 0x7fffa27fc640 (LWP 12216)]
[New Thread 0x7fff60bff640 (LWP 12217)]
Setting time domain
[New Thread 0x7fff5aba8640 (LWP 12226)]
[New Thread 0x7fff5a3a7640 (LWP 12227)]
[New Thread 0x7fff59ba6640 (LWP 12228)]
[New Thread 0x7fff593a5640 (LWP 12229)]
[New Thread 0x7fff58ba4640 (LWP 12230)]
[Thread 0x7fffa1ffb640 (LWP 12201) exited]

If this is a distro build, a common cause is a system GTK theme.

Please check an official build from ardour.org

Also, with gdb, that output is not really useful. It needs the output of the “thread apply all bt” command given to gdb, as described at https://ardour.org/debugging_ardour

I have downloaded the versions from Ardour site. I tried to follow debugging instructions with that command in mind but couldn’t produce any more data. (Likely a skill issue, that’s on me.) The software doesn’t crash on recovering but freezes so I just have to kill it manually.

What problems were you having with debugging? What actually happened?

Not sure when should I have written the “thread apply all bt”. I started Ardour with gdb and tried these: I tried to write that thread command before (gdb) run, I tried to write it after I opened the project while running (gdb) run (didn’t display (gdb)-line during running), and I tried to write it after I had killed the program, but never I got any data output on terminal or any effect whatsoever.

When it is frozen, type ctrl-c in the same terminal where you started it and you get a prompt saying gdb)

Then type: thread apply all bt

Then copy and paste all the output to here or a pastebin site like pastebin.com and give us the link.

Ok thanks, that ctrl+c helped. Here is the whole output now:

Summary
Thread 1 "ArdourGUI" received signal SIGINT, Interrupt.
0x00007ffff5a1c199 in Temporal::Meter::to_quarters(Temporal::BBT_Offset const&) const () from /opt/Ardour-8.6.0/lib/libtemporal.so.0
(gdb) thread apply all bt

Thread 53 (Thread 0x7fff58ba4640 (LWP 20083) "AutomationWatch"):
#0  0x00007fffe84907f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7fff58ba3c10, rem=0x7fff58ba3c20) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
#1  0x00007fffe8495677 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x00007ffff0488d48 in g_usleep () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#3  0x00007ffff6b12540 in ARDOUR::AutomationWatch::thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007ffff4268a56 in PBD::Thread::_run(void*) () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 52 (Thread 0x7fff593a5640 (LWP 20082) "autoconnect"):
#0  __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x555559eae268) at ./nptl/futex-internal.c:57
#1  __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x555559eae268) at ./nptl/futex-internal.c:87
#2  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x555559eae268, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#3  0x00007fffe843ea41 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555559eae218, cond=0x555559eae240) at ./nptl/pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x555559eae240, mutex=0x555559eae218) at ./nptl/pthread_cond_wait.c:627
#5  0x00007ffff6e96a80 in ARDOUR::Session::auto_connect_thread_run() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#6  0x00007ffff6e96c38 in ARDOUR::Session::auto_connect_thread(void*) () from /opt/Ardour-8.6.0/lib/libardour.so.3
#7  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#8  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 51 (Thread 0x7fff59ba6640 (LWP 20081) "SessionSignals"):
#0  __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x555559eae1f8) at ./nptl/futex-internal.c:57
#1  __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x555559eae1f8) at ./nptl/futex-internal.c:87
#2  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x555559eae1f8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#3  0x00007fffe843ea41 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555559eae1a8, cond=0x555559eae1d0) at ./nptl/pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x555559eae1d0, mutex=0x555559eae1a8) at ./nptl/pthread_cond_wait.c:627
#5  0x00007ffff6f19923 in ARDOUR::Session::emit_thread_run() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#6  0x00007ffff6f19958 in ARDOUR::Session::emit_thread(void*) () from /opt/Ardour-8.6.0/lib/libardour.so.3
#7  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#8  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 50 (Thread 0x7fff5a3a7640 (LWP 20080) "ArdourGUI"):
#0  0x00007fffe84c3bcf in __GI___poll (fds=0x7fff54000b70, nfds=2, timeout=60000) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffe8808af7 in ?? () from /opt/Ardour-8.6.0/lib/libusb-1.0.so.0
#2  0x00007fffe8809c19 in libusb_handle_events_timeout_completed () from /opt/Ardour-8.6.0/lib/libusb-1.0.so.0
#3  0x00007fffe8809d9a in libusb_handle_events () from /opt/Ardour-8.6.0/lib/libusb-1.0.so.0
#4  0x00007ffff6b2f019 in ?? () from /opt/Ardour-8.6.0/lib/libardour.so.3
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 49 (Thread 0x7fff5aba8640 (LWP 20079) "ArdourGUI"):
#0  0x00007fffe84c3bcf in __GI___poll (fds=0x7fff5aba7c70, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffe881162d in ?? () from /opt/Ardour-8.6.0/lib/libusb-1.0.so.0
#2  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#3  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 48 (Thread 0x7fff60bff640 (LWP 20078) "ArdourGUI"):
#0  0x00007fffe84907f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7fff60bfebd0, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
#1  0x00007fffe8495677 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x00007fff60f305ae in juce::Thread::sleep(int) () from /usr/lib/lxvst/helm.so
#3  0x00007fff60f8217a in juce::MessageManager::runDispatchLoopUntil(int) () from /usr/lib/lxvst/helm.so
#4  0x00007fff60ebad12 in SharedMessageThread::run() () from /usr/lib/lxvst/helm.so
#5  0x00007fff60f34028 in juce::Thread::threadEntryPoint() () from /usr/lib/lxvst/helm.so
#6  0x00007fff60f341b9 in threadEntryProc () from /usr/lib/lxvst/helm.so
#7  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#8  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 47 (Thread 0x7fffa27fc640 (LWP 20077) "midiUI"):
#0  0x00007fffe84c3bcf in __GI___poll (fds=0x7fff68041a60, nfds=4, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff0456c76 in ?? () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#2  0x00007ffff0457002 in g_main_loop_run () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#3  0x00007ffff422e393 in BaseUI::main_thread() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#4  0x00007ffff4268a56 in PBD::Thread::_run(void*) () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 46 (Thread 0x7ffff330b640 (LWP 20076) "butler"):
#0  0x00007fffe84c3bcf in __GI___poll (fds=0x7ffff330aa48, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff423a257 in CrossThreadChannel::poll_for_request() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff423a2b6 in CrossThreadChannel::receive(char&, bool) () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#3  0x00007ffff6b1ff25 in ARDOUR::Butler::thread_work() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007ffff6b219c2 in ARDOUR::Butler::_thread_work(void*) () from /opt/Ardour-8.6.0/lib/libardour.so.3
#5  0x00007ffff4268226 in ?? () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#6  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#7  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 45 (Thread 0x7fff857fa640 (LWP 20075) "RT-10-(nil)"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff426cbca in PBD::Semaphore::wait() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff6c07b0d in ARDOUR::Graph::run_one() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff6c07d40 in ARDOUR::Graph::helper_thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007fffbfc1eec1 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 44 (Thread 0x7fff85ffb640 (LWP 20074) "RT-9-(nil)"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff426cbca in PBD::Semaphore::wait() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff6c07b0d in ARDOUR::Graph::run_one() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff6c07d40 in ARDOUR::Graph::helper_thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007fffbfc1eec1 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 43 (Thread 0x7fff867fc640 (LWP 20073) "RT-8-(nil)"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff426cbca in PBD::Semaphore::wait() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff6c07b0d in ARDOUR::Graph::run_one() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff6c07d40 in ARDOUR::Graph::helper_thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007fffbfc1eec1 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 42 (Thread 0x7fff86ffd640 (LWP 20072) "RT-7-(nil)"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff426cbca in PBD::Semaphore::wait() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff6c07b0d in ARDOUR::Graph::run_one() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff6c07d40 in ARDOUR::Graph::helper_thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007fffbfc1eec1 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 41 (Thread 0x7fff877fe640 (LWP 20071) "RT-6-(nil)"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff426cbca in PBD::Semaphore::wait() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff6c07b0d in ARDOUR::Graph::run_one() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff6c07d40 in ARDOUR::Graph::helper_thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007fffbfc1eec1 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 40 (Thread 0x7fff87fff640 (LWP 20070) "RT-5-(nil)"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff426cbca in PBD::Semaphore::wait() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff6c07b0d in ARDOUR::Graph::run_one() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff6c07d40 in ARDOUR::Graph::helper_thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007fffbfc1eec1 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 39 (Thread 0x7fffa0ff9640 (LWP 20069) "RT-4-(nil)"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff426cbca in PBD::Semaphore::wait() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff6c07b0d in ARDOUR::Graph::run_one() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff6c07d40 in ARDOUR::Graph::helper_thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007fffbfc1eec1 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 38 (Thread 0x7fffa17fa640 (LWP 20068) "RT-3-(nil)"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff426cbca in PBD::Semaphore::wait() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff6c07b0d in ARDOUR::Graph::run_one() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff6c07d40 in ARDOUR::Graph::helper_thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007fffbfc1eec1 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 37 (Thread 0x7fffbe3ff640 (LWP 20067) "RT-2-(nil)"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff426cbca in PBD::Semaphore::wait() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff6c07546 in ARDOUR::Graph::reached_terminal_node() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff6c07ac8 in ARDOUR::Graph::run_one() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007ffff6c07d40 in ARDOUR::Graph::helper_thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#5  0x00007fffbfc1eec1 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#6  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#7  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 36 (Thread 0x7fffbcbfc640 (LWP 20066) "RT-1-(nil)"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff426cbca in PBD::Semaphore::wait() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff6c07b0d in ARDOUR::Graph::run_one() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff6c07d40 in ARDOUR::Graph::helper_thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007fffbfc1eec1 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 35 (Thread 0x7fffa2ffd640 (LWP 20065) "RT-main-(nil)"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff426cbca in PBD::Semaphore::wait() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff6c07b0d in ARDOUR::Graph::run_one() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff6c07f28 in ARDOUR::Graph::main_thread() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007fffbfc1eec1 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 34 (Thread 0x7fffa1ffb640 (LWP 20064) "pool"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff04aa594 in g_cond_wait_until () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#2  0x00007ffff04203eb in g_async_queue_timeout_pop () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#3  0x00007ffff0487cd4 in ?? () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#4  0x00007ffff04874a5 in ?? () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 28 (Thread 0x7fffa3fff640 (LWP 20056) "AudioEngine 1"):
#0  0x00007fffe84d0e2e in epoll_wait (epfd=17, events=0x7fffa3ffe440, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1  0x00007ffff58589b8 in ?? () from /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so
#2  0x00007ffff584c371 in ?? () from /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so
#3  0x00007ffff4d5dac9 in pw_data_loop_wait () from /lib/x86_64-linux-gnu/libpipewire-0.3.so.0
#4  0x00007ffff587f494 in jack_cycle_wait () from /usr/lib/x86_64-linux-gnu/pipewire-0.3/jack/libjack.so.0
#5  0x00007fffbfc1e860 in ARDOUR::JACKAudioBackend::process_thread() () from /opt/Ardour-8.6.0/lib/backends/libjack_audiobackend.so
#6  0x00007ffff584c4de in ?? () from /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so
#7  0x00007ffff4d6246c in ?? () from /lib/x86_64-linux-gnu/libpipewire-0.3.so.0
#8  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#9  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 27 (Thread 0x7fffa37fe640 (LWP 20055) "pw-ardour"):
#0  0x00007fffe84d0e2e in epoll_wait (epfd=21, events=0x7fffa37fd870, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1  0x00007ffff58589b8 in ?? () from /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so
#2  0x00007ffff584aa8d in ?? () from /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so
#3  0x00007ffff4da8331 in ?? () from /lib/x86_64-linux-gnu/libpipewire-0.3.so.0
#4  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#5  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 26 (Thread 0x7fffbd3fd640 (LWP 20054) "pw-ardour"):
#0  0x00007fffe84d0e2e in epoll_wait (epfd=10, events=0x7fffbd3fc870, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1  0x00007ffff58589b8 in ?? () from /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so
#2  0x00007ffff584aa8d in ?? () from /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so
#3  0x00007ffff4da8331 in ?? () from /lib/x86_64-linux-gnu/libpipewire-0.3.so.0
#4  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#5  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 20 (Thread 0x7fffbdbfe640 (LWP 20048) "gmain"):
#0  0x00007fffe84c3bcf in __GI___poll (fds=0x555556d42cc0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff0456c76 in ?? () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#2  0x00007ffff0456d8c in g_main_context_iteration () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#3  0x00007ffff0456dd1 in ?? () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#4  0x00007ffff04874a5 in ?? () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#5  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#6  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 10 (Thread 0x7fffc4fff640 (LWP 20038) "DeviceList"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff04aa47f in g_cond_wait () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#2  0x00007ffff6ac72cb in ARDOUR::AudioEngine::do_devicelist_update() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff4268a56 in PBD::Thread::_run(void*) () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#4  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#5  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 9 (Thread 0x7fffd27ff640 (LWP 20037) "EngineWatchdog"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff04aa47f in g_cond_wait () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#2  0x00007ffff6ac97fd in ARDOUR::AudioEngine::do_reset_backend() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff4268a56 in PBD::Thread::_run(void*) () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#4  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#5  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 6 (Thread 0x7fffd3fff640 (LWP 20034) "Analyzer"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff04aa47f in g_cond_wait () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#2  0x00007ffff6a84e7b in ARDOUR::Analyser::work() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff4268a56 in PBD::Thread::_run(void*) () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#4  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#5  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 5 (Thread 0x7fffe0c11640 (LWP 20033) "PeakFileBuilder"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff04aa47f in g_cond_wait () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#2  0x00007ffff6f99625 in ?? () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff4268a56 in PBD::Thread::_run(void*) () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#4  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#5  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 4 (Thread 0x7fffe1412640 (LWP 20032) "PeakFileBuilder"):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff04aa47f in g_cond_wait () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#2  0x00007ffff6f99625 in ?? () from /opt/Ardour-8.6.0/lib/libardour.so.3
#3  0x00007ffff4268a56 in PBD::Thread::_run(void*) () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#4  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#5  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 3 (Thread 0x7fffe1c13640 (LWP 20031) "LXVSTEventLoop"):
#0  0x00007fffe84907f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7fffe1c12aa0, rem=0x7fffe1c12ab0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
#1  0x00007fffe8495677 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x00007ffff0488d48 in g_usleep () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#3  0x000055555636736b in ?? ()
#4  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#5  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 2 (Thread 0x7ffff61e8640 (LWP 20030) "Trigger Worker"):
#0  0x00007fffe84c3bcf in __GI___poll (fds=0x7ffff61e7b68, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff423a257 in CrossThreadChannel::poll_for_request() () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#2  0x00007ffff423a2b6 in CrossThreadChannel::receive(char&, bool) () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#3  0x00007ffff6ffd65c in ARDOUR::TriggerBoxThread::thread_work() () from /opt/Ardour-8.6.0/lib/libardour.so.3
#4  0x00007ffff6ffd9be in ARDOUR::TriggerBoxThread::_thread_work(void*) () from /opt/Ardour-8.6.0/lib/libardour.so.3
#5  0x00007ffff4268226 in ?? () from /opt/Ardour-8.6.0/lib/libpbd.so.4
#6  0x00007fffe843fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#7  0x00007fffe84d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Thread 1 (Thread 0x7ffff7a36900 (LWP 20027) "ArdourGUI"):
#0  0x00007ffff5a1c199 in Temporal::Meter::to_quarters(Temporal::BBT_Offset const&) const () from /opt/Ardour-8.6.0/lib/libtemporal.so.0
#1  0x00007ffff5a1c845 in Temporal::MeterPoint::quarters_at(Temporal::BBT_Time const&) const () from /opt/Ardour-8.6.0/lib/libtemporal.so.0
#2  0x00007ffff5a1ee3d in Temporal::TempoMetric::superclock_at(Temporal::BBT_Time const&) const () from /opt/Ardour-8.6.0/lib/libtemporal.so.0
#3  0x00007ffff5a2b3bb in Temporal::TempoMap::fill_grid_by_walking(std::vector<Temporal::TempoMapPoint, std::allocator<Temporal::TempoMapPoint> >&, boost::intrusive::list_iterator<boost::intrusive::bhtraits<Temporal::Point, boost::intrusive::list_node_traits<void*>, (boost::intrusive::link_mode_type)1, Temporal::point_tag, 1u>, true>&, Temporal::TempoMetric&, long&, long, long, int, int, Temporal::Beats&, Temporal::BBT_Time&) const () from /opt/Ardour-8.6.0/lib/libtemporal.so.0
#4  0x00007ffff5a2c464 in Temporal::TempoMap::get_grid(std::vector<Temporal::TempoMapPoint, std::allocator<Temporal::TempoMapPoint> >&, long, long, unsigned int, unsigned int) const () from /opt/Ardour-8.6.0/lib/libtemporal.so.0
#5  0x0000555555b5b4e1 in ?? ()
#6  0x0000555555b5ba4f in ?? ()
#7  0x0000555555a365fb in ?? ()
#8  0x0000555555a71a3e in ?? ()
#9  0x00007fffef85e868 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () from /opt/Ardour-8.6.0/lib/libglibmm-2.4.so.1
#10 0x00007fffee40f6b5 in g_closure_invoke () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#11 0x00007fffee422593 in ?? () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#12 0x00007fffee42c364 in g_signal_emit_valist () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#13 0x00007fffee42c7e2 in g_signal_emit () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#14 0x00007ffff2c76840 in _gtk_action_emit_activate () from /opt/Ardour-8.6.0/lib/libytk.so.2
#15 0x0000555555a1b23f in ?? ()
#16 0x0000555555a251ca in ?? ()
#17 0x0000555555a520af in ?? ()
#18 0x000055555591feff in ?? ()
#19 0x0000555555928d87 in ?? ()
#20 0x00005555559575d1 in ?? ()
#21 0x000055555595890b in ?? ()
#22 0x0000555555961afc in ?? ()
#23 0x0000555555967655 in ?? ()
#24 0x00005555561cd0ed in ?? ()
#25 0x00005555561cbf40 in ?? ()
#26 0x00007ffff3a3be57 in ?? () from /opt/Ardour-8.6.0/lib/libytkmm.so.2
#27 0x00007fffee40f6b5 in g_closure_invoke () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#28 0x00007fffee422593 in ?? () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#29 0x00007fffee42c364 in g_signal_emit_valist () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#30 0x00007fffee42c7e2 in g_signal_emit () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#31 0x00007ffff2cd614c in gtk_dialog_response () from /opt/Ardour-8.6.0/lib/libytk.so.2
#32 0x00005555561c9044 in ?? ()
#33 0x00005555561cc048 in ?? ()
#34 0x00007ffff3a3be57 in ?? () from /opt/Ardour-8.6.0/lib/libytkmm.so.2
#35 0x00007fffee40f6b5 in g_closure_invoke () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#36 0x00007fffee422593 in ?? () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#37 0x00007fffee42c364 in g_signal_emit_valist () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#38 0x00007fffee42c7e2 in g_signal_emit () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#39 0x00007ffff2cd614c in gtk_dialog_response () from /opt/Ardour-8.6.0/lib/libytk.so.2
#40 0x00007ffff3aae277 in ?? () from /opt/Ardour-8.6.0/lib/libytkmm.so.2
#41 0x00007fffee40f6b5 in g_closure_invoke () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#42 0x00007fffee422593 in ?? () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#43 0x00007fffee42c364 in g_signal_emit_valist () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#44 0x00007fffee42c7e2 in g_signal_emit () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#45 0x00007ffff2ecd0ad in ?? () from /opt/Ardour-8.6.0/lib/libytk.so.2
#46 0x00007ffff2d7605c in _gtk_marshal_BOOLEAN__BOXED () from /opt/Ardour-8.6.0/lib/libytk.so.2
#47 0x00007fffee40f6b5 in g_closure_invoke () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#48 0x00007fffee4228bd in ?? () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#49 0x00007fffee42bdc8 in g_signal_emit_valist () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#50 0x00007fffee42c7e2 in g_signal_emit () from /opt/Ardour-8.6.0/lib/libgobject-2.0.so.0
#51 0x00007ffff2eed96c in ?? () from /opt/Ardour-8.6.0/lib/libytk.so.2
#52 0x00007ffff2d7464d in gtk_propagate_event () from /opt/Ardour-8.6.0/lib/libytk.so.2
#53 0x00007ffff2d74ad3 in gtk_main_do_event () from /opt/Ardour-8.6.0/lib/libytk.so.2
#54 0x00007ffff2874ecc in ?? () from /opt/Ardour-8.6.0/lib/libydk.so.2
#55 0x00007ffff0456a87 in g_main_context_dispatch () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#56 0x00007ffff0456ce8 in ?? () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#57 0x00007ffff0457002 in g_main_loop_run () from /opt/Ardour-8.6.0/lib/libglib-2.0.so.0
#58 0x00007ffff2d73797 in gtk_main () from /opt/Ardour-8.6.0/lib/libytk.so.2
#59 0x00007ffff4664cd5 in Gtkmm2ext::UI::run(Receiver&) () from /opt/Ardour-8.6.0/lib/libgtkmm2ext.so.0
#60 0x00005555558a2e9e in ?? ()
#61 0x00007fffe83d4d90 in __libc_start_call_main (main=main@entry=0x5555558a2a20, argc=argc@entry=1, argv=argv@entry=0x7fffffffd388) at ../sysdeps/nptl/libc_start_call_main.h:58
#62 0x00007fffe83d4e40 in __libc_start_main_impl (main=0x5555558a2a20, argc=1, argv=0x7fffffffd388, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd378) at ../csu/libc-start.c:392
#63 0x00005555558aa2ca in ?? ()

OK, that’s something quite different. Please file a bug report at tracker.ardour.org, and attach a session archive (Session > Archive in ardour) to it. No promises on when I can take a look at it.

Do I need to get the session archive while running Ardour with any project or with this frozen one? With this current project I cannot get Ardour running in the first place which is the issue.

Ah, good point. Just use a standalone archive tool like zip or tar on the session folder

Got it, hopefully the report is ok now. 0009700: Splash screen freeze at "setup editor" while recovering a crashed project - MantisBT

Meanwhile I take suggestions for this issue to open my frozen project somehow. What are my options? So far what I’ve come up with:

  1. Make a new project and import its audio and MIDI files from the frozen one. (Lots of manual labour, last resort.)
  2. Make a backup project of the original, ignore crash and try to recover lost work by following suggestion 1. (Haven’t tested whether this would work.)

You might make a copy of the .ardour file which freezes Ardour, and then play the “binary search” game with it to find the (one hopes single) track which is the culprit:

  • Delete the entries in the XML file for the first half of the tracks (in the copy), and try starting Ardour from the copy.
  • If Ardour crashes, great! Then you restore the track entries you deleted, and delete only half of them, trying again.
  • If Ardour doesn’t crash when you delete the first half of the tracks, even better! Now, restore the deleted tracks and delete half of the second half (the ones you left in before) and try again.

The beauty here is that you narrow the field of suspects exponentially: if you start with 32 tracks, any of which could be the culprit (and again, assuming that only one is guilty), then it will take at most five iterations (think of this like a single-elimination tournament bracket) to find the one track that is breaking Ardour.

Interesting. How do I recognize tracks in the project file? In other words, what kind of lines should I remove to proceed with that?

Also, last time I used the project I made some editing with time signatures. Could I possibly narrow down that somehow instead?

Each track / bus in the <project>.ardour file is managed using an XML <Route> element, looking something like so:

  <Routes>
    <Route version="7002" id="71" name="Master" default-type="audio" strict-io="1" volume-applies-to-output="1" active="1" denormal-protection="0" meter-point="MeterOutput" disk-io-point="DiskIOPreFader" meter-type="MeterK14">
   ...
   </Route>
   ...
 </Routes>

I would be attempting the process I described using my preferred text editor (gvim), for which I have such strong muscle memory that I often can’t even tell somebody else how to do what I’m doing at that very moment.

Chopping out a group of <Route> elements, saving the file (a copy, of course!) and firing Ardour up against the saved copy would be a bit tedious, but has a least a reasonable chance of isolating the broken track (if there is one, and only one). If it seems too much trouble, that might be a clue to create a new Ardour project, import the audio and MIDI from the broken one, and get on with making music (I’ve abandoned suff like that myself, plenty of times).

WRT to your question about having edited time signatures: I don’t really have a clue. Sorry.

Thank you, I might look into that at some point.