underflow in casr diagnostic
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
EPICS Base |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Today I saw a situation where casr was printing "Undelivered response bytes=4294967272". this value is 0xFFFFFFE8; suspiciously like unsigned integer underflow. Code could be added to prevent this situation, but I should also sweep through the source and try to determine how the structure members involved could actually get into this state. Another possibility is corruption, nbut this is contraindicated because other members of the surrounding data structure are ok.
> This is the output of "casr 100"
>
> epics> casr 100
> Channel Access Server V4.11
> Connected circuits:
> TCP 164.54.
> 19 Channels, Priority=0
> Task Id=0x13736780, Socket FD=12
> Secs since last send 1937.69, Secs since last receive 2059.90
> Unprocessed request bytes=0, Undelivered response bytes=0
> State=up
> 4968 bytes allocated
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> Send Lock
> epicsMutexId 0x13748318 source ../caservertask.c line 732
> ownerTid 0x0 count 0 owned 0
> Put Notify Lock
> epicsMutexId 0x137355b0 source ../caservertask.c line 733
> ownerTid 0x0 count 0 owned 0
> Address Queue Lock
> epicsMutexId 0x13735630 source ../caservertask.c line 734
> ownerTid 0x0 count 0 owned 0
> Event Queue Lock
> epicsMutexId 0x13736238 source ../caservertask.c line 735
> ownerTid 0x0 count 0 owned 0
> Block Semaphore
> TCP 164.54.
> 25 Channels, Priority=0
> Task Id=0x100ebf38, Socket FD=3
> Secs since last send 581.47, Secs since last receive 868.66
> Unprocessed request bytes=0, Undelivered response bytes=0
> State=up
> 6480 bytes allocated
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> Send Lock
> epicsMutexId 0x1010c8e8 source ../caservertask.c line 732
> ownerTid 0x0 count 0 owned 0
> Put Notify Lock
> epicsMutexId 0x1010c5a8 source ../caservertask.c line 733
> ownerTid 0x0 count 0 owned 0
> Address Queue Lock
> epicsMutexId 0x139d57d0 source ../caservertask.c line 734
> ownerTid 0x0 count 0 owned 0
> Event Queue Lock
> epicsMutexId 0x1010ce60 source ../caservertask.c line 735
> ownerTid 0x0 count 0 owned 0
> Block Semaphore
> TCP 164.54.
> Priority=0
> Task Id=0x13a9f098, Socket FD=13
> Secs since last send 584.48, Secs since last receive 584.48
> Unprocessed request bytes=8256, Undelivered response
> bytes=4294967272
> State=up
> 478560 bytes allocated
> dxpXMAP:
> dxpXMAP:mca1(1r-) dxpXMAP:mca1(1rw) dxpXMAP:mca1(1rw)
...
> dxpXMAP:mca16(0rw) dxpXMAP:mca16(0rw) dxpXMAP:mca16(0rw)
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> dxpXMAP:
> Send Lock
> epicsMutexId 0x13a9e888 source ../caservertask.c line 732
> ownerTid 0x13a9f010 count 1 owned 1
> Put Notify Lock
> epicsMutexId 0x13a9e980 source ../caservertask.c line 733
> ownerTid 0x0 count 0 owned 0
> Address Queue Lock
> epicsMutexId 0x13a9ea78 source ../caservertask.c line 734
> ownerTid 0x0 count 0 owned 0
> Event Queue Lock
> epicsMutexId 0x13a9eb70 source ../caservertask.c line 735
> ownerTid 0x0 count 0 owned 0
> Block Semaphore
> UDP Server:
> UDP 164.54.
> Task Id=0x133721f0, Socket FD=9
> Secs since last send 936.94, Secs since last receive 0.58
> Unprocessed request bytes=16, Undelivered response bytes=0
> State=up
> 180 bytes allocated
> Send Lock
> epicsMutexId 0x133725a8 source ../caservertask.c line 732
> ownerTid 0x0 count 0 owned 0
> Put Notify Lock
> epicsMutexId 0x133726a0 source ../caservertask.c line 733
> ownerTid 0x0 count 0 owned 0
> Address Queue Lock
> epicsMutexId 0x13372798 source ../caservertask.c line 734
> ownerTid 0x0 count 0 owned 0
> Event Queue Lock
> epicsMutexId 0x13372890 source ../caservertask.c line 735
> ownerTid 0x0 count 0 owned 0
> Block Semaphore
> There are currently 286036 bytes on the server's free list
> 4 client(s), 699 channel(s), 1424 event(s) (monitors) 0 putNotify(s)
> 10 small buffers (16384 bytes ea), and 0 jumbo buffers (1000024 bytes ea)
> The server's resource id conversion table:
> Bucket entries in use = 2373 bytes in use = 54372
> Bucket entries/hash id - mean = 0.579346 std dev = 0.493664 max = 1
> The server's array size limit is 1000024 bytes max
> Channel Access Address List
> 164.54.160.255:5065
> epics>
>
> 164.54.160.87 is the IP address of the machine running both the IOC and
> the IDL client. For that client connection it is saying:
>
> Unprocessed request bytes=8256, Undelivered response
> bytes=4294967272
> State=up
>
> Can you provide any hints on what could be going wrong? Other diagnostics
> to print out?
tags: | added: cleanup |
Changed in epics-base: | |
status: | New → Invalid |
see also bug 667384