PythonAnywhere Forums

Show a custom message instead of "[Errno 11] Resource temporarily unavailable"

Dear PythonAnywhere Team,

I experience this error from time to time: "[Errno 11] Resource temporarily unavailable ... Exception Location: /usr/lib/python2.7/pprint.py in _format, line 169 Python Executable: /usr/local/bin/uwsgi"

and I was wondering if I can hide the django error message and put a default page, with a message e.g. "Server busy.. Please refresh the webpage in few seconds."

Could you please tell me if this is feasible? Thanks for your consideration.

Best, PythonAnywhere user

Just to clarify- this is for your website, and this is the error that you see displayed on the browser?

Yes, it's my website, and the error shows up from time to time on Chrome and Firefox.

Do you think you could take a screenshot/show the full stacktrace if it happens again?

Sure. I attached the full stacktrace below. The problem is, if I set DEBUG = False as suggested at the end of the stacktrace, the website returns "Bad Request (400)" always.

Thanks for your time helping me on this :)

IOError at /
[Errno 11] Resource temporarily unavailable
Request Method: GET
Request URL:    http://www.kolbeb.com/
Django Version: 1.10
Exception Type: IOError
Exception Value:    
[Errno 11] Resource temporarily unavailable
Exception Location: /usr/lib/python2.7/pprint.py in _format, line 169
Python Executable:  /usr/local/bin/uwsgi
Python Version: 2.7.6
Python Path:    
[u'/home/HoussemChatbri/kolbeb',
 '/var/www',
 '.',
 '',
 '/home/HoussemChatbri/.local/lib/python2.7/site-packages',
 '/var/www',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/local/lib/python2.7/dist-packages/Orange/orng',
 '/usr/local/lib/python2.7/dist-packages/pypng-0.0.18-py2.7.egg',
 '/usr/local/lib/python2.7/dist-packages/networkx-1.11-py2.7.egg',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/pymodules/python2.7',
 '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']
Server time:    Fri, 11 Aug 2017 15:55:01 +0000
Traceback Switch to copy-and-paste view

/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py in inner
            response = get_response(request) ...
 Local vars
/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in _get_response
                response = self.process_exception_by_middleware(e, request) ...
 Local vars
/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in _get_response
                response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
 Local vars
/home/HoussemChatbri/kolbeb/kolbeb/views.py in people
    pp.pprint(dictionaries) ...
 Local vars
/usr/lib/python2.7/pprint.py in pprint
        self._format(object, self._stream, 0, 0, {}, 0) ...
 Local vars
/usr/lib/python2.7/pprint.py in _format
                                      allowance + 1, context, level) ...
 Local vars
/usr/lib/python2.7/pprint.py in _format
                            write(',\n%s%s: ' % (' '*indent, rep)) ...
 Local vars
Request information

USER
AnonymousUser
GET
No GET data
POST
No POST data
FILES
No FILES data
COOKIES
Variable    Value
_ga 
'GA1.2.922335852.1502466826'
_gat    
'1'
_gid    
'GA1.2.347419432.1502466826'
META
Variable    Value
CONTENT_LENGTH  
''
CONTENT_TYPE    
''
DOCUMENT_ROOT   
'/usr/local/openresty/nginx/html'
HTTP_ACCEPT 
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'
HTTP_ACCEPT_ENCODING    
'gzip, deflate'
HTTP_ACCEPT_LANGUAGE    
'en-US,en;q=0.8,ar;q=0.6,fr;q=0.4,en-GB;q=0.2'
HTTP_CONNECTION 
'close'
HTTP_COOKIE 
'_gat=1; _ga=GA1.2.922335852.1502466826; _gid=GA1.2.347419432.1502466826'
HTTP_HOST   
'www.kolbeb.com'
HTTP_UPGRADE_INSECURE_REQUESTS  
'1'
HTTP_USER_AGENT 
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36'
HTTP_X_FORWARDED_FOR    
'136.206.218.155'
HTTP_X_REAL_IP  
'136.206.218.155'
PATH_INFO   
u'/'
QUERY_STRING    
''
REMOTE_ADDR 
'10.0.0.209'
REMOTE_PORT 
'35294'
REQUEST_METHOD  
'GET'
REQUEST_URI 
'/'
SCRIPT_NAME 
u''
SERVER_NAME 
'www.kolbeb.com'
SERVER_PORT 
'80'
SERVER_PROTOCOL 
'HTTP/1.1'
uwsgi.node  
'harry-liveweb5'
uwsgi.version   
'2.0.14'
wsgi.errors 
<uwsgi_file__bin_user_wsgi_wrapper.ErrorLogFile object at 0x7f79ee77f0d0>
wsgi.file_wrapper   
''
wsgi.input  
<uwsgi._Input object at 0x7f79ed14fb28>
wsgi.multiprocess   
True
wsgi.multithread    
False
wsgi.run_once   
False
wsgi.url_scheme 
'http'
wsgi.version    
(1, 0)
Settings
Using settings module kolbeb.settings
Setting Value
ABSOLUTE_URL_OVERRIDES  
{}
ADMINS  
[]
ALLOWED_HOSTS   
[]
APPEND_SLASH    
True
AUTHENTICATION_BACKENDS 
[u'django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS    
u'********************'
AUTH_USER_MODEL 
u'auth.User'
BASE_DIR    
'/home/HoussemChatbri/kolbeb'
CACHES  
{u'default': {u'BACKEND': u'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS  
u'default'
CACHE_MIDDLEWARE_KEY_PREFIX 
u'********************'
CACHE_MIDDLEWARE_SECONDS    
600
CSRF_COOKIE_AGE 
31449600
CSRF_COOKIE_DOMAIN  
None
CSRF_COOKIE_HTTPONLY    
False
CSRF_COOKIE_NAME    
u'csrftoken'
CSRF_COOKIE_PATH    
u'/'
CSRF_COOKIE_SECURE  
False
CSRF_FAILURE_VIEW   
u'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME    
u'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS    
[]
DATABASES   
{}
DATABASE_ROUTERS    
[]
DATA_UPLOAD_MAX_MEMORY_SIZE 
2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS   
1000
DATETIME_FORMAT 
u'N j, Y, P'
DATETIME_INPUT_FORMATS  
[u'%Y-%m-%d %H:%M:%S',
 u'%Y-%m-%d %H:%M:%S.%f',
 u'%Y-%m-%d %H:%M',
 u'%Y-%m-%d',
 u'%m/%d/%Y %H:%M:%S',
 u'%m/%d/%Y %H:%M:%S.%f',
 u'%m/%d/%Y %H:%M',
 u'%m/%d/%Y',
 u'%m/%d/%y %H:%M:%S',
 u'%m/%d/%y %H:%M:%S.%f',
 u'%m/%d/%y %H:%M',
 u'%m/%d/%y']
DATE_FORMAT 
u'N j, Y'
DATE_INPUT_FORMATS  
[u'%Y-%m-%d',
 u'%m/%d/%Y',
 u'%m/%d/%y',
 u'%b %d %Y',
 u'%b %d, %Y',
 u'%d %b %Y',
 u'%d %b, %Y',
 u'%B %d %Y',
 u'%B %d, %Y',
 u'%d %B %Y',
 u'%d %B, %Y']
DEBUG   
True
DEBUG_PROPAGATE_EXCEPTIONS  
False
DECIMAL_SEPARATOR   
u'.'
DEFAULT_CHARSET 
u'utf-8'
DEFAULT_CONTENT_TYPE    
u'text/html'
DEFAULT_EXCEPTION_REPORTER_FILTER   
u'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE    
u'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL  
u'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE    
u''
DEFAULT_TABLESPACE  
u''
DISALLOWED_USER_AGENTS  
[]
EMAIL_BACKEND   
u'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST  
u'localhost'
EMAIL_HOST_PASSWORD 
u'********************'
EMAIL_HOST_USER 
u''
EMAIL_PORT  
25
EMAIL_SSL_CERTFILE  
None
EMAIL_SSL_KEYFILE   
u'********************'
EMAIL_SUBJECT_PREFIX    
u'[Django] '
EMAIL_TIMEOUT   
None
EMAIL_USE_SSL   
False
EMAIL_USE_TLS   
False
FILE_CHARSET    
u'utf-8'
FILE_UPLOAD_DIRECTORY_PERMISSIONS   
None
FILE_UPLOAD_HANDLERS    
[u'django.core.files.uploadhandler.MemoryFileUploadHandler',
 u'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE 
2621440
FILE_UPLOAD_PERMISSIONS 
None
FILE_UPLOAD_TEMP_DIR    
None
FIRST_DAY_OF_WEEK   
0
FIXTURE_DIRS    
[]
FORCE_SCRIPT_NAME   
None
FORMAT_MODULE_PATH  
None
IGNORABLE_404_URLS  
[]
INSTALLED_APPS  
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'webpack_loader',
 'kolbeb',
 'mongoengine']
INTERNAL_IPS    
[]
LANGUAGES   
[(u'af', u'Afrikaans'),
 (u'ar', u'Arabic'),
 (u'ast', u'Asturian'),
 (u'az', u'Azerbaijani'),
 (u'bg', u'Bulgarian'),
 (u'be', u'Belarusian'),
 (u'bn', u'Bengali'),
 (u'br', u'Breton'),
 (u'bs', u'Bosnian'),
 (u'ca', u'Catalan'),
 (u'cs', u'Czech'),
 (u'cy', u'Welsh'),
 (u'da', u'Danish'),
 (u'de', u'German'),
 (u'dsb', u'Lower Sorbian'),
 (u'el', u'Greek'),
 (u'en', u'English'),
 (u'en-au', u'Australian English'),
 (u'en-gb', u'British English'),
 (u'eo', u'Esperanto'),
 (u'es', u'Spanish'),
 (u'es-ar', u'Argentinian Spanish'),
 (u'es-co', u'Colombian Spanish'),
 (u'es-mx', u'Mexican Spanish'),
 (u'es-ni', u'Nicaraguan Spanish'),
 (u'es-ve', u'Venezuelan Spanish'),
 (u'et', u'Estonian'),
 (u'eu', u'Basque'),
 (u'fa', u'Persian'),
 (u'fi', u'Finnish'),
 (u'fr', u'French'),
 (u'fy', u'Frisian'),
 (u'ga', u'Irish'),
 (u'gd', u'Scottish Gaelic'),
 (u'gl', u'Galician'),
 (u'he', u'Hebrew'),
 (u'hi', u'Hindi'),
 (u'hr', u'Croatian'),
 (u'hsb', u'Upper Sorbian'),
 (u'hu', u'Hungarian'),
 (u'ia', u'Interlingua'),
 (u'id', u'Indonesian'),
 (u'io', u'Ido'),
 (u'is', u'Icelandic'),
 (u'it', u'Italian'),
 (u'ja', u'Japanese'),
 (u'ka', u'Georgian'),
 (u'kk', u'Kazakh'),
 (u'km', u'Khmer'),
 (u'kn', u'Kannada'),
 (u'ko', u'Korean'),
 (u'lb', u'Luxembourgish'),
 (u'lt', u'Lithuanian'),
 (u'lv', u'Latvian'),
 (u'mk', u'Macedonian'),
 (u'ml', u'Malayalam'),
 (u'mn', u'Mongolian'),
 (u'mr', u'Marathi'),
 (u'my', u'Burmese'),
 (u'nb', u'Norwegian Bokm\xe5l'),
 (u'ne', u'Nepali'),
 (u'nl', u'Dutch'),
 (u'nn', u'Norwegian Nynorsk'),
 (u'os', u'Ossetic'),
 (u'pa', u'Punjabi'),
 (u'pl', u'Polish'),
 (u'pt', u'Portuguese'),
 (u'pt-br', u'Brazilian Portuguese'),
 (u'ro', u'Romanian'),
 (u'ru', u'Russian'),
 (u'sk', u'Slovak'),
 (u'sl', u'Slovenian'),
 (u'sq', u'Albanian'),
 (u'sr', u'Serbian'),
 (u'sr-latn', u'Serbian Latin'),
 (u'sv', u'Swedish'),
 (u'sw', u'Swahili'),
 (u'ta', u'Tamil'),
 (u'te', u'Telugu'),
 (u'th', u'Thai'),
 (u'tr', u'Turkish'),
 (u'tt', u'Tatar'),
 (u'udm', u'Udmurt'),
 (u'uk', u'Ukrainian'),
 (u'ur', u'Urdu'),
 (u'vi', u'Vietnamese'),
 (u'zh-hans', u'Simplified Chinese'),
 (u'zh-hant', u'Traditional Chinese')]
LANGUAGES_BIDI  
[u'he', u'ar', u'fa', u'ur']
LANGUAGE_CODE   
'en-us'
LANGUAGE_COOKIE_AGE 
None
LANGUAGE_COOKIE_DOMAIN  
None
LANGUAGE_COOKIE_NAME    
u'django_language'
LANGUAGE_COOKIE_PATH    
u'/'
LOCALE_PATHS    
[]
LOGGING 
{}
LOGGING_CONFIG  
u'logging.config.dictConfig'
LOGIN_REDIRECT_URL  
u'/accounts/profile/'
LOGIN_URL   
u'/accounts/login/'
LOGOUT_REDIRECT_URL 
None
MANAGERS    
[]
MEDIA_ROOT  
u''
MEDIA_URL   
u''
MESSAGE_STORAGE 
u'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE  
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']
MIDDLEWARE_CLASSES  
[u'django.middleware.common.CommonMiddleware',
 u'django.middleware.csrf.CsrfViewMiddleware']
MIGRATION_MODULES   
{}
MONTH_DAY_FORMAT    
u'F j'
NUMBER_GROUPING 
0
PASSWORD_HASHERS    
u'********************'
PASSWORD_RESET_TIMEOUT_DAYS 
u'********************'
PREPEND_WWW 
False
ROOT_URLCONF    
'kolbeb.urls'
SECRET_KEY  
u'********************'
SECURE_BROWSER_XSS_FILTER   
False
SECURE_CONTENT_TYPE_NOSNIFF 
False
SECURE_HSTS_INCLUDE_SUBDOMAINS  
False
SECURE_HSTS_SECONDS 
0
SECURE_PROXY_SSL_HEADER 
None
SECURE_REDIRECT_EXEMPT  
[]
SECURE_SSL_HOST 
None
SECURE_SSL_REDIRECT 
False
SERVER_EMAIL    
u'root@localhost'
SESSION_CACHE_ALIAS 
u'default'
SESSION_COOKIE_AGE  
1209600
SESSION_COOKIE_DOMAIN   
None
SESSION_COOKIE_HTTPONLY 
True
SESSION_COOKIE_NAME 
u'sessionid'
SESSION_COOKIE_PATH 
u'/'
SESSION_COOKIE_SECURE   
False
SESSION_ENGINE  
u'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE 
False
SESSION_FILE_PATH   
None
SESSION_SAVE_EVERY_REQUEST  
False
SESSION_SERIALIZER  
u'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE 
'kolbeb.settings'
SHORT_DATETIME_FORMAT   
u'm/d/Y P'
SHORT_DATE_FORMAT   
u'm/d/Y'
SIGNING_BACKEND 
u'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS  
[]
STATICFILES_DIRS    
('/home/HoussemChatbri/kolbeb/assets',)
STATICFILES_FINDERS 
[u'django.contrib.staticfiles.finders.FileSystemFinder',
 u'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE 
u'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT 
None
STATIC_URL  
'/static/'
TEMPLATES   
[{'APP_DIRS': True,
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': ['/home/HoussemChatbri/kolbeb/templates'],
  'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
                                     'django.template.context_processors.request',
                                     'django.contrib.auth.context_processors.auth',
                                     'django.contrib.messages.context_processors.messages']}}]
TEMPLATE_DIRS   
('/home/HoussemChatbri/kolbeb/templates',)
TEST_NON_SERIALIZED_APPS    
[]
TEST_RUNNER 
u'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR  
u','
TIME_FORMAT 
u'P'
TIME_INPUT_FORMATS  
[u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M']
TIME_ZONE   
'UTC'
USE_ETAGS   
False
USE_I18N    
True
USE_L10N    
True
USE_THOUSAND_SEPARATOR  
False
USE_TZ  
True
USE_X_FORWARDED_HOST    
False
USE_X_FORWARDED_PORT    
False
WEBPACK_LOADER  
{'DEFAULT': {'BUNDLE_DIR_NAME': 'bundles/',
             'STATS_FILE': '/home/HoussemChatbri/kolbeb/webpack-stats.json'}}
WSGI_APPLICATION    
'kolbeb.wsgi.application'
X_FRAME_OPTIONS 
u'SAMEORIGIN'
YEAR_MONTH_FORMAT   
u'F Y'
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code.

hmm. seems like it's coming from printing out a line. Do you do a lot of prints? Maybe you have multiple webworkers all trying to print, and they are conflicting with each other? (I would perhaps take out the prints)

I see. I might be overusing print() (using it for debugging). I'll remove them and report the result. Thanks.

Hi, It didn't happen since I removed this:

import pprint
...
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(output)

I guess it's just like you suspected it: Calling too much print/pprint might cause conflicts.

Thanks very much, and have a great weekend! :)