** Description changed: [Impact] Users are unable to use sonic-pi as it crashes shortly after launch. This puts sonic-pi in a completely unusable state. [Test Case] Install sonic-pi and launch it. Expected: Application remains open expecting input. Actual: Application crashes and closes [What could go wrong] When the GUI starts before scsynth has created the shared memory segment, server_shared_memory_client's constructor throws std::runtime_error. ResetConnection() did not catch it, causing terminate() to be called and the application to abort immediately. The patch wraps the construction in a try/catch so the audio processing thread retries after one second, matching the existing retry logic for an invalid reader. The only behavioural change is that a failed server_shared_memory_client construction no longer propagates out of ResetConnection(). The existing run() loop already handles !m_shmReader.valid() by sleeping 1 second and retrying, so the retry logic was already there. The patch just stops it from being bypassed by the crash. ResetConnection() is called from two places in run(): once in the "not yet connected" branch at the top of the loop, and once in the "empty frames" branch after 10 consecutive empty reads (line 372). In the second case, scsynth was connected and then went quiet. With the patch, if that reconnect attempt throws (e.g. scsynth restarted and the shared memory was destroyed), the reader is reset to invalid and the next iteration takes the 1-second-sleep path. Previously this would also have crashed. So the patch actually fixes a second potential crash scenario there as well. With that, there's low risk of regression. [Other Information] + The 17-fix-minitest-assert-nil.patch is only needed for stonking as + there is a different version of minitest than in resolute. + It is expected that the upstream Debian Maintainer of this package will be updating it to 4.6.0 soon (1-2 weeks from this writing), which is a major bump and also bumps Qt5 dependencies to Qt6. I have been working with them on this. I expect that to be backportable via official Ubuntu Backports in the future. Until then, this restores functionality.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2155963 Title: [SRU] sonic-pi crashes at launch To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/sonic-pi/+bug/2155963/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
