MSWMS server raises a secondary Exception when a first Exception was raised when preparing WMS reply

Issue #342 resolved
Joern Ungermann created an issue

In Py3, there seems to be some unicode/byte string conversion pronblem when preparing error message after an internal exception.

#!

ERROR: <class 'AttributeError'>: 'Basemap' object has no attribute 'axi'
Traceback (most recent call last):
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\site-packages\mslib\mswms\w
ms.py", line 531, in application
    return_data, return_format = app.produce_plot(environ, request)
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\site-packages\mslib\mswms\w
ms.py", line 432, in produce_plot
    image = plot_driver.plot()
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\site-packages\mslib\mswms\m
ss_plot_driver.py", line 646, in plot
    transparent=self.transparent)
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\site-packages\mslib\mswms\m
pl_hsec.py", line 334, in plot_hsection
    self._plot_style()
  File "C:\Users\icg173\mss\simple.py", line 33, in _plot_style
    axins1 = mpl_toolkits.axes_grid1.inset_locator.inset_axes(self.bm.axi,
AttributeError: 'Basemap' object has no attribute 'axi'

----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 61271)
Traceback (most recent call last):
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\socketserver.py", line 639,
 in process_request_thread
    self.finish_request(request, client_address)
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\socketserver.py", line 361,
 in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\socketserver.py", line 696,
 in __init__
    self.handle()
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\site-packages\paste\httpser
ver.py", line 459, in handle
    BaseHTTPRequestHandler.handle(self)
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\http\server.py", line 418,
in handle
    self.handle_one_request()
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\site-packages\paste\httpser
ver.py", line 454, in handle_one_request
    self.wsgi_execute()
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\site-packages\paste\httpser
ver.py", line 307, in wsgi_execute
    self.wsgi_write_chunk(chunk)
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\site-packages\paste\httpser
ver.py", line 167, in wsgi_write_chunk
    self.wfile.write(chunk)
  File "C:\Users\icg173\Anaconda3\envs\mss-1.7.2\lib\socketserver.py", line 775,
 in write
    self._sock.sendall(b)
TypeError: a bytes-like object is required, not 'str'

Comments (6)

  1. Reimar Bauer

    What is needed to reproduce this. A short test with the builtin demodata did work on my linux

    paste                     2.0.3            py36h9fb3c17_0  
    
  2. Reimar Bauer

    Correctly treat unicode/bytes in Python3 in WMS server response

    Under certain conditions the return message wa still in unicode and not ascii/bytes level. This might cause a second exception in the WMS server in the error handling.

    Fix issue #342

    → <<cset 7b05712ce4e3>>

  3. Log in to comment