geopython/pywps

Request error cannot be properly reported

gamesbook opened this issue · 0 comments

Description

My current pyWPS is unable to start up (obviously I need to fix that...) but the error handling/reporting is seemingly failing.

I inserted an extra LOGGER in this fragment of code from the call method in app/Service.py:

                try:
                    response = None
                    if wps_request.operation == 'getcapabilities':
                        response = self.get_capabilities(wps_request, request_u$
                        response._update_status(WPS_STATUS.SUCCEEDED, u'', 100)

                    elif wps_request.operation == 'describeprocess':
                        response = self.describe(wps_request, request_uuid, wps$
                        response._update_status(WPS_STATUS.SUCCEEDED, u'', 100)

                    elif wps_request.operation == 'execute':
                        response = self.execute(
                            wps_request.identifier,
                            wps_request,
                            request_uuid
                        )
                    return response
                except Exception as e:
                    LOGGER.exception(e)

and now have the following stack trace:

[2019-03-27 07:36:49,813]      ERROR [exceptions.py:45] Exception: code: 500, locator: No applicable error code, please check error log., description: 
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pywps-4.0.0-py2.7.egg/pywps/app/Service.py", line 332, in call
    store_status(request_uuid, WPS_STATUS.FAILED, u'Request rejected due to exception', 100)
TypeError: can't pickle thread.lock objects

It seems there needs to be an improvement to the way that store_status works?

Environment

  • operating system:
  • Python version: 2.7
  • PyWPS version: 4.0.0
  • source/distribution
  • git clone
  • Debian
  • PyPI
  • zip/tar.gz
  • other (please specify):
  • web server
  • Apache/mod_wsgi
  • CGI
  • nGinx

Steps to Reproduce

Unable to provide code.

Additional Information