Qt Application Crash when calling app.quit() in PyTango 9.2.0 (it works with PyTango 8.1.6)

guifre.cuni
Hi, could it be related to ZMQ socket/context management?

https://stackoverflow.com/questions/19795245/zeromq-context-singleton-provided-in-a-dll-crashes-when-program-exits-vs2010

Sure looks like it. Nice catch Guifre!
Yes nice catch indeed! Is this in the C++ or Python code?
Hi, sorry for the late response. The last two messages are on the second page an I missed them.

Maybe a Tango C++ expert can confirm but my guess is that the error is in 0MQ itself.
If this is true the only fix I see is to recompile the whole chain with a version of ZMQ library which fixes the problem.
Hi,

The error seems to be in 0MQ itself indeed.
You can refer to the following libzmq issues:
https://github.com/zeromq/libzmq/issues/1377
https://github.com/zeromq/libzmq/issues/1144

So it should have been fixed in 0MQ >= 4.2.0 with this Pull Request: https://github.com/zeromq/libzmq/commit/88ac63189c8320e81cc2e61613b0888d34fb463d

Please avoid 0MQ 4.2.0 and 4.2.1 because there is another annoying bug (See https://github.com/tango-controls/cppTango/issues/444 for more information).


Kind regards,
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.
Hi,
Sorry, too busy, or on holidays smile, to test until now …
So I have installed PyTango 9.2.3 and pyzmq 17.1.2 (so theorically zmq 4.2.5) and I still have the same problem with message :
Assertion failed: Successful WSASTARTUP not yet performed (..\..\..\src\signaler.cpp:377).

For now, the only solution I have is to keep PyTango 8.2.6.

Any further ideas ?
Regards,
Christophe


As my test on Windows, any pytango application(pytango-9.2.4 + zmq-4.2.4) using tango event will report this assertion failure on exit:
assertion failed:Successfully WSASTARTUP not yet performed[10093](..\..\..\..\src\ip.cpp:413)

but the same C++ application linked with tango dynamic library will not report this failure on exit. so this failure may relate to zmq static library on windows.

when i have time i will test c++ tango application linked with tango static library.
Edited 5 years ago
I've found an issue on ZMQ GitHub about this problem.
https://github.com/zeromq/czmq/issues/1788

The solution is:
You need to manually call zsys_shutdown() before your Windows program exits.
Any suggestions how can we use it in PyTango clients?
Edited 5 years ago
 
Register or login to create to post a reply.