Where are my 500s coming from in my DJango app? - django

I've got Apache setup on windows, (yes, not a very good idea, but not my fault). I open a popup window with about 32 images in it and all but 3 of those image links work. The images are coming from a TIF file and therefore have to be converted, so it is running thru my Django app to do all this and that part is working. The 3 urls that fail, when retried work.
In the apache log, I get 29 200s followed by 3 500s, but the actual images that failed to load are scattered randomly among the 29 good images. When I watch the log with tail -f, the 500s come along many seconds after the 200s but timestamped BEFORE them, like so:
192.168.20.45 - - [08/Mar/2012:01:24:28 -0600] "GET /viewer/... 200 44277
192.168.20.45 - - [08/Mar/2012:01:24:28 -0600] "GET /viewer/... 200 52283
192.168.20.45 - - [08/Mar/2012:01:24:28 -0600] "GET /viewer/... 200 44991
192.168.20.45 - - [08/Mar/2012:01:24:29 -0600] "GET /viewer/... 200 33077
192.168.20.45 - - [08/Mar/2012:01:24:22 -0600] "GET /viewer/... 500 16
192.168.20.45 - - [08/Mar/2012:01:24:22 -0600] "GET /viewer/... 500 16
192.168.20.45 - - [08/Mar/2012:01:24:22 -0600] "GET /viewer/... 500 16
DEBUG=False, and admins are setup, so I should get an email for every 500 that happens in Django, I've tested the email and it works as expected. The code I'm going thru has logging statements for error conditions and none of those are triggering.
It's almost like Apache or Mod_wsgi knows these connections come in, but never passes them to the Django code and they just end up dying from what seems to be a timeout. Chrome DevTools ends up showing me:
**Response Headers**
Connection:close
Content-Type:text/html; charset=utf-8
Date:Thu, 08 Mar 2012 07:24:22 GMT
Server:Apache/2.2.21 (Win32) mod_wsgi/3.3 Python/2.7.2
Set-Cookie:sessionid=d4616w0f850u1eb33q7a6fzf37f840b5; Path=/
Transfer-Encoding:chunked
Vary:Cookie
I'm on windows, and Apache says this on startup:
[Thu Mar 08 01:38:09 2012] [warn] mod_wsgi: Compiled for Python/2.7.
[Thu Mar 08 01:38:09 2012] [warn] mod_wsgi: Runtime using Python/2.7.2.
[Thu Mar 08 01:38:09 2012] [notice] Apache/2.2.21 (Win32) mod_wsgi/3.3 Python/2.7.2 configured -- resuming normal operations
[Thu Mar 08 01:38:09 2012] [notice] Server built: Sep 9 2011 10:26:10
[Thu Mar 08 01:38:09 2012] [notice] Parent: Created child process 3260
[Thu Mar 08 01:38:09 2012] [warn] mod_wsgi: Compiled for Python/2.7.
[Thu Mar 08 01:38:09 2012] [warn] mod_wsgi: Runtime using Python/2.7.2.
[Thu Mar 08 01:38:09 2012] [notice] Child 3260: Child process is running
[Thu Mar 08 01:38:09 2012] [notice] Child 3260: Acquired the start mutex.
[Thu Mar 08 01:38:09 2012] [notice] Child 3260: Starting 64 worker threads.
[Thu Mar 08 01:38:09 2012] [notice] Child 3260: Starting thread to listen on port 80.
There are less than 64 requests so there should be threads left over to handle them.
Any ideas on WHAT is happening? or HOW to figure it out?
EDIT----
There is no traceback, that is the problem. There is no indication at all that Python ever saw this request.
Yes, you shouldn't use python to serve static files, but you can't put a single image TIFF from a multi image TIFF into an you have to pull it from the multi-image file, put it in a format the browser can display, and no you don't want to convert the 100+ million TIFF images into single image PNGs or JPEG. AND these are not images that can be viewed by the general public, but are restricted to their "owners"
Loaded this on a second machine and the problem does not happen.....

