dicom/ruby-dicom — Issue #29: Large DICOM image storage objacts leads to crash
Author: FelixPetriconi
Created: 2011-10-26 14:50:41+00:00
State: open

We have here quite large test data (Breast TOMO IOD) objects that have an uncompressed size of about 600MB. When I try open such an object and send it to an association the library crashes with the following stack trace:

I, [2011-10-26T16:04:39.803531 #4760] INFO -- DICOM: The DICOM file has been successfully parsed.
I, [2011-10-26T16:04:39.894351 #4760] INFO -- DICOM: Association successfully negotiated with host DEFAULT (127.0.0.1).
I, [2011-10-26T16:04:39.896304 #4760] INFO -- DICOM: All 2 presentation contexts were accepted by host DEFAULT (127.0.0.1).
C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_write.rb:137:in `slice!': failed to allocate memory (NoMemoryError)
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_write.rb:137:in `block in add'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_write.rb:137:in `times'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_write.rb:137:in `add'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_write.rb:311:in `write_value'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_write.rb:223:in `write_data_element'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_write.rb:205:in `block in write_data_elements'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_write.rb:180:in `each'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_write.rb:180:in `write_data_elements'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_write.rb:104:in `encode_segments'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_object.rb:235:in `encode_segments'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_client.rb:692:in `block in perform_send'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_client.rb:673:in `each'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_client.rb:673:in `each_with_index'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_client.rb:673:in `perform_send'
from C:/JENKINS_HOME/workspace/CukeTest/ThirdParty/OEM/Ruby/lib/ruby/gems/1.9.1/gems/dicom-0.9.2/lib/dicom/d_client.rb:385:in `send'

The machine is a Windows 7 64 bit workstation.

On request I could make such an object available.