Salesforce

What is behind the 778 error and is it caused by a Progress timeout?

« Go Back

Information

 
TitleWhat is behind the 778 error and is it caused by a Progress timeout?
URL NameP103854
Article Number000147837
EnvironmentProduct: Progress
Version: 9.x
Product: OpenEdge
Version: 10.x, 11.x
OS: All supported platforms
Question/Problem Description
What does Progress error 778 mean?
Is there a timeout between a Progress client and Remote Server that can cause socket errors?
Do Progress clients and Remote Servers send acknowledgements between the processes?
How are messages sent between clients and remote server processes?
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
What does Progress error 778 mean?
Progress error message 778 reads as follows:
Error <read/writing>%s socket, ret=%i<n>, errno=%E<n>. (778)
  • The error is indicative of a problem on the network layer.
  • It is a communication error is due to a problem with a read() or write() function on the socket on systems with TCP/IP communication between the server and client. 
  • This error is not being caused by Progress, nor is it associated with a timeout being imposed by Progress. This error number occurs when we encounter an error while processing a socket read or write.
How are messages sent between clients and remote server processes?
  1. A Progress client when communicating with a server, will create a message. 
  2. The message depending upon its size may be broken into fragments and each fragment is sent across the wire.
  3. The header of the message indicates the size of the message being sent/received.
  4. The server polls on a socket level to see if there are any incoming messages.
  5. When there are messages, the server blocks on the read of the message.
  6. The server will continue to read the message until the end of the message, based on the size recorded in the header of the message. 
  7. It will read/write one fragment using the read() or write() system call and then loop around again to read/write the next fragment. This process continues until the whole message has been sent/received.
  8. The server will then perform the necessary action and send the results back to the client using this same methodology.
Do Progress clients and Remote Servers send acknowledgements between the processes?
  • There is no acknowledgement being sent between the client and server with regards to if it received a message or not.
  • Any acknowledgements or handshaking is performed on a socket level at the TCP layer. But it is not being done within Progress.
  • While the 778 message is printed by Progress, it is the result of getting a negative return code from the read() or write() operating system call on a socket.
  • The read() call is equivalent to a recv() call with no flags set, and the write() call is equivalent to a send() with no flags set.
  • When the recv() or send() system call fails, the return code from that call is buffered and recorded in the 778 message.
  • The error indicates a problem at the OS networking level, not on the Progress level. 
  • Refer to the OS networking error code documentation to determine the underlying meaning of the return code and errno reported in error 778.
Workaround
Notes
Progress Article:

 What does error 794 mean? 
Keyword Phrase
Last Modified Date12/8/2020 11:46 AM

Powered by