You can write a small middleware to handle the exception. You can do some logging in the process_exception method, to find the root of the problem:
https://docs.djangoproject.com/en/dev/topics/http/middleware/#process-exception

Related

Apache 2 process stopped

Today I made some changes, but only on fron-end side of my page and pushes those changes on the server. I checked if everything works under my domain and it was fine. But after about two hours I am getting only 500 Internal Server Error. I have such logs:
[Sun Jul 10 00:19:12 2016] [notice] Digest: generating secret for digest authentication ...
[Sun Jul 10 00:19:12 2016] [notice] Digest: done
[Sun Jul 10 00:19:12 2016] [info] mod_fcgid: Process manager 3584465 started
[Sun Jul 10 00:19:12 2016] [notice] Apache/2.2.22 (Debian) mod_fcgid/2.3.6 configured -- resuming normal operations
[Sun Jul 10 00:19:12 2016] [info] Server built: Mar 31 2015 17:28:57
[Sun Jul 10 00:19:12 2016] [info] mod_fcgid: server myuser:/home/.../django.fcgi(3584772) started
[Sun Jul 10 00:24:20 2016] [info] removed PID file /home/xxx/admin/apache/run/apache.pid (pid=3584452)
[Sun Jul 10 00:24:20 2016] [notice] caught SIGWINCH, shutting down gracefully
[Sun Jul 10 00:24:21 2016] [info] mod_fcgid: process /home/.../django.fcgi(3584772) exit(shutting down), terminated by calling exit(), return code: 0
[Sun Jul 10 00:24:21 2016] [info] mod_fcgid: Process manager 3584465 stopped
Can anyone provide a solution or some suggestions of how to overcome this problem?
The problem is you're getting SIGWINCH which means window size has changed. Doesn't make much sense for a server though.
Okay, just found out SIGWINCH is misused by Apache to perform a graceful shutdown. Your question is a dup of this one

OpenShift Error The requested URL / was not found on this server

