Skip to content
This repository has been archived by the owner on Apr 7, 2022. It is now read-only.

Random monitor timeout on read_attribute #168

Closed
jkotan opened this issue Oct 25, 2017 · 4 comments
Closed

Random monitor timeout on read_attribute #168

jkotan opened this issue Oct 25, 2017 · 4 comments

Comments

@jkotan
Copy link
Contributor

jkotan commented Oct 25, 2017

Hi,

From time to I get error

MainThread     INFO     2017-10-25 08:47:45,967 TaurusRootLogger: Using "PyQt4" for Qt
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/nxsselector/Selector.py", line 941, in __restore
self.resetDescriptions()
  File "/usr/lib/python2.7/dist-packages/nxsselector/Selector.py", line 884, in resetDescriptions
self.storage.showErrors()
  File "/usr/lib/python2.7/dist-packages/nxsselector/Storage.py", line 276, in showErrors
errors = self.state.fetchErrors()
  File "/usr/lib/python2.7/dist-packages/nxsselector/ServerState.py", line 418, in fetchErrors
dc = self.__dp.read_attribute("descriptionErrors").value
  File "/usr/lib/python2.7/dist-packages/tango/green.py", line 264, in greener
ret = submitter(fn, self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/tango/green.py", line 100, in submit
return fn(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/tango/device_proxy.py", line 352, in __DeviceProxy__read_attribute
return __check_read_attribute(self._read_attribute(value, extract_as))
PyTango.DevFailed: DevFailed[
DevError[
desc = Not able to acquire serialization (dev, class or process) monitor
  origin = TangoMonitor::get_monitor
  reason = API_CommandTimedOut
severity = ERR]

DevError[
desc = Failed to read_attribute on device p08/nxsrecselector/haspp08, attribute descriptionErrors
  origin = DeviceProxy::read_attribute()
  reason = API_AttributeFailed
severity = ERR]
]

when I read an attribute from tango server. It looks similar to #22

Is this issue was fixed? Is there any workaround?

I use pytango 9.2.1.

Best regards,
Jan

@jkotan
Copy link
Contributor Author

jkotan commented Oct 26, 2017

To be more concrete DescriptionErrors is a tango attribute:

Writable     READ
Data format  Spectrum
Data type    DevString
Max Dim X    10000

of a tango server written in python.
Currently my workaround it a brutal force solution, i.e. a loop with read tries.

@vxgmichel
Copy link
Contributor

Thanks for the report,

The issue you mentioned (#22) has been fixed in pytango 9.2.0, so that's not your problem here.

The thing is, the tango monitor lock timeout (Not able to acquire serialization monitor) can have many causes. It could be a deadlock, an overload, or any blocking code. You'll have to try to reproduce it with a minimalistic version of your server and share it with us so we can figure out what is going on.

@tiagocoutinho
Copy link
Contributor

Hi @jkotan,

Are you running your server in any of the async modes (gevent/asyncio/...) ?

@jkotan
Copy link
Contributor Author

jkotan commented Feb 24, 2019

cannot reproduce anymore

@jkotan jkotan closed this as completed Feb 24, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants