[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#956324: Clustalo bus error on mipsel (Was: Bug#956324: python-biopython: FTBFS on mipsel)



Hi Matthew,

On Thu, Apr 30, 2020 at 05:53:29PM -0700, Matthew Fernandez wrote:
> 
> Is the priority goal here to simply ship a non-crashing clustalo mipsel binary that BioPython can depend on? If so, maybe we can just disable compiler optimisation (-O0) and this may avoid provoking the bus error. Of course this doesn’t fix the underlying problem(s), but it looks as if debugging this to its root cause is going to result in the Debian package carrying a lot of invasive dquilt patches on top of upstream. OTOH I don’t know the performance requirements of BioPython and maybe an unoptimised clustalo is unacceptable to it.

I need to admit the priority goal is to be really sure that the clustalo
code has no hidden issues which might crash on architectures that are
used in practical applications.  I would have no problems to simply
exclude clustalo for mipsel architecture completely - if I could be sure
that it works properly.  So the major reason for this debugging session
is to make sure that clustalo runs properly *on all other* architectures
while loosing mipsel would be no real loss for practival usage of
clustalo and its rdepends.

To follow your hints I cared for -O0 optimisation flags (which is
possible via configure options which uncovers some syntax errors in
comments :-( which I fixed as well) and tried to rebuild on the mipsel
host provided by Debian.  Unfortunately the bus error remains.

Due to the advise here that valgrind works properly only for -O0 I'm
reposting the valgrind output here:


(sid_mipsel-dchroot)tille@eller:~/clustalo$ valgrind -s src/clustalo -i debian/tests/biopython_testdata/f002 --guidetree-out temp_test.dnd -o temp_test.aln --outfmt clustal --force
==13209== Memcheck, a memory error detector
==13209== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==13209== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==13209== Command: src/clustalo -i debian/tests/biopython_testdata/f002 --guidetree-out temp_test.dnd -o temp_test.aln --outfmt clustal --force
==13209== 
==13209== Conditional jump or move depends on uninitialised value(s)
==13209==    at 0x4007828: cached_fpabi_reject_phdr_p (dl-machine-reject-phdr.h:57)
==13209==    by 0x4007828: elf_machine_reject_phdr_p (dl-machine-reject-phdr.h:217)
==13209==    by 0x4008080: open_verify.constprop.0 (dl-load.c:1688)
==13209==    by 0x4009D7C: _dl_map_object (dl-load.c:2181)
==13209==    by 0x40011F8: map_doit (rtld.c:607)
==13209==    by 0x401B2A8: _dl_catch_exception (dl-error-skeleton.c:196)
==13209==    by 0x401B334: _dl_catch_error (dl-error-skeleton.c:215)
==13209==    by 0x4001138: do_preload (rtld.c:778)
==13209==    by 0x4002560: handle_preload_list (rtld.c:879)
==13209==    by 0x4005B08: dl_main (rtld.c:1684)
==13209==    by 0x401A094: _dl_sysdep_start (dl-sysdep.c:253)
==13209==    by 0x400199C: _dl_start_final (rtld.c:447)
==13209==    by 0x4001D44: _dl_start (rtld.c:539)
==13209== 
==13209== Invalid read of size 1
==13209==    at 0x486F558: ??? (in /usr/lib/mipsel-linux-gnu/libargtable2.so.0.1.8)
==13209==    by 0x486F5F0: ??? (in /usr/lib/mipsel-linux-gnu/libargtable2.so.0.1.8)
==13209==  Address 0x4d655c5 is 0 bytes after a block of size 37 alloc'd
==13209==    at 0x484B89C: malloc (in /usr/lib/mipsel-linux-gnu/valgrind/vgpreload_memcheck-mips32-linux.so)
==13209==    by 0x134D1C: CkMalloc (util.c:83)
==13209== 
==13209== Invalid read of size 4
==13209==    at 0x12D5CC: PairDistances (pair_dist.c:346)
==13209==    by 0x119410: AlignmentOrder (clustal-omega.c:835)
==13209==    by 0x11A6C4: Align (clustal-omega.c:1221)
==13209==    by 0x1171C8: MyMain (mymain.c:1192)
==13209==    by 0x113CCC: main (main.cpp:469)
==13209==  Address 0xffff8060 is not stack'd, malloc'd or (recently) free'd
==13209== 
==13209== 
==13209== Process terminating with default action of signal 10 (SIGBUS)
==13209==    at 0x12D5CC: PairDistances (pair_dist.c:346)
==13209==    by 0x119410: AlignmentOrder (clustal-omega.c:835)
==13209==    by 0x11A6C4: Align (clustal-omega.c:1221)
==13209==    by 0x1171C8: MyMain (mymain.c:1192)
==13209==    by 0x113CCC: main (main.cpp:469)
==13209== 
==13209== HEAP SUMMARY:
==13209==     in use at exit: 8,039 bytes in 34 blocks
==13209==   total heap usage: 112 allocs, 78 frees, 77,811 bytes allocated
==13209== 
==13209== LEAK SUMMARY:
==13209==    definitely lost: 128 bytes in 2 blocks
==13209==    indirectly lost: 0 bytes in 0 blocks
==13209==      possibly lost: 0 bytes in 0 blocks
==13209==    still reachable: 7,911 bytes in 32 blocks
==13209==         suppressed: 0 bytes in 0 blocks
==13209== Rerun with --leak-check=full to see details of leaked memory
==13209== 
==13209== Use --track-origins=yes to see where uninitialised values come from
==13209== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
==13209== 
==13209== 1 errors in context 1 of 3:
==13209== Invalid read of size 4
==13209==    at 0x12D5CC: PairDistances (pair_dist.c:346)
==13209==    by 0x119410: AlignmentOrder (clustal-omega.c:835)
==13209==    by 0x11A6C4: Align (clustal-omega.c:1221)
==13209==    by 0x1171C8: MyMain (mymain.c:1192)
==13209==    by 0x113CCC: main (main.cpp:469)
==13209==  Address 0xffff8060 is not stack'd, malloc'd or (recently) free'd
==13209== 
==13209== 
==13209== 1 errors in context 2 of 3:
==13209== Invalid read of size 1
==13209==    at 0x486F558: ??? (in /usr/lib/mipsel-linux-gnu/libargtable2.so.0.1.8)
==13209==    by 0x486F5F0: ??? (in /usr/lib/mipsel-linux-gnu/libargtable2.so.0.1.8)
==13209==  Address 0x4d655c5 is 0 bytes after a block of size 37 alloc'd
==13209==    at 0x484B89C: malloc (in /usr/lib/mipsel-linux-gnu/valgrind/vgpreload_memcheck-mips32-linux.so)
==13209==    by 0x134D1C: CkMalloc (util.c:83)
==13209== 
==13209== 
==13209== 1 errors in context 3 of 3:
==13209== Conditional jump or move depends on uninitialised value(s)
==13209==    at 0x4007828: cached_fpabi_reject_phdr_p (dl-machine-reject-phdr.h:57)
==13209==    by 0x4007828: elf_machine_reject_phdr_p (dl-machine-reject-phdr.h:217)
==13209==    by 0x4008080: open_verify.constprop.0 (dl-load.c:1688)
==13209==    by 0x4009D7C: _dl_map_object (dl-load.c:2181)
==13209==    by 0x40011F8: map_doit (rtld.c:607)
==13209==    by 0x401B2A8: _dl_catch_exception (dl-error-skeleton.c:196)
==13209==    by 0x401B334: _dl_catch_error (dl-error-skeleton.c:215)
==13209==    by 0x4001138: do_preload (rtld.c:778)
==13209==    by 0x4002560: handle_preload_list (rtld.c:879)
==13209==    by 0x4005B08: dl_main (rtld.c:1684)
==13209==    by 0x401A094: _dl_sysdep_start (dl-sysdep.c:253)
==13209==    by 0x400199C: _dl_start_final (rtld.c:447)
==13209==    by 0x4001D44: _dl_start (rtld.c:539)
==13209== 
==13209== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
Bus error


I was running valgrind now with '-s' option.  May be that could help better
to spot some issue.  As I said above:  If somebody might confirm that there
is probably no issue on other architectures the most straightforward solution
would be to simply remove mipsel from the list of architectures for clustalo
and be done.

Thanks again for all those who contributed

     Andreas.

-- 
http://fam-tille.de


Reply to: