sebhtml / ray

Ray -- Parallel genome assemblies for parallel DNA sequencing
http://denovoassembler.sf.net
Other
65 stars 12 forks source link

Ray reports a problem when file names are too short, but this should work without problem #147

Closed sebhtml closed 11 years ago

sebhtml commented 11 years ago

Commands:

rm -rf Tron-14-test-1 mpiexec -n 24 ./Ray -p R1.fastq R2.fastq -o Tron-14-test-1 -read-write-checkpoints RayStuff

Expected:

Nice assembly run

Actual:

Rank 0 is fetching file R1.fastq with lazy loading (please wait...) terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr [cp2028:14218] * Process received signal * [cp2028:14218] Signal: Aborted (6) [cp2028:14218] Signal code: (-6) Rank 1 is fetching file R2.fastq with lazy loading (please wait...) terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr [cp2028:14219] * Process received signal * [cp2028:14219] Signal: Aborted (6) [cp2028:14219] Signal code: (-6) [cp2028:14218] [ 0] /lib64/libpthread.so.0() [0x36bbc0f490] [cp2028:14218] [ 1] /lib64/libc.so.6(gsignal+0x35) [0x36bb832945] [cp2028:14218] [ 2] /lib64/libc.so.6(abort+0x175) [0x36bb834125] [cp2028:14218] [ 3] /opt/gcc/4.7.0//lib64/libstdc++.so.6(_ZN9gnu_cxx27__verbose_terminate_handlerEv+0x11d) [0x2aafe76ec99d] [cp2028:14218] [ 4] /opt/gcc/4.7.0//lib64/libstdc++.so.6(+0x5caa6) [0x2aafe76eaaa6] [cp2028:14218] [ 5] /opt/gcc/4.7.0//lib64/libstdc++.so.6(+0x5cad3) [0x2aafe76eaad3] [cp2028:14218] [ 6] /opt/gcc/4.7.0//lib64/libstdc++.so.6(+0x5ccfe) [0x2aafe76eacfe] [cp2028:14218] [ 7] /opt/gcc/4.7.0//lib64/libstdc++.so.6(_ZSt20throw_out_of_rangePKc+0x5d) [0x2aafe7741f8d] [cp2028:14218] [ 8] ./Ray(_ZN13LoaderFactory10makeLoaderESs+0x616) [0x55bc96] [cp2028:14218] [ 9] ./Ray(_ZN6Loader4loadESsb+0x20f) [0x55cd5f] [cp2028:14218] [10] ./Ray(_ZN11Partitioner38call_RAY_SLAVE_MODE_COUNT_FILE_ENTRIESEv+0xb37) [0x4e6537] [cp2028:14218] [11] ./Ray(_ZN11ComputeCore10runVanillaEv+0xb6) [0x58da16] [cp2028:14218] [12] ./Ray(_ZN11ComputeCore3runEv+0x6b) [0x58dacb] [cp2028:14218] [13] ./Ray(_ZN7Machine5startEv+0x135e) [0x47124e] [cp2028:14218] [14] ./Ray(_ZN11RankProcessI7MachineE3runEv+0x24b) [0x46ef1b] [cp2028:14218] [15] ./Ray(main+0xc7) [0x46f197] [cp2028:14218] [16] /lib64/libc.so.6(libc_start_main+0xfd) [0x36bb81ec9d] [cp2028:14218] [17] ./Ray() [0x46c219] [cp2028:14218] * End of error message * [cp2028:14219] [ 0] /lib64/libpthread.so.0() [0x36bbc0f490] [cp2028:14219] [ 1] /lib64/libc.so.6(gsignal+0x35) [0x36bb832945] [cp2028:14219] [ 2] /lib64/libc.so.6(abort+0x175) [0x36bb834125] [cp2028:14219] [ 3] /opt/gcc/4.7.0//lib64/libstdc++.so.6(_ZN9__gnu_cxx27verbose_terminate_handlerEv+0x11d) [0x2abc9f7da99d] [cp2028:14219] [ 4] /opt/gcc/4.7.0//lib64/libstdc++.so.6(+0x5caa6) [0x2abc9f7d8aa6] [cp2028:14219] [ 5] /opt/gcc/4.7.0//lib64/libstdc++.so.6(+0x5cad3) [0x2abc9f7d8ad3] [cp2028:14219] [ 6] /opt/gcc/4.7.0//lib64/libstdc++.so.6(+0x5ccfe) [0x2abc9f7d8cfe] [cp2028:14219] [ 7] /opt/gcc/4.7.0//lib64/libstdc++.so.6(_ZSt20throw_out_of_rangePKc+0x5d) [0x2abc9f82ff8d] [cp2028:14219] [ 8] ./Ray(_ZN13LoaderFactory10makeLoaderESs+0x616) [0x55bc96] [cp2028:14219] [ 9] ./Ray(_ZN6Loader4loadESsb+0x20f) [0x55cd5f] [cp2028:14219] [10] ./Ray(_ZN11Partitioner38call_RAY_SLAVE_MODE_COUNT_FILE_ENTRIESEv+0xb37) [0x4e6537] [cp2028:14219] [11] ./Ray(_ZN11ComputeCore10runVanillaEv+0xb6) [0x58da16] [cp2028:14219] [12] ./Ray(_ZN11ComputeCore3runEv+0x6b) [0x58dacb] [cp2028:14219] [13] ./Ray(_ZN7Machine5startEv+0x135e) [0x47124e] [cp2028:14219] [14] ./Ray(_ZN11RankProcessI7MachineE3runEv+0x24b) [0x46ef1b] [cp2028:14219] [15] ./Ray(main+0xc7) [0x46f197] [cp2028:14219] [16] /lib64/libc.so.6(libc_start_main+0xfd) [0x36bb81ec9d] [cp2028:14219] [17] ./Ray() [0x46c219] [cp2028:14219] * End of error message *

sebhtml commented 11 years ago

This however works quite fine:

mpiexec -n 24 ./Ray -p \ MiSeq_Ecoli_MG1655_110527_R1.fastq \ MiSeq_Ecoli_MG1655_110527_R2.fastq \ -o Tron-14-test-1 -read-write-checkpoints RayStuff

Seems to be in [cp2028:14219] [ 8] ./Ray(_ZN13LoaderFactory10makeLoaderESs+0x616) [0x55bc96]

sebhtml commented 11 years ago

This method should actually try to validate the file name length before computing subsequences:

LoaderInterface*LoaderFactory::makeLoader(string file){

R1.fastq has a length of 8.

A lot of tests done in this class are on more than 8 symbols, so a test is needed to check the length,

This is quite easy to fix actually.

sebhtml commented 11 years ago

LoaderInterface*LoaderFactory::makeLoader(string file){

sebhtml commented 11 years ago

file = code/plugin_SequencesLoader/LoaderFactory.cpp

sebhtml commented 11 years ago

d06809cd9d68db401f38c076ef325fc75ff8953f