I've been trying to deploy a flask app on openshift. I tested the website and it runs just fine on the development server (both by typing python app.py and manage.py runserver), I uploaded the project to github and created the app using this command from terminal:
rhc create-app marcsantiago python-2.7 --from-code=https://github.com/marcsantiago/personalwebsite.git
The app seems to be created without a problem. The issue occurs when I try and visit the created url:
http://marcsantiago-mywebappsflask.rhcloud.com
I receive a not found error The requested URL / was not found on this server.
I don't understand what i did wrong or how to fix it so that the website it live. It is a simple website, which uses no databases.
Could someone please help me resolve this issue?
this the postgresql.log information, though i'm not sure how relevant it is since i don't use a database, python.log is below
2015-07-22 02:05:44 GMT LOG: could not bind socket for statistics collector: Permission denied
2015-07-22 02:05:44 GMT LOG: trying another address for the statistics collector
2015-07-22 02:05:44 GMT LOG: could not bind socket for statistics collector: Cannot assign requested address
2015-07-22 02:05:44 GMT LOG: disabling statistics collector for lack of working socket
2015-07-22 02:05:44 GMT WARNING: autovacuum not started because of misconfiguration
2015-07-22 02:05:44 GMT HINT: Enable the "track_counts" option.
2015-07-22 02:05:44 GMT LOG: database system was shut down at 2013-05-21 05:07:11 GMT
2015-07-22 02:05:44 GMT LOG: database system is ready to accept connections
2015-07-22 02:05:48 GMT LOG: received smart shutdown request
2015-07-22 02:05:48 GMT LOG: shutting down
2015-07-22 02:05:48 GMT LOG: database system is shut down
2015-07-22 02:06:04 GMT LOG: could not bind socket for statistics collector: Permission denied
2015-07-22 02:06:04 GMT LOG: trying another address for the statistics collector
2015-07-22 02:06:04 GMT LOG: could not bind socket for statistics collector: Cannot assign requested address
2015-07-22 02:06:04 GMT LOG: disabling statistics collector for lack of working socket
2015-07-22 02:06:04 GMT WARNING: autovacuum not started because of misconfiguration
2015-07-22 02:06:04 GMT HINT: Enable the "track_counts" option.
2015-07-22 02:06:04 GMT LOG: database system was shut down at 2015-07-22 02:05:48 GMT
2015-07-22 02:06:04 GMT LOG: database system is ready to accept connections
python.log
[Tue Jul 21 22:06:07 2015] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:openshift_t:s0:c6,c294
[Tue Jul 21 22:06:07 2015] [notice] Digest: generating secret for digest authentication ...
[Tue Jul 21 22:06:07 2015] [notice] Digest: done
[Tue Jul 21 22:06:07 2015] [notice] Apache/2.2.15 (Unix) mod_wsgi/3.4 Python/2.7.8 configured -- resuming normal operations
(98)Address already in use: make_sock: could not bind to address 127.12.133.129:8080
no listening sockets available, shutting down
Unable to open logs
[Tue Jul 21 22:07:01 2015] [error] [client 127.12.133.129] Target WSGI script not found or unable to stat: /var/lib/openshift/55aefa434382ecece2000001/app-root/runtime/repo/wsgi, referer: http://stackoverflow.com/questions/31551797/openshift-error-the-requested-url-was-not-found-on-this-server/31552667
67.84.182.205 - - [21/Jul/2015:22:07:01 -0400] "GET / HTTP/1.1" 404 304 "http://stackoverflow.com/questions/31551797/openshift-error-the-requested-url-was-not-found-on-this-server/31552667" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.6.3 (KHTML, like Gecko) Version/8.0.6 Safari/600.6.3"
[Tue Jul 21 22:08:49 2015] [error] [client 127.12.133.129] Target WSGI script not found or unable to stat: /var/lib/openshift/55aefa434382ecece2000001/app-root/runtime/repo/wsgi, referer: http://stackoverflow.com/questions/31551797/openshift-error-the-requested-url-was-not-found-on-this-server/31552667?noredirect=1
124.32.215.10 - - [21/Jul/2015:22:08:49 -0400] "GET / HTTP/1.1" 404 304 "http://stackoverflow.com/questions/31551797/openshift-error-the-requested-url-was-not-found-on-this-server/31552667?noredirect=1" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12"
[Tue Jul 21 22:08:50 2015] [error] [client 127.12.133.129] Target WSGI script not found or unable to stat: /var/lib/openshift/55aefa434382ecece2000001/app-root/runtime/repo/wsgi, referer: http://marcsantiago-mywebappsflask.rhcloud.com/
124.32.215.10 - - [21/Jul/2015:22:08:50 -0400] "GET /favicon.ico HTTP/1.1" 404 315 "http://marcsantiago-mywebappsflask.rhcloud.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12"
[Tue Jul 21 22:10:25 2015] [error] [client 127.12.133.129] Target WSGI script not found or unable to stat: /var/lib/openshift/55aefa434382ecece2000001/app-root/runtime/repo/wsgi
10.99.163.186 - - [21/Jul/2015:22:10:25 -0400] "HEAD / HTTP/1.1" 404 - "-" "Ruby"
10.99.163.186 - - [21/Jul/2015:22:10:25 -0400] "HEAD / HTTP/1.1" 404 - "-" "Ruby"
[Tue Jul 21 22:10:25 2015] [error] [client 127.12.133.129] Target WSGI script not found or unable to stat: /var/lib/openshift/55aefa434382ecece2000001/app-root/runtime/repo/wsgi
sorry for how messy it looks, couldn't think of a better way to share the logs other than pasting them in.
Have you tried reading through the section of the Developer Portal that is about using Flask on OpenShift Online?
https://developers.openshift.com/en/python-flask.html
The domain is not pointing to any server.
This is most likely an issue in your configuration on Openshift, an error in their server configuration or a mistyping of the URL on your side.
Contact Openshift or check their logs.
Edit:
Looking at the new logs, it becomes clear that the server can't find your WSGI app. You mention that it is called app.py, but the server may be looking for something else. The more common file name would be application.py. Check your configuration at OpenShift and adjust the WSGI application file name accordingly.

