On 11/07/2012 02:24 PM, Gordon Sim wrote:
On 11/07/2012 11:52 AM, Gary Kotton wrote:
On 11/07/2012 01:49 PM, Gordon Sim wrote:
On 11/07/2012 11:36 AM, Gary Kotton wrote:
On 11/07/2012 01:12 PM, Gordon Sim wrote:
On 11/07/2012 08:08 AM, Gary Kotton wrote:
Hi,
I'm Gary and working on the OpenStack project. We have run into a
problem with eventlet monkey patching  QPID. We are using python.
If the
service that I am running starts before qpidd then it hangs and
does not
recover. Even when the qpidd daemon starts it does not recover.

If qpidd is running before you start the patched client, but is then
stopped and restarted, does the client manage to reconnect?

sadly not.

Does setting the reconnect option to false have any effect? Does the
connection then fail as expected, or does it still hang?

The connect fails and does not hang.

Ok, so in essence reconnect doesn't work when the socket library is patched. I'm not exactly sure how eventlet works, but perhaps if I describe roughly what the python client is doing that may shed some light...

When reconnect is on and a connection can't be established, the application thread in the open() call will be waiting on a condition variable (waiting essentially for the connection object to be marked open).

That condition is usually met by the driver thread periodically rechecking the connection, and when it can be established it sets the condition.

Could the patching of the socket be causing the driver thread to exit?

I am not sure. I'll try and check.

Perhaps some slightly different error condition is raised?

When debugging I saw that it waits on self.connection.open() and waits on os.read() from the Waiter class.

Are you using SSL?

No.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to