Problem:
- Product Name: VBE for C
- Product Version: 5.2 Full
- Product Component: IPC Shared Memory
- Platform Version: HP-UX 11.0
- JDK/Compiler Version: NA
VBE 5.2: Shared memory segment does not get cleanup when server died.
Resolution:
The basic issue is that shared memory segments is not getting cleaned up after the server dies if there is a connection from a client to that server.
This is because the shared memory segment can't be removed if the client process is still attached to it. If there are many long running clients holding onto the shared memory segments, this will case the system to eventually run out of resources.
This issue can be easily reproduced with a bank_agent example, by setting a sleep after the client invoked the server.
Failure #38015 was initially filed for this issue, but as it turned out, this issue is not a failure, but the normal way shared memory or tcp/ip should function. Comparatively, when a Server using tcp/ip goes away, the client sided socket is still not cleaned up unless the client explicitly cleans it up. This is also the case with the shared memory.
The solution in this case is to let the Client check if the Server object is till available, if not, just clean up the object reference.
#Security
#ipc
#VisiBroker




