I recently upgraded an application on Pythonanywhere.com to: Version
2.12.3-stable+timestamp.2015.08.19.00.18.03
Part of the application uses jQuery to post files to a web2py REST API.
After the upgrade I noticed that I kept getting this unhelpful error 500
message:
PythonAnywhere: something went wrong :-(
Looking at the server error log seemed to point to a DAL error...:
2015-11-21 07:11:07,012 :Traceback (most recent call last):
2015-11-21 07:11:07,013 : File "/bin/user_wsgi_wrapper.py", line 134, in
__call__
2015-11-21 07:11:07,013 : self.error_log_file.logger.exception("Error
running WSGI application")
2015-11-21 07:11:07,013 : File "/usr/lib/python2.7/logging/__init__.py", line
1185, in exception
2015-11-21 07:11:07,014 : self.error(msg, *args, **kwargs)
2015-11-21 07:11:07,014 : File "/usr/lib/python2.7/logging/__init__.py", line
1178, in error
2015-11-21 07:11:07,014 : self._log(ERROR, msg, args, **kwargs)
2015-11-21 07:11:07,014 : File "/usr/lib/python2.7/logging/__init__.py", line
1270, in _log
2015-11-21 07:11:07,015 : record = self.makeRecord(self.name, level, fn,
lno, msg, args, exc_info, func, extra)
2015-11-21 07:11:07,015 : File "/usr/lib/python2.7/logging/__init__.py", line
1244, in makeRecord
2015-11-21 07:11:07,015 : rv = LogRecord(name, level, fn, lno, msg, args,
exc_info, func)
2015-11-21 07:11:07,015 : File "/usr/lib/python2.7/logging/__init__.py", line
284, in __init__
2015-11-21 07:11:07,016 : self.threadName = threading.current_thread().name
2015-11-21 07:11:07,016 : File "/usr/lib/python2.7/threading.py", line 1160,
in currentThread
2015-11-21 07:11:07,016 : return _active[_get_ident()]
2015-11-21 07:11:07,016 : File "/bin/user_wsgi_wrapper.py", line 127, in
__call__
2015-11-21 07:11:07,016 : for response in app_iterator:
2015-11-21 07:11:07,016 : File
"/home/web2py2/gluon/packages/dal/pydal/helpers/classes.py", line 133, in
__getitem__
2015-11-21 07:11:07,020 : self.__allocate()
2015-11-21 07:11:07,020 : File
"/home/web2py2/gluon/packages/dal/pydal/helpers/classes.py", line 102, in
__allocate
2015-11-21 07:11:07,021 : self._record = self._table[long(self)]
2015-11-21 07:11:07,021 : File
"/home/web2py2/gluon/packages/dal/pydal/objects.py", line 505, in __getitem__
2015-11-21 07:11:07,022 : orderby_on_limitby=False
2015-11-21 07:11:07,022 : File
"/home/web2py2/gluon/packages/dal/pydal/objects.py", line 2002, in select
2015-11-21 07:11:07,023 : return adapter.select(self.query,fields,attributes)
2015-11-21 07:11:07,023 : File
"/home/web2py2/gluon/packages/dal/pydal/adapters/base.py", line 1286, in select
2015-11-21 07:11:07,025 : return self._select_aux(sql,fields,attributes)
2015-11-21 07:11:07,025 : File
"/home/web2py2/gluon/packages/dal/pydal/adapters/base.py", line 1243, in
_select_aux
2015-11-21 07:11:07,026 : self.execute(sql)
2015-11-21 07:11:07,026 : File
"/home/web2py2/gluon/packages/dal/pydal/adapters/base.py", line 1378, in execute
2015-11-21 07:11:07,027 : return self.log_execute(*a, **b)
2015-11-21 07:11:07,027 : File
"/home/web2py2/gluon/packages/dal/pydal/adapters/base.py", line 1363, in
log_execute
2015-11-21 07:11:07,028 : if not self.connection: raise ValueError(a[0])
2015-11-21 07:11:07,028 :ValueError: SELECT workspace.id,
workspace.repository, workspace.name, workspace.file, workspace.created_date,
workspace.modified_date, workspace.company_id FROM workspace WHERE
(workspace.id = 17) LIMIT 1 OFFSET 0;
It wasn't until I disabled the return statement in the REST API POST
function that I identified the cause of the error.
The issue seems to have been that I was returning an integer value, as
apposed to JSON/dict etc as mentioned in this thread:
https://groups.google.com/forum/#!searchin/web2py/post$20api$20error/web2py/TDPiz6-DMkc/eaNrGoozCgAJ
I also tested on Rocket server - it is a bit more informative:
ERROR:Rocket.Errors.Thread-2:Traceback (most recent call last):
File "/home/web2py2/gluon/rocket.py", line 1337, in run
self.run_app(conn)
File "/home/web2py2/gluon/rocket.py", line 1868, in run_app
output.close()
TypeError: 'NoneType' object is not callable
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.