-
-
Notifications
You must be signed in to change notification settings - Fork 62
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
armv7l docker image: high cpu usage caused by "Error in pthread_cond_timedwait: 22" #430
Comments
Strange issue, I have not changed anything in the threading code. Why do you not use an aarch64 based image? CPU usage goes high because of the failing mutex waits. myMPD runs fine in my test environments - dietpi 32bit, alpine aarch64, both on raspberry 4. But I do not use docker. |
I'm running 32-bit Raspberry OS because when setting up my system there was (and still is?) no official 64-bit version. |
It seems the 6.11.0 docker image is defect. Docker does not find the myMPD executable. Any other changes in your environment? The queue code that is failing was not touched for a long time. |
I'm just switching the myMPD docker images, nothing else is changed. Is it possible that the Alpine Linux on which the image is based on has changed something? |
The myMPD docker images are based on the latest alpine linux image. This release changes the definition of time_t on 32-bit systems. Read https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.13.0#time64_requirements for further information. Nothing to fix in the myMPD source code besides better error handling. I can reproduce the error with myMPD from the 6.12.0 branch. The error handling is now improved and myMPD throws the following error and aborts.
Not getting the realtime causes invalid arguments for Afterwards I changed the seccomp profil as described in the link above and myMPD works like a charm. |
Sounds promising! Is there something I could test? (preferably without building the docker image myself :D ) |
You must reconfigure your docker daemon to run images based on alpine linux 3.13.x |
But I guess this would have no effect on myMPD 6.11.+? |
All myMPD versions should run with the correct docker configuration. It is not a problem of myMPD. I implemented only correct failure handling. myMPD 6.12.0 does also not run without fixing the docker configuration as described in the link. The root cause is also described there.
|
Thanks a lot, finaly got it working. Took a while to figure out that i put "--seccomp-profile=default.json" at the wrong location, but now myMPD 6.11.3 is running at ~0,5% cpu :) |
myMPD version: 6.11.0+
Describe the bug
I'm using myMPD in Docker on a Raspi 4 4GB. Since version 6.11.0 the log is flooded with "webserver Error in pthread_cond_timedwait: 22"-messages and the CPU usage is up to 50% when the page is opened in a browser.
To Reproduce
Just start myMPD 6.11.0+ in Docker
Server plattform (please complete the following information):
OS Information: linux armv7l Raspbian GNU/Linux 10 (buster)
Kernel Version: 5.10.11-v7l+
Total CPU: 4
Total memory: 4 GB
Docker Version: 20.10.3 (API: 1.41)
Debug logs (please attach if it can be usefull)
Log without webpage opened:
Log with webpage open:
Configuration (please attach if it can be usefull)
Additional context
Aside the high CPU usage and log entries it still works fine, but with the last good version 6.10.0 the CPU usage hardly reaches 5% when in use.
The text was updated successfully, but these errors were encountered: