Debugging Funkwhale
In order to track down errors its useful to provide as many information as possible. Usually pasting the logs should be sufficient, but there are some tools for some deeper debugging.
Frontend Logs
Logs and errors written by the Frontend can be accessed with Firefox. When opening the website of
your Funkwhale instance, simply hit Ctlr + Shift + J
. Alternatively open the Firefox Menu and open
the Browser Console in the developers menu.
In the opening window you can see all the output. You can copy what you want to share or repeat the failing operation to see what error occurs.
Backend Logs
Depending on your setup you can see the logs from our API server in different ways.
Docker
Simply run docker-compose logs --tail=100 api
If you want continuous logs, add the f
flag.
Quick install
To get the logs, run journalctl -xn -u funkwhale-server
Profiling
In order to find performance issues, its possible to run API requests with activated profiling. In
order to do this, add funkwhale_api.common.middleware.ProfilerMiddleware
to the environment
variable ADDITIONAL_MIDDLEWARES_BEFORE
If enabled, simply add ?prof
to the request URL you want to profile. You should get an HTML-Report
of the running request.
Memory Tracing
Its possible to print memory traces for each API request to the API logs. In order to do this, add
funkwhale_api.common.middleware.PymallocMiddleware
to the environment variable
ADDITIONAL_MODDLEWARES_BEFORE
This adds a middleware which should not do anything by default.
Tracing can be activated by setting PYTHONTRACEMALLOC=1
This might has some inpact on the
performance, please report how it goes. The Middleware now prints the top 25 memory allocations to
the API logs.