<!DOCTYPE html><html><head><title></title></head><body><div>Brilliant, thank you very much for sorting this out.</div><div><br></div><div>Cheers,</div><div>Nick</div><div><br></div><div>On Thu, 24 Jul 2025, at 12:20 PM, Simon McVittie wrote:</div><blockquote type="cite" id="qt" style=""><div>On Thu, 24 Jul 2025 at 10:13:08 +0100, Simon McVittie wrote:</div><div>>On Tue, 22 Jul 2025 at 13:32:34 +0100, Nick Steel wrote:</div><div>>>most of Mopidy's value comes from extensions (mostly distributed via PyPI</div><div>>>etc) and it's these that are exposed to the bug, some are consequently</div><div>>>rendered unusable</div><div>></div><div>>How can this deadlock be reproduced on a Debian system, preferably </div><div>>with software from Debian only, or with third-party code if necessary?</div><div>></div><div>>GModule uses a recursive lock, so the most obvious reproducers like</div><div>></div><div>> g_module_open_full ("/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstsoup.so", 0, error);</div><div>></div><div>>do not deadlock: any reproducer would need to be multithreaded.</div><div><br></div><div>I was able to reproduce this with the attached artificial test-case. </div><div>(Good result: it runs for 10 seconds of high CPU load and then exits </div><div>gracefully. Bad result: it continues to run indefinitely, with CPU use </div><div>dropping to zero when it becomes deadlocked.)</div><div><br></div><div>I confirm that the upstream change makes the test-case work as it </div><div>should.</div><div><br></div><div> smcv</div><div><br></div><div><br></div><div><b>Attachments:</b></div><ul><li>1109685.c</li></ul></blockquote><div><br></div></body></html>