1.4.16i possible memory leak?

  • Hi


    Tried to transfer 400G (300T plus files) across to servers using 1.4.16i in both. Files are jpeg 2000 lossless. Observed slow down of receiving refer with increase memory use up to 70,000 real and 240,000 in task manager. Receiving server return to normal speed on service restart. After several studies memory use increase builds-up again. transferred was done using command line --movestudies,servera,serverb,*
    This seems to affect only the x32 dgate64 does not seem affected


    thanks for any comments


    ajgg

  • Try to put:


    [lua]
    endassociation = print('--->' .. heapinfo())


    into the receiving sender. The sequence pf log lines with ---> should give some clue on the size of the leak in bytes and blocks.


    Marcel

  • Hi


    This is thelast lines of the log after 3hrs tranfer with slowdowm
    aI interupted the transfer
    memory 79,128 k
    virtual mem size 103,04 k


    recieving files in uncompressed format saving to jk2 lossless format.


    CT_SRV1] --->3001 small (129835); 112 medium (58564) 12 large (47942698) OK - end of heap
    [CT_SRV1] UPACS THREAD 7: ENDED AT: Sat Mar 24 15:17:26 2012
    [CT_SRV1] UPACS THREAD 7: TOTAL RUNNING TIME: 18052 SECONDS
    [CT_SRV1] --->2682 small (121170); 58 medium (42028) 11 large (47938490) OK - end of heap



    ajgg

  • Hi,


    from the log, the leak is about 5 very large objects.


    This is you:
    --->2682 small (121170); 58 medium (42028) 11 large (47938490) OK - end of heap


    This is my server freshly after startup
    ----> 2582 small (130987); 50 medium (38071) 6 large (348294) OK - end of heap


    difference:
    100 small objects, about 10 K (probably config difference)
    8 medium objects, about 4 K (probably config difference)
    5 large objects, about 47 MB


    The question is now where it leaks those objects. Can you see when the large object difference appears in the log?


    Marcel

  • Hi,


    Sorry but don,t know what to look for. Need some guidance. I will run transfer with debug set to 1. I can email the server log in compressed format it that will be ok?


    this will take a couple of hours



    ajgg

  • Hi,


    Look for the place where the number of large objects increase. A debug log is not necessary. Is there anything that happened 5 times during the transfer? Maybe a special kind of image. Or where there any error messages?


    Marcel

  • Hi,


    The serverlog does not show error messages, however, after a long series of save images this appears


    3/25/2012 1:09:53 PM [CONQUESTSRV3] Written file: D:\FS\Primary\0110863\1.3.12.2.1107.5.1.4.54546.30000006060523324701500009201_0002_000005_13326521930056.dcm
    3/25/2012 1:09:53 PM [CONQUESTSRV3] --->4424 small (160400); 222 medium (165692) 8 large (660450) OK - end of heap


    3/25/2012 1:09:53 PM [CONQUESTSRV3] Written file: D:\FS\Primary\0110863\1.3.12.2.1107.5.1.4.54546.30000006060523324701500009201_0002_000005_13326521930056.dcm
    3/25/2012 1:09:53 PM [CONQUESTSRV3] --->4424 small (160400); 222 medium (165692) 8 large (660450) OK - end of heap
    3/25/2012 1:09:53 PM [CONQUESTSRV3] [recompress]: recompressed with mode = jk (strip=0)



    3/25/2012 1:10:53 PM [CONQUESTSRV3] Written file: D:\FS\Primary\0108049\1.3.12.2.1107.5.1.4.54546.30000006040400381457800008227_0006_000288_13326522530252.dcm
    3/25/2012 1:10:53 PM [CONQUESTSRV3] --->5140 small (184270); 696 medium (666416) 59 large (3208954) OK - end of heap
    3/25/2012 1:10:53 PM [CONQUESTSRV3] [recompress]: recompressed with mode = jk (strip=0)


    3/25/2012 1:11:53 PM [CONQUESTSRV3] Written file: D:\FS\Primary\0108049\1.3.12.2.1107.5.1.4.54546.30000006040400381457800008926_0009_000106_13326523130451.dcm
    3/25/2012 1:11:53 PM [CONQUESTSRV3] --->8947 small (404364); 3112 medium (2482284) 1144 large (30790264) OK - end of heap
    3/25/2012 1:11:53 PM [CONQUESTSRV3] [recompress]: recompressed with mode = jk (strip=0)


    viewed the image file in the gui and it looks okay.



    I will send the log file in the email


    ajgg

  • Hi,


    after the single thread in the log (#14), there is one large block added. Can you also send the older log where 5 large blocks where added? How did you initiate the transfer again. Did you do that with dgate -- from the recieving sender?


    Marcel

  • Hi,


    It seems to be on start up of server from restart?



    3/26/2012 2:55:13 PM [CT_SRV1] DGATE (1.4.16i, build Tue Feb 21 22:15:10 2012, bits 32) is running as threaded server
    3/26/2012 2:55:13 PM [CT_SRV1] Database type: native MySQL connection
    3/26/2012 2:55:13 PM [CT_SRV1] Started 3 export queue thread(s)
    3/26/2012 2:55:13 PM [CT_SRV1] User interface test: local server is running!
    3/26/2012 2:55:13 PM [CT_SRV1] --->2597 small (120632); 58 medium (42028) 9 large (47528890) OK - end of heap
    3/26/2012 2:56:32 PM [CT_SRV1] DGATE (1.4.16i, build Tue Feb 21 22:15:10 2012, bits 32) is running as threaded server
    3/26/2012 2:56:32 PM [CT_SRV1] Database type: native MySQL connection
    3/26/2012 2:56:32 PM [CT_SRV1] Started 3 export queue thread(s)
    3/26/2012 2:56:32 PM [CT_SRV1] User interface test: local server is running!
    3/26/2012 2:56:32 PM [CT_SRV1] --->2596 small (120608); 58 medium (42028) 9 large (47528890) OK - end of heap
    20120326 14:56:37 DGATE (1.4.16i, build Tue Feb 21 22:15:10 2012, bits 32) is running as threaded server
    20120326 14:56:37 Started zip and cleanup thread
    20120326 14:56:37 Database type: native MySQL connection
    20120326 14:56:37 Started 3 export queue thread(s)
    3/26/2012 2:56:40 PM [CT_SRV1] Stopped zip and cleanup thread
    3/26/2012 2:56:40 PM [CT_SRV1] --->2586 small (120207); 58 medium (42028) 9 large (47528890) OK - end of heap
    3/26/2012 2:56:40 PM [CT_SRV1] User interface test: local server is running!
    3/26/2012 2:56:40 PM [CT_SRV1] --->2586 small (120255); 58 medium (42028) 9 large (47528890) OK - end of heap
    3/26/2012 2:56:46 PM [CT_SRV1]
    3/26/2012 2:56:46 PM [CT_SRV1] UPACS THREAD 2: STARTED AT: Mon Mar 26 14:56:46 2012
    3/26/2012 2:56:46 PM [CT_SRV1] Calling Application Title : "CTPACS "
    3/26/2012 2:56:46 PM [CT_SRV1] Called Application Title : "CT_SRV1 "
    3/26/2012 2:56:46 PM [CT_SRV1] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 116794
    3/26/2012 2:56:46 PM [CT_SRV1] Presentation Context 0 "1.2.840.10008.5.1.4.1.1.2" 1
    3/26/2012 2:56:57 PM [CT_SRV1] Written file: L:\main_fs\ct\20120326\1.3.12.2.1107.5.1.4.54546.30000012032605593326500000031\1.3.12.2.1107.5.1.4.54546.30000012032605593326500000032\1.3.12.2.1107.5.1.4.54546.30000012032605494921800001251.dcm
    3/26/2012 2:56:57 PM [CT_SRV1] --->2589 small (120293); 58 medium (42028) 10 large (47537532) OK - end of heap
    3/26/2012 2:56:57 PM [CT_SRV1] UPACS THREAD 2: ENDED AT: Mon Mar 26 14:56:57 2012
    3/26/2012 2:56:57 PM [CT_SRV1] UPACS THREAD 2: TOTAL RUNNING TIME: 11 SECONDS
    3/26/2012 2:57:30 PM [CT_SRV1] --->2587 small (120225); 58 medium (42028) 9 large (47528890) OK - end of heap


    I will mail my config.


    added this extra lines


    # Configuration of forwarding and/or converter programs to export DICOM slices
    ForwardAssociationLevel = GLOBAL
    ForwardAssociationCloseDelay = 600
    ForwardAssociationRefreshDelay = 3600
    ForwardAssociationRelease = 1


    ExportConverters = 3
    ExportCallingAE0 = AN_LEO06806
    ExportConverter0 = ifnumgreater "%V0020,0011", "500";forward series to CTPACS



    # Configuration of rules to modify, log or reject incoming DICOM slices


    ForwardCollectDelay = 30
    MaximumExportRetries = 0
    MaximumDelayedFetchForwardRetries = 0


    QueryConverter0 = ifnotequal "%v0008,0052","STUDY";stop;ifnotempty "%V0010,0020";stop;delete 0020,1206;delete 0020,1208


    [lua]
    endassociation = print('--->' .. heapinfo())


    ajgg

  • Hi,


    I now believe that is may be your export queues that are so huge (look at QueueSize). So maybe there is not a leak at all but just a slow cleanup of data while the server is running. Exportconverters will also duplicate images in memory while they are running. Why do you have 3 started, while you use only 1?


    Marcel

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!