krateng / maloja

Self-hosted music scrobble database to create personal listening statistics and charts
https://maloja.krateng.ch
GNU General Public License v3.0
1.12k stars 63 forks source link

Maloja crashes when clicking on a few pages #159

Open Fratt opened 2 years ago

Fratt commented 2 years ago

Hello,

I'm running Maloja under Docker.

When I start browsing pages (let's say, 1 page per second for 6-7 seconds), the container completely crashes and needs to be restarted manually.

I see the following messages in the logs :

[server] Waitress: total open connections reached the connection limit, no longer accepting new connections

[server] Error. Is another Maloja process already running?

Traceback (most recent call last):

  File "/usr/bin/maloja", line 8, in <module>

    sys.exit(main())

  File "/usr/lib/python3.9/site-packages/doreah/control.py", line 51, in wrapper

    result = func(*args,**kwargs)

  File "/usr/lib/python3.9/site-packages/maloja/__main__.py", line 178, in main

    return action(*args,**kwargs)

  File "/usr/lib/python3.9/site-packages/maloja/__main__.py", line 110, in run_server

    server.run_server()

  File "/usr/lib/python3.9/site-packages/maloja/server.py", line 295, in run_server

    waitress.serve(webserver, listen=listen, threads=THREADS)

  File "/usr/lib/python3.9/site-packages/waitress/__init__.py", line 19, in serve

    server.run()

  File "/usr/lib/python3.9/site-packages/waitress/server.py", line 166, in run

    self.asyncore.loop(

  File "/usr/lib/python3.9/site-packages/waitress/wasyncore.py", line 245, in loop

    poll_fun(timeout, map)

  File "/usr/lib/python3.9/site-packages/waitress/wasyncore.py", line 172, in poll

    r, w, e = select.select(r, w, e, timeout)

OSError: [Errno 9] Bad file descriptor

How can I prevent this from happening ?

Thanks a lot!

Fratt commented 2 years ago

Probably one of those settings could help, but I have no idea how to tweak them :

cache_expire_positive = 60
cache_expire_negative = 5
db_max_memory = 50
use_request_cache = False
proxy_images = True
use_global_cache = True
discourage_cpu_heavy_stats = False
krateng commented 2 years ago

Do you have high CPU utilization during this process?