spl0k / supysonic

Supysonic is a Python implementation of the Subsonic server API.
https://supysonic.readthedocs.io
GNU Affero General Public License v3.0
264 stars 58 forks source link

flaky test tests.base.test_watcher.AudioWatcherTestCase.test_move_out causes timeouts #263

Closed baldurmen closed 2 months ago

baldurmen commented 6 months ago

Hi!

We're running the supysonic testsuite fairly often in Debian (via the DebCI project) and it seems the tests.base.test_watcher.AudioWatcherTestCase.test_move_out test is somewhat flaky and causes timeouts in our infra (we kill tests after ~2h40).

We've seen this on multiple different architectures (arm64, armel, armhf, i386, ppc64el and s390x), but not on amd64 (which you are probably developing on :P). Here are a few examples:

I'm not exactly sure why this happens, but I guess it's related to the _sleep() function called in this test?

I'd be happy to try to debug things some more if you want me to test specific things :P For now, I've disabled this test in our package.

Cheers,

spl0k commented 6 months ago

Hello.

I remember having issues with that test suite, but tests were just plainly failing, not running indefinitely. I'm not sure the _sleep() function is to blame, it could also be that the watcher fails to stop at the end of the test.

You say it fails on ARM architectures? I will have to dust off my old Raspberry Pi then :P

spl0k commented 5 months ago

Ok I think I found it. It was a thread that failed to get the notification to stop.

I tested it on a Raspberry Pi 1 B+ (armv6l architecture then) running Raspbian Bullseye (Python 3.9). I did get a never ending test but oddly enough it wasn't test_move_out but test_change. It doesn't seem to stall now. I'm also getting a varying number of failing tests but haven't tackled them. I guess the sluggish Pi doesn't like those time dependent tests.

Could you please test again if that's ok now? Do you need me to publish a new version to run the tests?

baldurmen commented 2 months ago

Sorry for not replying earlier! That patch looks good to me :) I've upgraded the Debian package to the latest release. If that doesn't fix it, I'll come back :)

Thanks again for maintaining supysonic!