dcjones / quip

Compressing next-generation sequencing data with extreme prejudice.
http://www.cs.washington.edu/homes/dcjones/quip/
BSD 3-Clause "New" or "Revised" License
78 stars 10 forks source link

segfault when testing qp file. #2

Closed ghuls closed 12 years ago

ghuls commented 12 years ago

Testing the generated qp file: $ strace ./src/quip -t /media/datastore6/lcb/NGS_cancer/patient_samples/TLE93/RNA/TLE93_read1.clean.fq.qp execve("./src/quip", ["./src/quip", "-t", "/media/datastore6/lcb/NGScancer"...], [/* 35 vars /]) = 0 brk(0) = 0x162c000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48d15d4000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("/software/root/lib/tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/software/root/lib/tls/x86_64", 0x7fffc47a6610) = -1 ENOENT (No such file or directory) open("/software/root/lib/tls/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/software/root/lib/tls", 0x7fffc47a6610) = -1 ENOENT (No such file or directory) open("/software/root/lib/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/software/root/lib/x86_64", 0x7fffc47a6610) = -1 ENOENT (No such file or directory) open("/software/root/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/software/root/lib", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=139936, ...}) = 0 mmap(NULL, 139936, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f48d15b1000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\0\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=140254, ...}) = 0 mmap(NULL, 2217000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f48d1198000 mprotect(0x7f48d11b0000, 2097152, PROT_NONE) = 0 mmap(0x7f48d13b0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7f48d13b0000 mmap(0x7f48d13b2000, 13352, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f48d13b2000 close(3) = 0 open("tls/x86_64/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("x86_64/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/software/root/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\360\1\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=1638120, ...}) = 0 mmap(NULL, 3749080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f48d0e04000 mprotect(0x7f48d0f8e000, 2093056, PROT_NONE) = 0 mmap(0x7f48d118d000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x189000) = 0x7f48d118d000 mmap(0x7f48d1192000, 21720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f48d1192000 close(3) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48d15b0000 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48d15ae000 arch_prctl(ARCH_SET_FS, 0x7f48d15ae720) = 0 mprotect(0x7f48d118d000, 16384, PROT_READ) = 0 mprotect(0x7f48d13b0000, 4096, PROT_READ) = 0 mprotect(0x69f000, 4096, PROT_READ) = 0 mprotect(0x7f48d15d6000, 4096, PROT_READ) = 0 munmap(0x7f48d15b1000, 139936) = 0 set_tid_address(0x7f48d15ae9f0) = 36620 set_robust_list(0x7f48d15aea00, 0x18) = 0 futex(0x7fffc47a6eac, FUTEX_WAKE_PRIVATE, 1) = 0 futex(0x7fffc47a6eac, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, 7f48d15ae720) = -1 EAGAIN (Resource temporarily unavailable) rt_sigaction(SIGRTMIN, {0x7f48d119d740, [], SA_RESTORER|SA_SIGINFO, 0x7f48d11a7c60}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0x7f48d119d7d0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f48d11a7c60}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192_1024, rlim_max=RLIM_INFINITY}) = 0 brk(0) = 0x162c000 brk(0x164d000) = 0x164d000 mmap(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48d152d000 mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48d142c000 open("/media/datastore6/lcb/NGS_cancer/patient_samples/TLE93/RNA/TLE93_read1.clean.fq.qp", O_RDONLY|O_NOCTTY) = 3 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) fstat(3, {st_mode=S_IFREG|0644, st_size=2571275966, ...}) = 0 mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48d15c4000 lseek(3, 0, SEEK_CUR) = 0 munmap(0x7f48d15c4000, 65536) = 0 brk(0x166e000) = 0x166e000 brk(0x168f000) = 0x168f000 brk(0x16b0000) = 0x16b0000 brk(0x16d1000) = 0x16d1000 brk(0x16f2000) = 0x16f2000 brk(0x1713000) = 0x1713000 brk(0x1734000) = 0x1734000 brk(0x1755000) = 0x1755000 brk(0x1776000) = 0x1776000 brk(0x1797000) = 0x1797000 brk(0x17b8000) = 0x17b8000 brk(0x17d9000) = 0x17d9000 brk(0x17fa000) = 0x17fa000 brk(0x181b000) = 0x181b000 brk(0x183c000) = 0x183c000 brk(0x185d000) = 0x185d000 brk(0x187e000) = 0x187e000 brk(0x189f000) = 0x189f000 brk(0x18c0000) = 0x18c0000 brk(0x18e1000) = 0x18e1000 brk(0x1902000) = 0x1902000 brk(0x1923000) = 0x1923000 brk(0x1944000) = 0x1944000 brk(0x1965000) = 0x1965000 brk(0x1986000) = 0x1986000 mmap(NULL, 276828160, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48c0603000 mmap(NULL, 274432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48d13e9000 mmap(NULL, 2367488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48c03c1000 mmap(NULL, 88772608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48baf18000 read(3, "\377QUIP\0\1", 7) = 7 read(3, "\0\t\327\210", 4) = 4 read(3, "\3\342\10\250", 4) = 4 read(3, "\0\0\0e", 4) = 4 read(3, "\0\t\327\210", 4) = 4 read(3, "\2\31\265\331", 4) = 4 read(3, "\0&\212I", 4) = 4 mmap(NULL, 2527232, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48bacaf000 read(3, "\256w\255=\337G\240\373", 8) = 8 read(3, "\3\342\10\250", 4) = 4 read(3, "\0\211\35g", 4) = 4 mmap(NULL, 8986624, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48ba41d000 read(3, "\264'x\260{\243\5\314", 8) = 8 read(3, "\3\342\10\250", 4) = 4 read(3, "\1^u\271", 4) = 4 mmap(NULL, 22970368, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48b8e35000 read(3, "\253\305Hg3\25Cc", 8) = 8 read(3, "@>q\2157-\247K}\273T|\245=;o\250\230\34\370\244\345\250)g\251\246$=(o-"..., 2525769) = 2525769 read(3, "\0=\275\n\177\376\220\364\277\240\21\203h`\340}~\361-\367\334r\362m;g\362\356\347AC1"..., 8985959) = 8985959 read(3, "\t\6\376\251\347\232q\306\30a\226\230Ye\225U\206\26YeV]V\30YUXae\225Qv"..., 22967737) = 22967737 mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f48b8634000 brk(0x19a7000) = 0x19a7000 mprotect(0x7f48b8634000, 4096, PROT_NONE) = 0 clone(child_stack=0x7f48b8e33fd0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f48b8e349d0, tls=0x7f48b8e34700, child_tidptr=0x7f48b8e349d0) = 36621 mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f48b7e33000 mprotect(0x7f48b7e33000, 4096, PROT_NONE) = 0 clone(child_stack=0x7f48b8632fd0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f48b86339d0, tls=0x7f48b8633700, child_tidptr=0x7f48b86339d0) = 36622 mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f48b73f0000 mprotect(0x7f48b73f0000, 4096, PROT_NONE) = 0 clone(child_stack=0x7f48b7beffd0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f48b7bf09d0, tls=0x7f48b7bf0700, child_tidptr=0x7f48b7bf09d0) = 36623 futex(0x7f48b8e349d0, FUTEX_WAIT, 36621, NULL) = 0 futex(0x7f48b86339d0, FUTEX_WAIT, 36622, NULL <unfinished ...> +++ killed by SIGSEGV +++ Segmentation fault

Decompressing: $ strace ./src/quip -c -d /media/datastore6/lcb/NGS_cancer/patient_samples/TLE93/RNA/TLE93_read1.clean.fq.qp > /media/datastore6/lcb/NGS_cancer/patient_samples/TLE93/RNA/TLE93_read1.clean.fq.qp-decompressed.fastq execve("./src/quip", ["./src/quip", "-c", "-d", "/media/datastore6/lcb/NGScancer"...], [/* 35 vars /]) = 0 brk(0) = 0x7a5000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa324186000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("/software/root/lib/tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/software/root/lib/tls/x86_64", 0x7fffaac2a450) = -1 ENOENT (No such file or directory) open("/software/root/lib/tls/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/software/root/lib/tls", 0x7fffaac2a450) = -1 ENOENT (No such file or directory) open("/software/root/lib/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/software/root/lib/x86_64", 0x7fffaac2a450) = -1 ENOENT (No such file or directory) open("/software/root/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/software/root/lib", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=139936, ...}) = 0 mmap(NULL, 139936, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fa324163000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\0\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=140254, ...}) = 0 mmap(NULL, 2217000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fa323d4a000 mprotect(0x7fa323d62000, 2097152, PROT_NONE) = 0 mmap(0x7fa323f62000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7fa323f62000 mmap(0x7fa323f64000, 13352, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fa323f64000 close(3) = 0 open("tls/x86_64/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("x86_64/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/software/root/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\360\1\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=1638120, ...}) = 0 mmap(NULL, 3749080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fa3239b6000 mprotect(0x7fa323b40000, 2093056, PROT_NONE) = 0 mmap(0x7fa323d3f000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x189000) = 0x7fa323d3f000 mmap(0x7fa323d44000, 21720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fa323d44000 close(3) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa324162000 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa324160000 arch_prctl(ARCH_SET_FS, 0x7fa324160720) = 0 mprotect(0x7fa323d3f000, 16384, PROT_READ) = 0 mprotect(0x7fa323f62000, 4096, PROT_READ) = 0 mprotect(0x69f000, 4096, PROT_READ) = 0 mprotect(0x7fa324188000, 4096, PROT_READ) = 0 munmap(0x7fa324163000, 139936) = 0 set_tid_address(0x7fa3241609f0) = 48982 set_robust_list(0x7fa324160a00, 0x18) = 0 futex(0x7fffaac2acec, FUTEX_WAKE_PRIVATE, 1) = 0 futex(0x7fffaac2acec, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, 7fa324160720) = -1 EAGAIN (Resource temporarily unavailable) rt_sigaction(SIGRTMIN, {0x7fa323d4f740, [], SA_RESTORER|SA_SIGINFO, 0x7fa323d59c60}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0x7fa323d4f7d0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7fa323d59c60}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192_1024, rlim_max=RLIM_INFINITY}) = 0 brk(0) = 0x7a5000 brk(0x7c6000) = 0x7c6000 mmap(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa3240df000 mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa323fde000 open("/media/datastore6/lcb/NGS_cancer/patient_samples/TLE93/RNA/TLE93_read1.clean.fq.qp", O_RDONLY|O_NOCTTY) = 3 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) fstat(3, {st_mode=S_IFREG|0644, st_size=2571275966, ...}) = 0 mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa324176000 lseek(3, 0, SEEK_CUR) = 0 munmap(0x7fa324176000, 65536) = 0 brk(0x7e7000) = 0x7e7000 brk(0x808000) = 0x808000 brk(0x829000) = 0x829000 brk(0x84a000) = 0x84a000 brk(0x86b000) = 0x86b000 brk(0x88c000) = 0x88c000 brk(0x8ad000) = 0x8ad000 brk(0x8ce000) = 0x8ce000 brk(0x8ef000) = 0x8ef000 brk(0x910000) = 0x910000 brk(0x931000) = 0x931000 brk(0x952000) = 0x952000 brk(0x973000) = 0x973000 brk(0x994000) = 0x994000 brk(0x9b5000) = 0x9b5000 brk(0x9d6000) = 0x9d6000 brk(0x9f7000) = 0x9f7000 brk(0xa18000) = 0xa18000 brk(0xa39000) = 0xa39000 brk(0xa5a000) = 0xa5a000 brk(0xa7b000) = 0xa7b000 brk(0xa9c000) = 0xa9c000 brk(0xabd000) = 0xabd000 brk(0xade000) = 0xade000 brk(0xaff000) = 0xaff000 mmap(NULL, 276828160, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa3131b5000 mmap(NULL, 274432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa323f9b000 mmap(NULL, 2367488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa312f73000 mmap(NULL, 88772608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa30daca000 read(3, "\377QUIP\0\1", 7) = 7 read(3, "\0\t\327\210", 4) = 4 read(3, "\3\342\10\250", 4) = 4 read(3, "\0\0\0e", 4) = 4 read(3, "\0\t\327\210", 4) = 4 read(3, "\2\31\265\331", 4) = 4 read(3, "\0&\212I", 4) = 4 mmap(NULL, 2527232, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa30d861000 read(3, "\256w\255=\337G\240\373", 8) = 8 read(3, "\3\342\10\250", 4) = 4 read(3, "\0\211\35g", 4) = 4 mmap(NULL, 8986624, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa30cfcf000 read(3, "\264'x\260{\243\5\314", 8) = 8 read(3, "\3\342\10\250", 4) = 4 read(3, "\1^u\271", 4) = 4 mmap(NULL, 22970368, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa30b9e7000 read(3, "\253\305Hg3\25Cc", 8) = 8 read(3, "@>q\2157-\247K}\273T|\245=;o\250\230\34\370\244\345\250)g\251\246$=(o-"..., 2525769) = 2525769 read(3, "\0=\275\n\177\376\220\364\277\240\21\203h`\340}~\361-\367\334r\362m;g\362\356\347AC1"..., 8985959) = 8985959 read(3, "\t\6\376\251\347\232q\306\30a\226\230Ye\225U\206\26YeV]V\30YUXae\225Qv"..., 22967737) = 22967737 mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fa30b1e6000 brk(0xb20000) = 0xb20000 mprotect(0x7fa30b1e6000, 4096, PROT_NONE) = 0 clone(child_stack=0x7fa30b9e5fd0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fa30b9e69d0, tls=0x7fa30b9e6700, child_tidptr=0x7fa30b9e69d0) = 48996 mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fa30a9e5000 mmap(NULL, 134217728, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7fa3029e5000 munmap(0x7fa3029e5000, 23179264) = 0 munmap(0x7fa308000000, 43929600) = 0 mprotect(0x7fa304000000, 135168, PROT_READ|PROT_WRITE) = 0 mprotect(0x7fa30a9e5000, 4096, PROT_NONE) = 0 clone(child_stack=0x7fa30b1e4fd0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fa30b1e59d0, tls=0x7fa30b1e5700, child_tidptr=0x7fa30b1e59d0) = 48997 mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fa309fa2000 mprotect(0x7fa309fa2000, 4096, PROT_NONE) = 0 clone(child_stack=0x7fa30a7a1fd0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fa30a7a29d0, tls=0x7fa30a7a2700, child_tidptr=0x7fa30a7a29d0) = 48998 futex(0x7fa30b9e69d0, FUTEX_WAIT, 48996, NULL) = 0 futex(0x7fa30b1e59d0, FUTEX_WAIT, 48997, NULL <unfinished ...> +++ killed by SIGSEGV +++ Segmentation fault

Listing the total number of reads and bases works fine (or at least not a segfault). $ ./src/quip -l /media/datastore6/lcb/NGS_cancer/patient_samples/TLE93/RNA/TLE93_read1.clean.fq.qp Reads Bases Uncompressed Compressed Ratio Filename 48739306 4922669906 12819732519 2571275959 0.2006 /media/datastore6/lcb/NGS_cancer/patient_samples/TLE93/RNA/TLE93_read1.clean.fq.qp

dcjones commented 12 years ago

Interesting. I can't reproduce this on my test files, but fastq takes many forms and I'm clearly not handling your form correctly.

Could you please post a short snippet of the file you are trying to compress?

ghuls commented 12 years ago

I tracked the segfault down to the quip_in_read function in quiplib.c

I think pthread_create fails. pthread_create should return 0, when it succeeds: https://computing.llnl.gov/tutorials/pthreads/man/pthread_create.txt

Your code doesn't check for that.

This is some debugging code I wrote:

if ( pthread_create(&id_thread, &attr, id_decompressorthread, (void) D) != 0 ) { fprintf ( stderr, "pthread id create: OK\n"); } else { fprintf ( stderr, "pthread id create: not OK\n"); } if ( pthread_create(&seq_thread, &attr, seq_decompressorthread, (void) D) != 0 ) { fprintf ( stderr, "pthread seq create: OK\n"); } else { fprintf ( stderr, "pthread seq create: not OK\n"); } if ( pthread_create(&qual_thread, &attr, qual_decompressor_thread, (void*) D) != 0 ) { fprintf ( stderr, "pthread qual create: OK\n"); } else { fprintf ( stderr, "pthread qual create: not OK\n"); } pthread id create: not OK pthread seq create: not OK pthread qual create: not OK

ghuls commented 12 years ago

Here is a small sample. But now I get a segfault on compressing too: @HWI-ST571:100:D08NGACXX:4:1101:1405:2090 1:N:0:CTTGTA NGCAACTGTCTGTCTCATATCACGAACAGCAAAGCGACCCAAAGATGGATAGTCTGAGAAGCTCTCAACACACATGGGCTTGCCAGGAACCATATCAACAA +

1=DDFFFHHHHHIJJJJJIIJJJJJIJIIJJJIIJJJJIHIJEGIIHGCIGHJIJJIBCHEFHGEDDDF;?>BCCDDBCDBDDCDBDDBBB@C>@CDCDD

@HWI-ST571:100:D08NGACXX:4:1101:1363:2103 1:N:0:CTTGTA NTCTTTTTAAGTTATCGTAACTGTTCCTGTGGTTGCTTTGAAAGAACCCTTCCTTACCTGGTGTGTTTTCTATAAATCTTCATAGGTTATTTTGATTCTCT +

1=DDDDDFDHHHJJJJGIJGGIGHJIJGHFHDGHIJIJIJJJIGIIEGHCGGIJGIHIIHFH=CGGHI;C=AECEFEFEDCCAACAC@CDEE:(;A5@A@

@HWI-ST571:100:D08NGACXX:4:1101:1475:2112 1:N:0:CTTGTA CCACAATTTGCGCGCTCTCTTTCTGCTGCTCCCCAGCTCTCGGATACAGCCGACACCATGGGTTTCGGAGACCTGAAAAGCCCTGCCGGCCTCCAGGTGCT + ?@CFFFFFHFHGFIIIJJJIIIHJJICHGIGIGGIGGIGCGGIIIJEIJJ;AEHEDDD@@CDCBDCBD<@9?BDD>CCCDDBDDBDA@B@B??39AC@3 @HWI-ST571:100:D08NGACXX:4:1101:1458:2127 1:N:0:CTTGTA GCCAGTTGTCTTGCCACCACCAAAATGAGTTCTGAATCCAAATACAAAGATGACATCCGGTGTGGTCTTGTACATTTTGGCTAGTTTTTCCCGAATTTCTG + @@CDDDDDHGHHHIJIJGGIGIJICHIEHHIJJJJIJJIIJJIJFIJJIGHHIIIIJJIJ;AFGG@;CEEAEFEFBDDDCECEEADDDBCDDBBDDBDCC#

dcjones commented 12 years ago

I've found the most likely source.

This version of Quip assumes 'N's have a quality score of '!', whereas in your data '#' is used. This is overly rigid, and I'm working on a fix to support more diverse quality score schemes, which I hope to have together in the next few days.

dcjones commented 12 years ago

I've completed a patch should let Quip work with most quality score schemes. If you would, try the latest version at let me know if you run into more trouble.

Thanks again for the debugging assistance.

ghuls commented 12 years ago

I tested the sample I tried before. It works fine now.

I compressed TLE93_read1.clean.fq to TLE93_read1.clean.fq.qp and decompressed it again to TLE93_read1.clean-dequiped.fq to see if it decompressed right. 12G TLE93_read1.clean.fq 12G TLE93_read1.clean-dequiped.fq 4.5G TLE93_read1.clean.fq.gz 2.5G TLE93_read1.clean.fq.qp The checksums match: $ md5sum TLE93_read1.clean.fq TLE93_read1.clean-dequiped.fq 596820aace4269b915b48ec3b61bfd8d TLE93_read1.clean.fq 596820aace4269b915b48ec3b61bfd8d TLE93_read1.clean-dequiped.fq

Thanks for fixing the problems, I discovered.

I would suggest to check the return value of pthread_create and pthread_join, to be sure that the threads are actually created correctly, instead of just assuming that they were.

dcjones commented 12 years ago

Right, that's a good idea. The latest commit now checks for pthreads errors.