>>>>> "JR" == John Reiser <jrei...@bitwagon.com> writes:

JR> Please create a bugzilla report, or other well-known tracking
JR> instance.

But where?  I don't even know whose problem this is.  It's taken me days
of what little free time I have just to figure out how to get the
backtrace I was able to provide.

I am certainly conditioned to assume that the compiler is working as
designed and problems like this are due to upstream code issues which
simply weren't exposed with previous versions of the compiler.  And
while tracking this all down, I did find at least one real live bug in
the upstream code.

JR> Non-repeatability due to unspecified or mismatched versions is
JR> frustrating.

Well, sure it is.  I just don't have enough information to do anything
other than spew random things.  I'm still trying to understand what's
gone wrong where, and what information is relevant.

I can certainly list the versions of everything in the buildroot, and
everything in the buildroot of the last successful build.  But I don't
think that's going to be particularly useful.  I only know that it
failed to build during the mass rebuild that happened after gcc (and
plenty of other things) was updated.

JR> What does running under memcheck ("valgrind --track-origins=yes
JR> ...") say?

Well, I can run the test suite under valgrind.  It seems to be able to
trace children, too.  I did:

valgrind --track-origins=yes --trace-children=yes ./testrunner.pl -v -f
pretty SearchFuzzy.xapianv2

and got a pile of output.  Narrowing down to just the indexing process
(called squatter) which actually segfaults gives the output I include at
the end of this message.

JR> The reported behavior is consistent with use of an uninitialized
JR> value.

In whose code?  It sounds like you're saying that the upstream code is
broken, which of course would be something I could understand, but....

JR> Looking at the code: ===== gcc/libgcc/unwind.inc

... here you're talking about gcc code.

JR> This is a giant red flag for unreliable code.

And I'm still confused about whose code is unreliable.

 - J<

Output under valgrind for the process which segfaults:

==22846== Memcheck, a memory error detector
==22846== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==22846== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==22846== Command: 
/builddir/build/BUILDROOT/cyrus-imapd-3.0.5-4.fc28.x86_64/usr/sbin/squatter -C 
/builddir/build/BUILD/cyrus-imapd-3.0.5/cassandane/work/2352581/conf/imapd.conf
==22846==
2352581/squatter[22846]: SQL backend defaulting to engine 'pgsql'
2352581/squatter[22846]: indexing mailboxes
2352581/squatter[22846]: indexing mailbox user.cassandane...
==22846== Conditional jump or move depends on uninitialised value(s)
==22846==    at 0xBCC2052: _Unwind_Resume (unwind.inc:240)
==22846==    by 0x5839B8F: stem_version_set (xapian_wrap.cpp:264)
==22846==    by 0x5839B8F: xapian_dbw_open.cold.223 (xapian_wrap.cpp:327)
==22846==    by 0x58AC2EE: begin_mailbox_update (search_xapian.c:1535)
==22846==    by 0x588D58A: search_update_mailbox (search_engines.c:211)
==22846==    by 0x10C104: index_one (squatter.c:292)
==22846==    by 0x10B773: do_indexer (squatter.c:352)
==22846==    by 0x10B773: main (squatter.c:1004)
==22846==  Uninitialised value was created by a stack allocation
==22846==    at 0x5837ED0: ??? (in 
/builddir/build/BUILDROOT/cyrus-imapd-3.0.5-4.fc28.x86_64/usr/lib64/libcyrus_imap.so.0.0.0)
==22846==
==22846== Use of uninitialised value of size 8
==22846==    at 0xBCC181B: _Unwind_ForcedUnwind_Phase2 (unwind.inc:170)
==22846==    by 0x1FFEFFF76F: ???
==22846==    by 0x1FFEFFF6DF: ???
==22846==    by 0xBCA8C7F: ??? (in /usr/lib64/libstdc++.so.6.0.25)
==22846==    by 0xE6F90EF: ???
==22846==    by 0x1FFEFFF77F: ???
==22846==    by 0xE6F5F6F: ???
==22846==    by 0x1FFEFFF74F: ???
==22846==    by 0x1FFEFFF76F: ???
==22846==    by 0xE6F550F: ???
==22846==    by 0x5839B8F: stem_version_set (xapian_wrap.cpp:264)
==22846==    by 0x5839B8F: xapian_dbw_open.cold.223 (xapian_wrap.cpp:327)
==22846==    by 0x58AC2EE: begin_mailbox_update (search_xapian.c:1535)
==22846==  Uninitialised value was created by a stack allocation
==22846==    at 0x5837ED0: ??? (in 
/builddir/build/BUILDROOT/cyrus-imapd-3.0.5-4.fc28.x86_64/usr/lib64/libcyrus_imap.so.0.0.0)
==22846==
==22846== Jump to the invalid address stated on the next line
==22846==    at 0x120: ???
==22846==    by 0x1FFEFFF6DF: ???
==22846==    by 0xBCA8C7F: ??? (in /usr/lib64/libstdc++.so.6.0.25)
==22846==    by 0xE6F90EF: ???
==22846==    by 0x1FFEFFF77F: ???
==22846==    by 0xE6F5F6F: ???
==22846==    by 0x1FFEFFF74F: ???
==22846==    by 0x1FFEFFF76F: ???
==22846==    by 0xE6F550F: ???
==22846==    by 0x5839B8F: stem_version_set (xapian_wrap.cpp:264)
==22846==    by 0x5839B8F: xapian_dbw_open.cold.223 (xapian_wrap.cpp:327)
==22846==    by 0x58AC2EE: begin_mailbox_update (search_xapian.c:1535)
==22846==    by 0x588D58A: search_update_mailbox (search_engines.c:211)
==22846==  Address 0x120 is not stack'd, malloc'd or (recently) free'd
==22846==
==22846==
==22846== Process terminating with default action of signal 11 (SIGSEGV): 
dumping core
==22846==  Bad permissions for mapped region at address 0x120
==22846==    at 0x120: ???
==22846==    by 0x1FFEFFF6DF: ???
==22846==    by 0xBCA8C7F: ??? (in /usr/lib64/libstdc++.so.6.0.25)
==22846==    by 0xE6F90EF: ???
==22846==    by 0x1FFEFFF77F: ???
==22846==    by 0xE6F5F6F: ???
==22846==    by 0x1FFEFFF74F: ???
==22846==    by 0x1FFEFFF76F: ???
==22846==    by 0xE6F550F: ???
==22846==    by 0x5839B8F: stem_version_set (xapian_wrap.cpp:264)
==22846==    by 0x5839B8F: xapian_dbw_open.cold.223 (xapian_wrap.cpp:327)
==22846==    by 0x58AC2EE: begin_mailbox_update (search_xapian.c:1535)
==22846==    by 0x588D58A: search_update_mailbox (search_engines.c:211)
==22846==
==22846== HEAP SUMMARY:
==22846==     in use at exit: 344,795 bytes in 91 blocks
==22846==   total heap usage: 370 allocs, 279 frees, 489,235 bytes allocated
==22846==
==22846== LEAK SUMMARY:
==22846==    definitely lost: 0 bytes in 0 blocks
==22846==    indirectly lost: 0 bytes in 0 blocks
==22846==      possibly lost: 393 bytes in 2 blocks
==22846==    still reachable: 344,402 bytes in 89 blocks
==22846==         suppressed: 0 bytes in 0 blocks
==22846== Rerun with --leak-check=full to see details of leaked memory
==22846==
==22846== For counts of detected and suppressed errors, rerun with: -v
==22846== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org

Reply via email to