Details
-
Bug
-
Resolution: Cannot Reproduce
-
Major - P3
-
None
-
None
-
None
Description
I came across this while running the test suite for CDRIVER-590. The commit head (I had yet to stage any commits for URI fixes) was 9293ec1. I was running tests against my localhost mongod (v3.0.0), and I've not been able to reproduce this. It simply happened during a test run and I caught the backtrace:
{ "status": "PASS", "name": "/Topology/client_creation", "seed": "3726736168", "elapsed": 0.000395546 },
|
{ "status": "PASS", "name": "/Topology/client_pool_creation", "seed": "1267060720", "elapsed": 0.000108615 },
|
{ "status": "PASS", "name": "/Topology/invalidate_server", "seed": "2029659797", "elapsed": 0.000272005 },
|
{ "status": "PASS", "name": "/Topology/invalid_cluster_node", "seed": "2590074792", "elapsed": 0.000816252 },
|
*** Error in `/home/jmikola/workspace/mongodb/libmongoc/.libs/lt-test-libmongoc': double free or corruption (!prev): 0x00007f1904000b60 ***
|
/bin/bash: line 1: 8373 Aborted (core dumped) ./$TEST_PROG -f -p -F test.log
|
Makefile:4587: recipe for target 'test' failed
|
make: *** [test] Error 134
|
Full backtrace:
(gdb) bt full
|
#0 0x00007f196b19be37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
|
resultvar = 0
|
pid = 8373
|
selftid = 8373
|
#1 0x00007f196b19d528 in __GI_abort () at abort.c:89
|
save_stage = 2
|
act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 0, sa_restorer = 0x0}
|
sigs = {__val = {32, 0 <repeats 15 times>}}
|
#2 0x00007f196b1dcf74 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7f196b2e5f00 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
|
ap = {{gp_offset = 40, fp_offset = 32767, overflow_arg_area = 0x7fff19b91610, reg_save_area = 0x7fff19b915a0}}
|
fd = 32
|
on_2 = <optimized out>
|
list = <optimized out>
|
nlist = <optimized out>
|
cp = <optimized out>
|
written = <optimized out>
|
#3 0x00007f196b1e4586 in malloc_printerr (ptr=<optimized out>, str=0x7f196b2e5fe8 "double free or corruption (!prev)", action=1) at malloc.c:4996
|
buf = "00007f1904000b60"
|
cp = <optimized out>
|
#4 _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:3840
|
size = <optimized out>
|
fb = <optimized out>
|
nextchunk = <optimized out>
|
nextsize = <optimized out>
|
nextinuse = <optimized out>
|
prevsize = <optimized out>
|
bck = <optimized out>
|
fwd = <optimized out>
|
errstr = <optimized out>
|
locked = <optimized out>
|
#5 0x00007f196b7657d2 in bson_free (mem=0x7f1904000b60) at src/bson/bson-memory.c:216
|
No locals.
|
#6 0x00007f196b759d51 in bson_destroy (bson=0x2210370) at src/bson/bson.c:2153
|
__PRETTY_FUNCTION__ = "bson_destroy"
|
#7 0x00007f196bfa227f in mongoc_server_description_reset (sd=0x2210270) at src/mongoc/mongoc-server-description.c:76
|
__PRETTY_FUNCTION__ = "mongoc_server_description_reset"
|
#8 0x0000000000422518 in test_max_wire_version_race_condition () at tests/test-mongoc-topology.c:254
|
scanner_node = 0x2219570
|
sd = 0x2210270
|
database = 0x22101b0
|
pool = 0x220de10
|
client = 0x2219cc0
|
stream = 0x0
|
error = {domain = 2, code = 6,
|
message = "No stream available for server_id 1\000\000\000\000\000@\353\"\002", '\000' <repeats 20 times>, "|\202\036k\031\177\000\000\000\000\000\000\000\000\000\000\265 \000\000\000\000\000\000\220\024\271\031\377\177\000\000`\200@\000\000\000\000\000 \035\271\031\377\177\000\000\000\025\271\031\377\177\000\000p\026\271\031\377\177\000\000FN\370k\031\177\000\000@\353\"\002\
|
000\000\000\000\034\227uk\031\177\000\000\360\002!\002\000\000\000\000P\335 \002\000\000\000\000\340\024\271\031\377\177\000\000\355\375$k\031\177\000\000\001\000\000\000\377\177\000\000\021\070\370k\031\177\000\000"...}
|
uri = 0x2218ec0
|
id = 1
|
r = 1
|
__FUNCTION__ = "test_max_wire_version_race_condition"
|
__PRETTY_FUNCTION__ = "test_max_wire_version_race_condition"
|
#9 0x0000000000426dea in TestSuite_AddHelper (cb_=0x4222f0 <test_max_wire_version_race_condition>) at tests/TestSuite.c:270
|
cb = 0x4222f0 <test_max_wire_version_race_condition>
|
#10 0x0000000000427162 in TestSuite_RunTest (suite=0x7fff19b91bf0, test=0x220cf00, mutex=0x7fff19b91b70, count=0x7fff19b91b64) at tests/TestSuite.c:393
|
ts1 = {tv_sec = 76134, tv_nsec = 200084928}
|
ts2 = {tv_sec = 76134, tv_nsec = 200059915}
|
ts3 = {tv_sec = 0, tv_nsec = 816252}
|
name = "/Topology/max_wire_version_race_condition\000read/SecondaryPreferr"
|
buf = " { \"status\": \"PASS\", \"name\": \"/Topology/invalid_cluster_node\", \"seed\": \"2590074792\", \"elapsed\": 0.000816252 },\n\000\071\067\067\", \"elapsed\": 0.000012577 },\n", '\000' <repeats 16 times>, "#43-UЫRk\031\177\000\000\265 \000\000\000\000\000\000\240\033\271\031\377\177\000\000`\200@\000\000\000\000\000\065"...
|
status = 0
|
#11 0x000000000042782b in TestSuite_RunSerial (suite=0x7fff19b91bf0) at tests/TestSuite.c:652
|
test = 0x220cf00
|
mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}},
|
__size = '\000' <repeats 39 times>, __align = 0}
|
count = 20
|
#12 0x0000000000427aed in TestSuite_Run (suite=0x7fff19b91bf0) at tests/TestSuite.c:715
|
No locals.
|
#13 0x0000000000409f78 in main (argc=5, argv=0x7fff19b91d28) at tests/test-libmongoc.c:170
|
suite = {prgname = 0x21ff990 "/home/jmikola/workspace/mongodb/libmongoc/.libs/lt-test-libmongoc", name = 0x21fff50 "", testname = 0x0, tests = 0x21ff880, outfile = 0x21ff9e0,
|
flags = 10}
|
ret = 32537
|
(gdb)
|