avahi_entry_group_new() failed: Too many objects

I'm working on making a REST API for my research lab's database. I'm using the Django REST framework and I've gotten everything running smoothly on my local machine. All my code is in its own branch in our Mercurial repo. When I switch branches on our server, the website crashes with:
Internal Server Error
The server encountered an internal error or misconfiguration and was
unable to complete your request.
Please contact the server administrator, root#localhost and inform
them of the time the error occurred, and anything you might have done
that may have caused the error.
More information about this error may be available in the server error
log.
The error logs on our server look like this:
[Tue Feb 03 12:55:56 2015] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Feb 03 12:55:56 2015] [notice] Digest: generating secret for digest authentication ...
[Tue Feb 03 12:55:56 2015] [notice] Digest: done
[Tue Feb 03 12:55:56 2015] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/1.0.1e-fips mod_wsgi/3.2 Python/2.6.6 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Tue Feb 03 12:56:11 2015] [error] avahi_entry_group_add_service_strlst("Lee on [server name]") failed: Local name collision
(this sort of error repeats many times)
[Tue Feb 03 12:56:13 2015] [error] avahi_entry_group_new() failed: Too many objects
(this error repeats many times.)
I've tried Googling the avahi errors to no avail. Anyone have any insight?
Because of the "too many objects" part of the error, I thought that it might somehow be related to not setting the pagination settings for the API. I only have a couple test objects on my local dev version of the database, but the actual database has tens of thousands. I set up pagination and tried again but it didn't change anything.
Turns out the culprit was not having the djangorestframework package installed for the correct version of Python on the server!? Hopefully this helps someone later down the line.

Django / Apache / mod_wsgi - WEB Application Hangs - Fails to Launch

My Django WEB Application fails to launch all of a sudden and out of the blues.
It was working fine until yesterday in production.
I am not able to figure out where the problem is. It could apache or mod_wsgi or windows but at the moment I have no clue.
I have tried to reinstall all the python libraries/prerequisites etc. but the problem persists nevertheless.
I am serving the WEBApp at Apache Port 8999 and When I access the WEB App, the browser fails to show any error. It just keeps trying to open the page and in the status bar I just see the Waiting for message.
If I see the netstat results then I see the following
C:\Documents and Settings\admintemp>netstat -an | find "8999" TCP
0.0.0.0:8999 0.0.0.0:0 LISTENING TCP 172.18.148.156:8999 10.107.226.88:1826 ESTABLISHED
This connection remains established forever and nothing happens. Internet Browser just seems to try to keep opening the Web App and it appears as if it is waiting forever.
The only thing i see in Apache logs is this
[Fri Jun 21 18:34:32 2013] [warn] mod_wsgi: Compiled for Python/2.7.
[Fri Jun 21 18:34:32 2013] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Fri Jun 21 18:34:32 2013] [notice] Apache/2.2.22 (Win32) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
[Fri Jun 21 18:34:32 2013] [notice] Server built: Jan 28 2012 11:16:39
[Fri Jun 21 18:34:32 2013] [notice] Parent: Created child process 3876
[Fri Jun 21 18:34:32 2013] [warn] mod_wsgi: Compiled for Python/2.7.
[Fri Jun 21 18:34:32 2013] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Fri Jun 21 18:34:32 2013] [notice] Child 3876: Child process is running
[Fri Jun 21 18:34:32 2013] [notice] Child 3876: Acquired the start mutex.
[Fri Jun 21 18:34:32 2013] [notice] Child 3876: Starting 64 worker threads.
[Fri Jun 21 18:34:32 2013] [notice] Child 3876: Starting thread to listen on port 8999.
[Fri Jun 21 18:34:43 2013] [error] C:/Program Files/App_Logic/logic_apps/logic_apps\\..\\logic_apps
I also noticed in the Windows Event Viewer logs (Application Logs) the following message but I am not sure how (and if) this could be related to my problem at hand. This message seems to shows up once for everytime i access the Web App.
Application popup: Microsoft Visual C++ Runtime Library : Runtime
Error!
Program: C:\Progr...
R6034 An application has made an attempt to load the C runtime library
incorrectly. Please contact the application's support team for more
information.
Exact screenshot of above error message is at http://imgur.com/hijiKv8
Please note that as part of my analysis I have tried
Accesing the apache page at http://127.0.0.1:8999 does show me the It Works ! message
Running the WEB App using the Django Development server and it launches fine.
Changing the wsgi.py file and when I introduce errors in the file deliberately, accessing the web app does complain with the relevant.
The application is installed on Windows Server 2003 SP1 and there are no automatic updates schedules on this machine so I am not suspecting that a update would have caused this problem. I also saw the Windows Update log and there was nothing installed recently.
The application is based on following Python Libraries as prerequisites
httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
python-2.7.3
Django-1.4.3
psycopg2-2.4.6.win32-py2.7-pg9.2.2-release
cx_Oracle-5.1.2-10g.win32-py2.7
PIL-1.1.7.win32-py2.7
python-ldap-2.4.10.win32-py2.7
south-0.7.6
xlrd-0.9.0
xlwt-0.7.5
mod_wsgi.so
I have tried with the WSGIApplicationGroup %{GLOBAL} directive and setting the log level to debug and info but the resulting logs don't give any additional information.
I have posted apache debug level log at http://dpaste.com/1268653/
I have posted apache info level log at http://dpaste.com/1268660/
Both these logs were taken after a fresh restart of apache and then the application hanging and until I stopped apache and copied the logs.
I also tried running the Hello World Application as documented at https://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines and it worked fine.
I still remain clueless. Appreciate if you could guide me what else I could do to get more details of the issue.
Appreciate if someone could guide me with respect to what more I can do to solve this problem or get more information to get to the root of this.
I was able to solve this issue in the end.
The post at Runtime error R6034 in embedded Python application led me to a solution.
Thanks to Graham Dumpleton and others who were helping me offline to get this issue solved.
It was rather cheeky in the end, a conflicting version of msvcr90.dll
I removed the IBM Bit from the path and it works fine now.

