Kbase P36096: 4GL Socket program crashes with error 140
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  2/7/2011 |
|
Status: Verified
SYMPTOM(s):
4GL Socket program crashes with error 140
Crash occurs when timeout set by 3rd party product is passed
** Pipe to subprocess has been broken. (140)
4GL socket program connecting to 3rd party product.
FACT(s) (Environment):
All Supported Operating Systems
Progress 9.x
OpenEdge 10.x
CAUSE:
The Socket object doesn't handle dropped socket connections very well. Often a system-level error will occur that will not be trappable with NO-ERROR and raise a STOP condition.
This is due to the way the SOCKET object is implemented, and cannot readily be fixed without breaking other functionality.
FIX:
Invoke the <socket>:CONNECTED() method before <socket>:READ() or <socket>:WRITE() in order to detect if the connection had not been dropped, thus preventing operations on disconnected sockets.