Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
I set up a 2-node router network, with B connecting to A.
No clients.
Repeatedly killing and restarting B – giving 3 seconds after each kill and after each restart for the network to settle down. Repeated 100 times. The same router A ran for the duration of the test.
The 'ps' program, run repeatedly on router A, indicated that it was leaking about 82 KB per kill-and-restart. Using 'qdstat m' on A after each kill-and-restart showed the following difference between iteration 1 and iteration 100. ( Note, this shows growth of only 44 KB per iteration. )
As far as I looked into the past (about 1 year) I saw similar behavior.
In the chart below, the first column "size" is the number of bytes in a single struct of that type.
"In-threads" means how many of each struct are currently being used.
Note that, although there are no clients, the routers will be sending some messages to each other.
type size in-threads in-threads item byte
test 1 test 100 growth growth
{{ ======================================================================}}
qd_buffer_t 536 256 2944 2688 1440768
{{ qd_message_content_t 1056 128 1216 1088 1148928}}
{{ qd_iterator_t 160 448 7488 7040 1126400}}
{{ qd_parsed_field_t 88 256 2880 2624 230912}}
{{ qdr_delivery_t 248 256 1152 896 222208}}
{{ qd_message_t 160 256 1088 832 133120}}
{{ qd_connection_t 2320 32 64 32 74240}}
{{ qdr_general_work_t 64 64 448 384 24576}}
{{ qdr_link_t 360 192 256 64 23040}}
{{ qd_bitmask_t 24 192 1088 896 21504}}
{{ qdr_connection_work_t 48 64 384 320 15360}}
{{ qdr_link_work_t 48 64 384 320 15360}}
{{ qd_link_t 96 128 256 128 12288}}
{{ qdr_link_ref_t 24 64 448 384 9216}}
{{ qd_parsed_turbo_t 64 128 256 128 8192}}
{{ qd_link_ref_t 24 64 256 192 4608}}
{{ qdr_error_t 24 64 256 192 4608}}
{{ qd_deferred_call_t 32 64 192 128 4096}}
{{ qdr_terminus_t 64 192 256 64 4096}}
{{ qdr_delivery_ref_t 24 64 128 64 1536}}
( All other structs have zero growth. (Or, in one case, less.) )