Apache installation for django project

Iam trying to install and configure apache for python 2.7 to develop a django application.
wsgi module is configured.
and I had did the following settings
edit httpd config file
Alias /media/ 'D:/myProjects/mysite/site_media/'
Order deny,allow
Allow from all
WSGIScriptAlias / 'D:\myProjects\mysite\apache\django.wsgi'
Order deny,allow
Allow from all
Create a folder apache in my site,say D:\myProjects\mysite\apache
Create wsgi script named 'django.wsgi'
import os
import sys
sys.path.append('D:\myProjects')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Create a new folder in my site folder named 'site_media'
Copy all images,css,javascript here
Edit template with path to css & images like this
href="/media/style.css"
But when Enter 'http://127.0.0.1' in browser the browser is loading.....but not connecting to my site
when checked in error log
the error is
[Tue May 08 16:59:41 2012] [notice] Parent: child process exited with status 1 -- Restarting.
[Tue May 08 16:59:41 2012] [warn] mod_wsgi: Compiled for Python/2.7.
[Tue May 08 16:59:41 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Tue May 08 16:59:41 2012] [notice] Apache/2.2.21 (Win32) mod_wsgi/3.3 Python/2.7.3
configured -- resuming normal operations
[Tue May 08 16:59:41 2012] [notice] Server built: Sep 9 2011 10:26:10
[Tue May 08 16:59:41 2012] [notice] Parent: Created child process 2408
[Tue May 08 16:59:41 2012] [warn] mod_wsgi: Compiled for Python/2.7.
[Tue May 08 16:59:41 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Tue May 08 16:59:41 2012] [notice] Child 2408: Child process is running
ImportError: No module named site
Please help me ..
if you are using apache2, you have to configure /etc/apache2/sites-enabled/000-default because it doesnt use httpd.config you have mentioned...