On 16-11-2018 16:40, Casey Bodley wrote:
it looks like this test just merged in
https://github.com/ceph/ceph/pull/20185, which writes a nullptr to a
stream. with libstdc++, this just sets the badbit on the stream. this
issue first came up in https://github.com/ceph/ceph/pull/20145, and
https://github.com/ceph/ceph/pull/20174 added a fix to clear the badbit
when reusing a stream. the ReuseBad test i added in that pr also wrote a
(char*)nullptr to the stream, and caused crashes in libc++. so i
followed up with https://github.com/ceph/ceph/pull/20233, which instead
writes (std::streambuf*)nullptr that appears to work for both libc++ and
libstdc++
i opened https://github.com/ceph/ceph/pull/25135 that applies the same
fix to this Log.GarbleRecovery test
Right, I'll pull that in, and I'll let you know what comes of it.
--WjW
On 11/16/18 10:15 AM, Igor Fedotov wrote:
Adding John...
On 11/16/2018 6:10 PM, Willem Jan Withagen wrote:
On 16-11-2018 15:45, Igor Fedotov wrote:
Absolutely not sure if it is relevant but please be aware of:
http://tracker.ceph.com/issues/36679
Does not really look like it would be causing a crash/dump.
When I `#if 0` your added code, things stop crashing.
So "got to be in there" (tm)
--WjW
On 11/16/2018 3:09 PM, Willem Jan Withagen wrote:
Somebody broke the log test under FreeBSD.
Before I bring out my heavy guns this weekend, anybody already a
suggestion where to look?
Otherwise I'll have to start bisect-ing.
--WjW
Start 15: unittest_log
3/4 Test #15: unittest_log .....................***Exception:
SegFault 11.34 sec
[==========] Running 14 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 14 tests from Log
[ RUN ] Log.Simple
[ OK ] Log.Simple (2 ms)
[ RUN ] Log.ReuseBad
[ OK ] Log.ReuseBad (2 ms)
[ RUN ] Log.ManyNoGather
[ OK ] Log.ManyNoGather (1 ms)
[ RUN ] Log.ManyGatherLog
[ OK ] Log.ManyGatherLog (28 ms)
[ RUN ] Log.ManyGatherLogStackSpillover
[ OK ] Log.ManyGatherLogStackSpillover (57 ms)
[ RUN ] Log.ManyGather
[ OK ] Log.ManyGather (32 ms)
[ RUN ] Log.InternalSegv
[WARNING]
/home/jenkins/workspace/ceph-master/src/googletest/googletest/src/gtest-death-test.cc:836::
Death tests use fork(), which is unsafe particularly in a threaded
context. For this test, Google Test couldn't detect the number of
threads.
[ OK ] Log.InternalSegv (35 ms)
[ RUN ] Log.LargeLog
[ OK ] Log.LargeLog (37 ms)
[ RUN ] Log.LargeFromSmallLog
[ OK ] Log.LargeFromSmallLog (290 ms)
[ RUN ] Log.TimeSwitch
[ OK ] Log.TimeSwitch (7 ms)
[ RUN ] Log.TimeFormat
[ OK ] Log.TimeFormat (1 ms)
[ RUN ] Log.Speed_gather
[ OK ] Log.Speed_gather (10102 ms)
[ RUN ] Log.Speed_nogather
[ OK ] Log.Speed_nogather (280 ms)
[ RUN ] Log.GarbleRecovery
*** Caught signal (Segmentation fault) **
in thread 80cd4e000 thread_name:
ceph version Development (no_version) nautilus (dev)
1: <handle_fatal_signal(int)+0xc8> at
/home/jenkins/workspace/ceph-master/build/bin/unittest_log
2: <_pthread_sigmask()+0x536> at /lib/libthr.so.3
2018-11-16 13:00:13.934 80cd4e000 -1 *** Caught signal
(Segmentation fault) **
in thread 80cd4e000 thread_name:
ceph version Development (no_version) nautilus (dev)
1: <handle_fatal_signal(int)+0xc8> at
/home/jenkins/workspace/ceph-master/build/bin/unittest_log
2: <_pthread_sigmask()+0x536> at /lib/libthr.so.3
NOTE: a copy of the executable, or `objdump -rdS <executable>` is
needed to interpret this.
0> 2018-11-16 13:00:13.934 80cd4e000 -1 *** Caught signal
(Segmentation fault) **
in thread 80cd4e000 thread_name:
ceph version Development (no_version) nautilus (dev)
1: <handle_fatal_signal(int)+0xc8> at
/home/jenkins/workspace/ceph-master/build/bin/unittest_log
2: <_pthread_sigmask()+0x536> at /lib/libthr.so.3
NOTE: a copy of the executable, or `objdump -rdS <executable>` is
needed to interpret this.
-1> 2018-11-16 13:00:13.934 80cd4e000 -1 *** Caught signal
(Segmentation fault) **
in thread 80cd4e000 thread_name:
ceph version Development (no_version) nautilus (dev)
1: <handle_fatal_signal(int)+0xc8> at
/home/jenkins/workspace/ceph-master/build/bin/unittest_log
2: <_pthread_sigmask()+0x536> at /lib/libthr.so.3
NOTE: a copy of the executable, or `objdump -rdS <executable>` is
needed to interpret this.