0/2 Suds SOAP clients obtained to https://test.triple-ip.com/onecall3/iiip3webservice/iiip3service.asmx?WSDL
It never get past 0/2. I only have this behaviour on a Redhat Enterprise server. On an Ubuntu server it works OK.
Has anyone seen this behaviour and possibly knows what can be wrong?
Looking at the code it seems that is has something to do with the gevent.Queue.
There is a while loop with while not self.queue.full() in zato.server.connection.queue that never quits.
I have just successfully obtained SOAP clients from the WSDL under a Zato server on Ubuntu 14.04 so this is indeed something specific to this RHEL environment.
The part of code that establishes SOAP clients was not, however, wrapped in a try/except block and, because it runs in its own greenlet, any exceptions while the clients were being created, would be lost.
I have just pushed a commit to deal with it - all exceptions will now be logged in server.log:
Can you apply it in your environment? This is basically wrapping the whole of SudsSOAPWrapper.add_client in a try/except block and logging exceptions should any occur.
I’m sure this will shed some light on why it happens on RHEL only.
Tx. for the patch, I applied it and very soon found out what the problem was.
It seems that Redhat, in their wisdom, backported some ssl stuff. This causes problems with gevent.
Because gevent patches SSLSocket, and the backport does change the callspec. for SSLSocket.
Gevent take this change into account, but only for python > 2.7.9
The problem is that Rehat backported this ssl change to python 2.7.5
I saw a similar thing some time ago while porting an environment from Zato 1.1 to the latest version (three years of uninterrupted uptime!) from Ubuntu 12.04 to 16.04 - the same situation with server_hostname.