Salesforce

Clients connected to dead remote server process cannot be disconnected

« Go Back

Information

 
TitleClients connected to dead remote server process cannot be disconnected
URL NameClient-Server-connections-to-dead-mprosrv-remain-connected
Article Number000145956
EnvironmentProduct: OpenEdge
Version: 10.2B00, 10.2B01, 10.2B02, 10.2B03, 10.2B04, 10.2B05, 11.0
OS: All Supported Operating Systems
Question/Problem Description
Remote Clients connected to a Remote Server that terminated are not disconnected
When a fatal error terminates a Remote Server, the remote clients connected to that _mprosrv process are not getting cleaned up
The WDOG process does not clean up the remote connections when the remote server terminates

Attempts to disconnect the users via PROMON or PROSHUT -C disconnect,  result in the remote clients being removed from the proshut or promon terminate user menus
Disconnected remote users continue to appear in the User Control screen in PROMON

When disconnecting the REMC user via promon or proshut the following informational messages are written to the database lg file but the user process does not go away:
 
PROMON  5: (-----) User 24 disconnect initiated
BROKER  0: (-----) Notifying srvr 1, conn 1, to terminate remote user 24
BROKER  0: (-----) Sending signal 5 to user 24

When a new client/server connection is made, a new remote server is spawned with the same usrctrl id.
When that new remote client is disconnected, a message is sent to the new remote server for this client connection as well as the client that was disconnected earlier from the dead server
 
SHUT 5: (-----) User 24 disconnect initiated
BROKER  0: (-----) Notifying srvr 1, conn 1, to terminate remote user 23
BROKER  0: (-----) Sending signal 5 to user 24
BROKER  0: (-----) Notifying srvr 1, conn 1, to terminate remote user 24
BROKER  0: (-----) Sending signal 5 to user 24​

kill -s USR1 on the _progres session produces the following stack trace:

Stack trace from _progres on Linux 64 bit:
 
rnSocketSelect
wvUnixGetKey
wvGetEvent
wvRunDispatcher
iodispatch
Steps to Reproduce
Clarifying Information
Error Message
Defect NumberDefect OE00216627 / PSC00240808
Enhancement Number
Cause
Prior to OpenEdge 10.2B, remote users were disconnected from the database as part of the remote server shutting down due to receiving the kill signal.  

This issue was introduced in OpenEdge 10.2B as part of database shut down improvements, where remote users are not disconnected under these conditions.  

Since the watch dog functionality only disconnects shared-memory clients, it is unable to clean up the remote connections because the clean up from the kill signal removes the Server ctl for the remote server.
Resolution
This issue is fixed in OpenEdge 10.2B06, 11.1.x or later, where all users that are connected to a remote server are disconnected while the remote server shuts down

In OpenEdge 10.2B08, 11.3.0 or later, further issues with latches held by dead users mid-transaction have been fixed. For further detail refer to Article:  Database activity drops suddenly  

For orphan remote clients, it is recommended to upgrade to OpenEdge 12.1, LTS Update 11.7.6 or later. Further information can be found in the following Articles:

 
Workaround
Shutdown the database to clean up after remote users that were not disconnected when the problem occurred.
Notes
Keyword Phrase
Last Modified Date5/3/2021 2:39 PM

Powered by