ome / omero-web

Django-based OMERO.web client
https://www.openmicroscopy.org/omero
16 stars 29 forks source link

AttributeError: 'ERR' object has no attribute 'message' #481

Open will-moore opened 1 year ago

will-moore commented 1 year ago

https://www.openmicroscopy.org/qa2/qa/feedback/33051/

Traceback (most recent call last):

File "/omero/venv3/lib64/python3.6/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)

File "/omero/venv3/lib64/python3.6/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/omero/venv3/lib64/python3.6/site-packages/omeroweb/decorators.py", line 544, in wrapped
retval = f(request, *args, **kwargs)

File "/omero/venv3/lib64/python3.6/site-packages/omeroweb/decorators.py", line 603, in wrapper
context = f(request, *args, **kwargs)

File "/omero/venv3/lib64/python3.6/site-packages/omeroweb/webclient/views.py", line 3555, in activities
rv = graphResponseMarshal(conn, rsp)

File "/omero/venv3/lib64/python3.6/site-packages/omeroweb/webgateway/marshal.py", line 448, in graphResponseMarshal
rv["error"] = rsp.message

AttributeError: 'ERR' object has no attribute 'message'
will-moore commented 1 year ago

Reported again at https://www.openmicroscopy.org/qa2/qa/feedback/33756/

The graphResponseMarshal() is only used for dry-run chgrp and chown jobs and this error is only created if there's an error: if isinstance(rsp, omero.cmd.ERR):

Might be tricky to reproduce... but should be easy to fix that and not try to access rsp.message.

will-moore commented 7 months ago

Same error when handling error with group update permissions https://www.openmicroscopy.org/qa2/qa/feedback/41346/

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "/opt/omero/web/venv3/lib/python3.8/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)

File "/opt/omero/web/venv3/lib/python3.8/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/opt/omero/web/venv3/lib/python3.8/site-packages/omeroweb/decorators.py", line 538, in wrapped
retval = f(request, *args, **kwargs)

File "/opt/omero/web/venv3/lib/python3.8/site-packages/omeroweb/decorators.py", line 597, in wrapper
context = f(request, *args, **kwargs)

File "/opt/omero/web/venv3/lib/python3.8/site-packages/omeroweb/webadmin/views.py", line 867, in manage_group
msgs = conn.updateGroup(group, name, perm, description)

File "/opt/omero/web/venv3/lib/python3.8/site-packages/omeroweb/webclient/webclient_gateway.py", line 1504, in updateGroup
err = self.updatePermissions(group, permissions)

File "/opt/omero/web/venv3/lib/python3.8/site-packages/omeroweb/webclient/webclient_gateway.py", line 1594, in updatePermissions
message = ex.err.message

AttributeError: 'ERR' object has no attribute 'message'
will-moore commented 7 months ago

Checking what attributes should be used to get strings from these error objects...

>>> from omero import CmdError
>>> CmdError.__file__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'CmdError' has no attribute '__file__'
>>> c = CmdError()
>>> c = CmdError("badness")
>>> str(c)
'\nbadness'
>>> c.message
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'CmdError' object has no attribute 'message'
>>> c.err
'badness'

>>> import omero
>>> from omero import cmd
>>> e = cmd.ERR("some error")
>>> e.message
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'ERR' object has no attribute 'message'
>>> str(e)
'object #0 (::omero::cmd::ERR)\n{\n    category = shit\n    name = \n    parameters = {}\n}'
>>> e.category
'some error'
will-moore commented 3 months ago

Similar error:

Traceback (most recent call last):
  File "/opt/omero/web/venv3/lib64/python3.9/site-packages/omeroweb/webgateway/marshal.py", line 168, in imageMarshal
    reOK = image._prepareRenderingEngine()
  File "/opt/omero/web/venv3/lib64/python3.9/site-packages/omero/gateway/__init__.py", line 8236, in _prepareRenderingEngine
    self._re = self._prepareRE(rdid=rdid)
  File "/opt/omero/web/venv3/lib64/python3.9/site-packages/omero/gateway/__init__.py", line 8215, in _prepareRE
    re.load(ctx)
  File "/opt/omero/web/venv3/lib64/python3.9/site-packages/omero/gateway/__init__.py", line 4862, in __call__
    return self.handle_exception(e, *args, **kwargs)
  File "/opt/omero/web/venv3/lib64/python3.9/site-packages/omeroweb/webclient/webclient_gateway.py", line 2106, in handle_exception
    super(OmeroWebSafeCallWrapper, self).handle_exception(e, *args, **kwargs)
  File "/opt/omero/web/venv3/lib64/python3.9/site-packages/omero/gateway/__init__.py", line 4859, in __call__
    return self.f(*args, **kwargs)
  File "/opt/omero/web/venv3/lib64/python3.9/site-packages/omero_api_RenderingEngine_ice.py", line 1192, in load
    return _M_omero.api.RenderingEngine._op_load.invoke(self, ((), _ctx))
Ice.UnknownLocalException: exception ::Ice::UnknownLocalException
{
    unknown = Network.cpp:2357: Ice::ConnectionRefusedException:
connection refused: Connection refused
}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/omero/web/venv3/lib64/python3.9/site-packages/omero_iviewer/views.py", line 501, in image_data
    rv = imageMarshal(image)
  File "/opt/omero/web/venv3/lib64/python3.9/site-packages/omeroweb/webgateway/marshal.py", line 177, in imageMarshal
    rv["Exception"] = ex.message
AttributeError: 'UnknownLocalException' object has no attribute 'message'