Forum

events are blocked or slowed down after a while

I guess, I found the problem for not reproducing of the problem. I was confused by the output of the

PyTango._tango.__tangolib_version__

which returned '9.2.5' always, whereas the PyTango used the libtango9 version 9.3.3. I guess the reason was the order of installation of the pytango. I installed it from the pip whereas the 9.2.5 version of libtango9 was installed. It seems that the tango library version value of the PyTango package is statically included and not dynamically taken from the used libtango.

Now I cleaned my system and I can offer some output of my test script (see attachment).

I'll will reinstall the 4.2.5 version of zmq and report about the results

What are you using as value for your TANGO_HOST environment variable?What are you using in the TANGO_HOST part of your fully qualified attribute name (FQAN) when you are subscribing to events?It looks like you are using localhost string in the FQAN when subscribing to events.

Is taco6 the name of the computer where the event client is running?

Are you sure the device server exporting test/sim/sensor device is using cppTango 9.3.3?

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.

I cannot reproduce your problem with a simple C++ client in 9.3.3 subscribing to a periodic event on an attribute from a TangoTest C++ device server (using C++ Tango lib 9.3.3) using an FQAN starting with tango://localhost:10000 and having TANGO_HOST environment variable undefined.I don't get all these "xxx not found in event callback map !!!" errors and I receive all the events, so it looks like I am not in the same conditions as you.

Normally, if you are using the C++ Tango lib 9.3.3 on the client side and on the device server side, they should now agree on the channel name and you should not get these heartbeat problems and you should also not get these "tango://taco6.ictrl.frm2.tum.de:10000/test/sim/sensor/value.periodic not found in event callback map" errors (unless there is a special case we didn't foresee of course).

It looks like the device server is sending events using tango://taco6.ictrl.frm2.tum.de:10000/test/sim/sensor/value.periodic channel name but the event client is expecting something else.If they both use C++ tango library 9.3.3, the device server should communicate the channel name it will use to the client during the subscription phase and the client should know it and should not get such errors.So it really looks like they are not both using 9.3.3 C++ library in your case?

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.

ReynaldOne solution to overcome this bug is to install cppTango 9.3.3 from the source code or using the Bintray cppTango dev Debian package (install instructions when clicking on the "Set me up!" blue button).

Hi Reynald,thank you very much for this simple solution.Could you remind me if this repo can be used for stable use or if it should be considered as a repo for versions currently in development?

philippegHi Reynald,thank you very much for this simple solution.Could you remind me if this repo can be used for stable use or if it should be considered as a repo for versions currently in development?

Bintray Debian repo can be used to test latest development versions of cppTango.But the Debian package available on BinTray are different than the official Debian ones (installing libtango at different locations for instance) but they still depend on libzmq5-dev or libzmq3-dev Debian packages.

Here we basically clone specific version of zmq and use cmake & make install to build/install it.

What Ingvord wrote here is not fully correct.The lines he wrote are not installing a specific version of libzmq, they are installing a specific version of cppzmq, which is just providing include files (zmq.hpp for instance) needed to be able to use ZMQ in a C++ fashion way.

In any case, as I wrote before, even if you are using a buggy version of libzmq, if you use cppTango 9.3.3, the events should work since a work-around was found for a bug which was affecting us in ZMQ 4.20 and ZMQ 4.2.1.

Cheers,Reynald

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.

The community

Tango Controls is a toolkit for connecting hardware and software together. It is a mature software which is used by tens of sites to run highly complicated accelerator complexes and experiments 24 hours a day. It is free and Open Source. It is ideal for small and large installations. It provides full support for 3 programming languages - C++, Python and Java.