Adding to my recent post:
It seems that the `request-timeout=30` is effective, after all: The error
messages have changed, but there is no stack trace.
For completeness, here is the site config and error log excerpt:
Site config:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Siehe https://bz.apache.org/bugzilla/show_bug.cgi?id=45023
# Hierfür muss mod_headers aktiv sein: sudo a2enmod headers
RequestHeader edit "If-None-Match" '^"((.*)-gzip)"$' '"$1", "$2"'
Alias /static/ /var/www/HallCam-static/
<Directory /var/www/HallCam-static>
Require all granted
</Directory>
Alias /media/ /var/www/HallCam-media/
<Directory /var/www/HallCam-media>
Require all granted
</Directory>
WSGIDaemonProcess cf-hallcam-site request-timeout=30 user=carsten
group=carsten processes=2 display-name=%{GROUP}
python-home=/home/carsten/.virtualenvs/HallCam-web
python-path=/home/carsten/HallCam/web
WSGIProcessGroup cf-hallcam-site
# WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias / /home/carsten/HallCam/web/HallCam/wsgi.py
<Directory /home/carsten/HallCam/web/HallCam>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
>From `/var/log/apache2/error.log`:
[Sun Feb 05 17:18:55.470532 2023] [mpm_event:notice] [pid 635:tid
140277991982976] AH00489: Apache/2.4.52 (Ubuntu) mod_wsgi/4.9.0 Python/3.10
configured -- resuming normal operations
[Sun Feb 05 17:18:55.690430 2023] [core:notice] [pid 635:tid
140277991982976] AH00094: Command line: '/usr/sbin/apache2'
[Sun Feb 05 17:18:56.338443 2023] [wsgi:info] [pid 638:tid 140277991982976]
mod_wsgi (pid=638): Attach interpreter ''.
[Sun Feb 05 17:18:56.342866 2023] [wsgi:info] [pid 636:tid 140277991982976]
mod_wsgi (pid=636): Attach interpreter ''.
[Sun Feb 05 17:18:56.366079 2023] [wsgi:info] [pid 636:tid 140277991982976]
mod_wsgi (pid=636): Adding '/home/carsten/HallCam/web' to path.
[Sun Feb 05 17:18:56.371777 2023] [wsgi:info] [pid 638:tid 140277991982976]
mod_wsgi (pid=638): Adding '/home/carsten/HallCam/web' to path.
[Sun Feb 05 17:19:24.823860 2023] [wsgi:info] [pid 636:tid 140277959865920]
mod_wsgi (pid=636): Create interpreter '192.168.1.222:32228|'.
[Sun Feb 05 17:19:24.837012 2023] [wsgi:info] [pid 636:tid 140277959865920]
mod_wsgi (pid=636): Adding '/home/carsten/HallCam/web' to path.
[Sun Feb 05 17:19:24.837752 2023] [wsgi:info] [pid 636:tid 140277959865920]
[remote 88.75.25.178:50558] mod_wsgi (pid=636, process='cf-hallcam-site',
application='192.168.1.222:32228|'): Loading Python script file
'/home/carsten/HallCam/web/HallCam/wsgi.py'.
[Sun Feb 05 17:19:43.356895 2023] [wsgi:info] [pid 638:tid 140277867546176]
mod_wsgi (pid=638): Create interpreter '192.168.1.222:32228|'.
[Sun Feb 05 17:19:43.369787 2023] [wsgi:info] [pid 638:tid 140277867546176]
mod_wsgi (pid=638): Adding '/home/carsten/HallCam/web' to path.
[Sun Feb 05 17:19:43.370532 2023] [wsgi:info] [pid 638:tid 140277867546176]
[remote 88.75.25.178:48210] mod_wsgi (pid=638, process='cf-hallcam-site',
application='192.168.1.222:32228|'): Loading Python script file
'/home/carsten/HallCam/web/HallCam/wsgi.py'.
[Sun Feb 05 17:23:21.631286 2023] [wsgi:info] [pid 636:tid 140277976651328]
mod_wsgi (pid=636): Daemon process request time limit exceeded, stopping
process 'cf-hallcam-site'.
[Sun Feb 05 17:23:21.631405 2023] [wsgi:info] [pid 636:tid 140277991982976]
mod_wsgi (pid=636): Shutdown requested 'cf-hallcam-site'.
[Sun Feb 05 17:23:26.631650 2023] [wsgi:info] [pid 636:tid 140277591307840]
mod_wsgi (pid=636): Aborting process 'cf-hallcam-site'.
[Sun Feb 05 17:23:26.631699 2023] [wsgi:info] [pid 636:tid 140277591307840]
mod_wsgi (pid=636): Exiting process 'cf-hallcam-site'.
[Sun Feb 05 17:23:26.714616 2023] [wsgi:error] [pid 639:tid
140277725460032] [client 88.75.25.178:48224] Truncated or oversized
response headers received from daemon process 'cf-hallcam-site':
/home/carsten/HallCam/web/HallCam/wsgi.py, referer:
http://vdzuggmrroo5k7e9.myfritz.net:32228/upload/
[Sun Feb 05 17:23:26.714952 2023] [wsgi:error] [pid 639:tid
140277959865920] (104)Connection reset by peer: [client 88.75.25.178:50558]
mod_wsgi (pid=639): Failed to proxy response from daemon., referer:
http://vdzuggmrroo5k7e9.myfritz.net:32228/upload/
[Sun Feb 05 17:23:26.983714 2023] [wsgi:info] [pid 885:tid 140277991982976]
mod_wsgi (pid=885): Attach interpreter ''.
[Sun Feb 05 17:23:26.994980 2023] [wsgi:info] [pid 885:tid 140277991982976]
mod_wsgi (pid=885): Adding '/home/carsten/HallCam/web' to path.
[Sun Feb 05 17:23:37.641476 2023] [wsgi:info] [pid 638:tid 140277976651328]
mod_wsgi (pid=638): Daemon process request time limit exceeded, stopping
process 'cf-hallcam-site'.
[Sun Feb 05 17:23:37.641609 2023] [wsgi:info] [pid 638:tid 140277991982976]
mod_wsgi (pid=638): Shutdown requested 'cf-hallcam-site'.
[Sun Feb 05 17:23:42.641863 2023] [wsgi:info] [pid 638:tid 140277591307840]
mod_wsgi (pid=638): Aborting process 'cf-hallcam-site'.
[Sun Feb 05 17:23:42.641910 2023] [wsgi:info] [pid 638:tid 140277591307840]
mod_wsgi (pid=638): Exiting process 'cf-hallcam-site'.
[Sun Feb 05 17:23:42.648248 2023] [wsgi:error] [pid 639:tid
140277717067328] [client 37.81.109.237:49336] Truncated or oversized
response headers received from daemon process 'cf-hallcam-site':
/home/carsten/HallCam/web/HallCam/wsgi.py
[Sun Feb 05 17:23:42.648624 2023] [wsgi:error] [pid 639:tid
140277733852736] (104)Connection reset by peer: [client 88.75.25.178:48210]
mod_wsgi (pid=639): Failed to proxy response from daemon., referer:
http://vdzuggmrroo5k7e9.myfritz.net:32228/
[Sun Feb 05 17:23:42.997522 2023] [wsgi:info] [pid 906:tid 140277991982976]
mod_wsgi (pid=906): Attach interpreter ''.
[Sun Feb 05 17:23:43.039478 2023] [wsgi:info] [pid 906:tid 140277991982976]
mod_wsgi (pid=906): Adding '/home/carsten/HallCam/web' to path.
[Sun Feb 05 17:25:01.761551 2023] [wsgi:info] [pid 885:tid 140277959865920]
mod_wsgi (pid=885): Create interpreter '192.168.1.222:32228|'.
[Sun Feb 05 17:25:01.774488 2023] [wsgi:info] [pid 885:tid 140277959865920]
mod_wsgi (pid=885): Adding '/home/carsten/HallCam/web' to path.
[Sun Feb 05 17:25:01.775225 2023] [wsgi:info] [pid 885:tid 140277959865920]
[remote 37.81.109.237:49338] mod_wsgi (pid=885, process='cf-hallcam-site',
application='192.168.1.222:32228|'): Loading Python script file
'/home/carsten/HallCam/web/HallCam/wsgi.py'.
[Sun Feb 05 17:25:03.155261 2023] [wsgi:error] [pid 885:tid
140277959865920] [remote 37.81.109.237:49338] Picture saved to
/var/www/HallCam-media/pictures/camera-1/pic_20230205_172500_4.jpg
(image/jpeg, 896262 bytes, camera camera-1)
[Sun Feb 05 17:30:03.323110 2023] [wsgi:info] [pid 885:tid 140277976651328]
mod_wsgi (pid=885): Daemon process deadlock timer expired, stopping process
'cf-hallcam-site'.
[Sun Feb 05 17:30:03.323253 2023] [wsgi:info] [pid 885:tid 140277991982976]
mod_wsgi (pid=885): Shutdown requested 'cf-hallcam-site'.
Carsten Fuchs schrieb am Sonntag, 5. Februar 2023 um 17:23:29 UTC+1:
> Dear Graham,
>
> I experienced the same timeout errors after having upgraded a server from
> Ubuntu 20.04 LTS to Ubuntu 22.04 LTS, thereby also upgrading from Python
> 3.8 to Python 3.10. The application is a relatively simple Django project
> that used to work well until the upgrade. After the upgrade, I deleted the
> old virtualenv and built a new one, using `pip install --no-cache-dir -r
> requirements.txt` to install it. However, I experience the same problem.
>
> Adding `WSGIApplicationGroup %{GLOBAL}` solved the problem, but I am still
> concerned because the site worked well with the older Ubuntu 20.04 LTS and
> I would prefer to not mask a potential problem and rather find its root.
>
> Therefore, I added the `request-timeout=30` option to `WSGIDaemonProcess`
> (and temporarily commented `WSGIApplicationGroup` out again) in order to
> get a stack trace, however it doesn't seem to have any effect: Requests
> time out only much later than 30 seconds.
>
> Can you please advise what may have caused the problem when upgrading from
> Ubuntu 20.04 LTS to Ubuntu 22.04 LTS and why `request-timeout=30` may not
> have any effect?
>
> Best regards,
> Carsten
>
> A schrieb am Dienstag, 24. Januar 2023 um 10:39:40 UTC+1:
>
>> Dear Graham,
>>
>> It was a matter of adding that line and everything fell into place!
>>
>>
>> Thanks a lot,
>> A
>>
>> On Monday, January 23, 2023 at 8:21:44 PM UTC+1 Graham Dumpleton wrote:
>>
>>> Your configuration means only a single request can be handled at a time
>>> by the daemon process, so if you have a very long running request, any
>>> other requests would block waiting.
>>>
>>> Even if not a long running request, a problem may be that you are using
>>> a Python package that isn't designed to work in a Python sub interpreter.
>>> This could cause that package to hang and so everything blocks up (same as
>>> long running request at that point) for that request.
>>>
>>> Application Issues — mod_wsgi 4.9.4 documentation
>>> <https://modwsgi.readthedocs.io/en/master/user-guides/application-issues.html#python-simplified-gil-state-api>
>>> modwsgi.readthedocs.io
>>> <https://modwsgi.readthedocs.io/en/master/user-guides/application-issues.html#python-simplified-gil-state-api>
>>> [image: favicon.ico]
>>> <https://modwsgi.readthedocs.io/en/master/user-guides/application-issues.html#python-simplified-gil-state-api>
>>>
>>> <https://modwsgi.readthedocs.io/en/master/user-guides/application-issues.html#python-simplified-gil-state-api>
>>>
>>> Try the solution described in the docs of forcing the use of the main
>>> Python interpreter by adding:
>>>
>>> WSGIApplicationGroup %{GLOBAL}
>>>
>>> If that doesn't help you will need to work out where your code is
>>> blocking. For that try adding:
>>>
>>> request-timeout=30
>>>
>>> option to WSGIDaemonProcess directive.
>>>
>>> This will cause daemon process in your case to restart after 30 seconds
>>> when it blocks and in doing that will attempt to log to error log file the
>>> stack traces of where your code was blocked.
>>>
>>> Graham
>>>
>>> On 24 Jan 2023, at 3:27 am, A <[email protected]> wrote:
>>>
>>> It keeps timing out and I've been trying to solve it to no avail.
>>> Here my modwsgi.conf
>>>
>>> <VirtualHost *:80>
>>> ServerName localhost
>>> ServerAlias ----------.com *.----------.com
>>>
>>> Define project_name ----------
>>> Define user -------------
>>>
>>> Define project_path /srv/http/fosware
>>> Define wsgi_path /srv/http/fosware/fosware
>>> Define environment_path /srv/http/fosware/venv
>>>
>>> WSGIDaemonProcess ${user}-${project_name} user=${user}
>>> group=${user} processes=1 threads=1 python-eggs=/tmp/python-eggs/
>>> python-path=${project_path}:${environment_path}/lib/python2.7/site-packages
>>> WSGIProcessGroup ${user}-${project_name}
>>>
>>> WSGIScriptAlias / ${wsgi_path}/wsgi.py
>>>
>>> <Directory ${project_path}>
>>> <IfVersion < 2.3 >
>>> Order allow,deny
>>> Allow from all
>>> </IfVersion>
>>> <IfVersion >= 2.3>
>>> Require all granted
>>> </IfVersion>
>>> </Directory>
>>>
>>>
>>> Alias /static ${project_path}/static
>>> <Directory ${project_path}/static>
>>> Require all granted
>>> SetHandler None
>>> FileETag none
>>> Options FollowSymLinks
>>> </Directory>
>>>
>>> Alias /media ${project_path}/media
>>> <Directory ${project_path}/media>
>>> Require all granted
>>> SetHandler None
>>> FileETag none
>>> Options FollowSymLinks
>>> ErrorDocument 404 /error404
>>> </Directory>
>>>
>>> ErrorLog /var/log/httpd/${user}-${project_name}-error.log
>>> LogLevel info
>>> CustomLog /var/log/httpd/${user}-${project_name}-access.log
>>> combined
>>> </VirtualHost>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "modwsgi" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/modwsgi/02fb2171-ca59-4053-9be3-8ff75e9cf9edn%40googlegroups.com
>>>
>>> <https://groups.google.com/d/msgid/modwsgi/02fb2171-ca59-4053-9be3-8ff75e9cf9edn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>>
>>>
--
You received this message because you are subscribed to the Google Groups
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/modwsgi/a3ede6cc-dfd2-423a-a8e0-55068433afcen%40googlegroups.com.