handle leak, win32 port
Bug #772471 reported by
Jeff Hill
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
EPICS Base |
New
|
Medium
|
Jeff Hill |
Bug Description
From Carsten Winkler,
It seems to be a handle leak in Channel Access Server V4.13 (current EPICS base)
Create any PVs at softIoc, request it via caget and you see the handle count at softIoc will be
increased by two and won't be freed anymore (without using any EPICS gateway).
If you frequently repeat this procedure you will end up to in a "WINSOCK Error 10055".
This problem occurs at Windows XP with patched EPICS bas 3.14.12.
To post a comment you must log in.
From Carsten Winkler,
I use the native win32-x86 EPICS base port to windows. My caget doesn't run at a high repetition
rate. The problem also occurs when I use camonitor.
I used camonitor and netstat to check how many tcp circuits are active and in what state they are
in. I called camonitor from a different machine as softIoc.
At the beginning of my test softIoc had 1282 used handles (constant). When I called camonitor I saw
a new TCP connection to port 5064 (via netstat) and an increase of softIoc handles to 1294. Both
values were constant while running camonitor. After stopping camonitor the handle count of softIoc
decreased to 1284 and the TCP connection to port 5064 was still open. After some seconds the TCP
connection to port 5064 has been closed but the handle count still stands by 1284. This two
additional handles will no more be removed and every new camonitor or caget request will add two
more handles until softIoc crashes.
To diagnostic the handle count I use the "Performancemon itor" (perfmon.exe) from MS Windows and the
"Processexplorer" (procexp.exe) from Systeminternals.
I think caget terminates regularly and calls ca_context_destroy to clean up all used channel access
resources.