Orphaned AppServer agents after third-party client sends messages
using the AppServer communication protocolThird-party client sends a specific sequence of packets over time to the listening socket, using the AppServer communication protocol
The following AppServer Agent trace (
Ubroker.ClientMemTrace:4,Ubroker.ServerMemTrace:4)
1. Prior to the problem occurring shows:
[13:09:13:393] {C-0017} UBRQ_WRITEDATALAST 0028 10.20.3.61:1582 ---> C-0017
- A message received from the client (10.20.3.61:1582) by the client thread (C-0017).
- The message is encompassed in one network message.
2. The client thread sends a message to the server thread (S-0019) that it is going to send a request.
[13:09:13:393] {C-0017} UBRQ_INIT_RQ 0000 C-0017 ---> S-0019
3. The client thread sends the message to the server, indicating this is the whole message.
[13:09:13:393] {C-0017} UBRQ_WRITEDATALAST 0028 C-0017 ---> S-0019
4. The client thread receives another request from the client.
[13:09:25:408] {C-0017} UBRQ_WRITEDATALAST 0029 10.20.3.61:1582 ---> C-0017
- It is expecting to get a UBRQ_RSPDATA or UBRQ_RSPDATALAST message from the server.
- The UBRQ_RSPDATA* message occurs when the server finishes processing the request.
The client thread in the Broker is expecting output from the Agent, but instead receives an unexpected message.
After receiving the unexpected message, the Broker loses communication with the Agent.
Agent remains running without using 100% of the CPU cycles.