Status not set (read_attributes/command_inout unexpected exception)

Hello all.

I develop my device servers mostly on Windows. Recently, after switching to new VM with Tango 9.2.5a (previous was with 9.2.2), my DS started to print warnings, when I open "Monitor device" from Jive:

omniORB: (6) 2019-03-11 16:45:08.370000: Warning: method 'command_inout_4' raised an unexpected exception (not a CORBA exception).
omniORB: (6) 2019-03-11 16:45:08.833000: Warning: method 'read_attributes_5' raised an unexpected exception (not a CORBA exception).

I noticed that Status is not set, even after set_state or set_status at code - when I try to read it from "Test device" I get "lost connection" error (see attachment).
It's strange, because the same code works well on Debian VM.

My environment: Win 10, Python 3.6, PyTango 9.2.3 (compiled by NexeyaSGara). On VM: Tango 9.2.5a, Jive 7.21, AtkPanel 5.8.

Any ideas how to fix the problem?

The server-side exception that you are getting is a CORBA UNKNOWN exception with OMG minor code 1, which seems to correspond to an error code indicating an UNKNOWN_UserException (I got this information from omniORB4/minorCode.h include file from omniORB).

I guess this means that you device server is throwing an unknown user exception when the attribute is read.

Do you have anything in the read method of this attribute in the device server which could throw an exception?
If yes, could you try to convert this exception to a Tango::DevFailed exception and throw this Tango::DevFailed exception instead?

Hoping this helps.
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
As I mentioned - it only happens with "Status" attribute.
So the same situation happens with empty DS, that was just generated by Pogo (see attachment)
Edited 2 years ago

I encounter this same issue with a custom command. And I found out the reason is that the command name is too long (27 characters). Making it shorter to 21 characters works without the exception.

Dave Nguyen
@mariocaption: Can you file an issue with cppTango [1] including an MWE [2]? Then we can have a stab on fixing that. Thanks.

Register or login to create to post a reply.