tinoshot / python-astm

Automatically exported from code.google.com/p/python-astm
Other
0 stars 0 forks source link

Omnilab client hangs on sending ENQ after non-graceful disconnect #8

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
The issue may be described with following algorithm:

0. C open new connection to S
1. C -- ENQ --> S
2. S -- ACK --> C
3. C -- H record --> S
4. S -- ACK --> C
5. C closes connection
# no matter no many time have passed between these steps
6. C open new connection to S
7. C -- ENQ --> S # S never replies there
8. C -- ENQ --> S # only after second ENQ message S returns to neutral state

The Omnilab client will hangs on socket.recv() call awaiting ACK or any other 
response from server on step 7, but server counting ENQ request as invalid for 
transfer state and returns to neutral state without any notification. This 
might be a problem of incorrect Omnilab LabOnline server configuration. 
However, this is also problem of python-astm since we have to retry ENQ request 
after specified timeout.

Original issue reported on code.google.com by kxepal on 9 Jan 2013 at 3:11

GoogleCodeExporter commented 9 years ago

Original comment by kxepal on 10 Jan 2013 at 8:18

GoogleCodeExporter commented 9 years ago
Temporary fixed in r199ae0c504a5 , need for some tests.

Original comment by kxepal on 10 Jan 2013 at 3:31

GoogleCodeExporter commented 9 years ago
Close as fixed. Omnilab module tracks global session regardless how many times 
connection was closed and opened and this probably wouldn't be changed.

Original comment by kxepal on 1 Feb 2013 at 3:28