Details
-
Bug
-
Resolution: Fixed
-
Major
-
7.1.0
-
None
-
Untriaged
-
1
-
Unknown
Description
While fixing jsevaluator test following the changes from MB-42809, I have run into crashes:
go test -run TestEvaluatorWorkloadMultiFunctionsSmallDoc
|
============= Test case start: TestEvaluatorWorkloadMultiFunctionsSmallDoc ============= |
signal: segmentation fault
|
FAIL github.com/couchbase/goxdcr/tests/evaluator 0.693s |
go test -run TestEvaluatorWorkloadMultiFunctionsLargeDocs -test.timeout 30m
|
============= Test case start: TestEvaluatorWorkloadMultiFunctionsLargeDocs ============= |
evaluator.test(20510,0x70000bdf3000) malloc: *** error for object 0x95ade16ce9: pointer being freed was not allocated |
evaluator.test(20510,0x70000bdf3000) malloc: *** set a breakpoint in malloc_error_break to debug |
signal: abort trap
|
FAIL github.com/couchbase/goxdcr/tests/evaluator 53.933s |
By attaching lldb to the test:
go test -run TestEvaluatorWorkloadMultiFunctionsLargeDocs -test.timeout 30m
|
I was able to catch the crash:
(lldb) cont
|
Process 20800 resuming |
Process 20800 stopped |
* thread #37, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT) |
frame #0: 0x00000000058fbdd4 libv8.dylib`v8::internal::HeapObject::SizeFromMap(v8::internal::Map) const + 4 |
libv8.dylib`v8::internal::HeapObject::SizeFromMap:
|
-> 0x58fbdd4 <+4>: movb 0x7(%rsi), %al |
0x58fbdd7 <+7>: testb %al, %al |
0x58fbdd9 <+9>: je 0x58fbde3 ; <+19> |
0x58fbddb <+11>: movzbl %al, %eax |
Target 0: (evaluator.test) stopped |
* thread #37, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT) |
* frame #0: 0x00000000058fbdd4 libv8.dylib`v8::internal::HeapObject::SizeFromMap(v8::internal::Map) const + 4 |
frame #1: 0x00000000056f158f libv8.dylib`unsigned long v8::internal::MarkCompactCollector::ProcessMarkingWorklist<(v8::internal::MarkCompactCollector::MarkingWorklistProcessingMode)0>(unsigned long) + 17615 |
frame #2: 0x00000000056fc409 libv8.dylib`v8::internal::MarkCompactCollector::MarkLiveObjects() + 15 |
frame #3: 0x00000000056fbcff libv8.dylib`v8::internal::MarkCompactCollector::CollectGarbage() + 127 |
frame #4: 0x00000000056d2aaf libv8.dylib`v8::internal::Heap::MarkCompact() + 431 |
frame #5: 0x00000000056cfb57 libv8.dylib`v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) + 1319 |
frame #6: 0x00000000056cdb68 libv8.dylib`v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) + 1240 |
frame #7: 0x00000000056ce0be libv8.dylib`v8::internal::Heap::CollectAllAvailableGarbage(v8::internal::GarbageCollectionReason) + 174 |
frame #8: 0x000000000555f09d libv8.dylib`v8::Isolate::LowMemoryNotification() + 317 |
frame #9: 0x000000000532daa2 libjseval.dylib`check_gc(Worker*) at worker.cc:420:22 [opt] |
frame #10: 0x000000000532d9b0 libjseval.dylib`check_gc(worker=0x0000000007640c50) at worker.cc:444 [opt] |
frame #11: 0x000000000532eeec libjseval.dylib`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(Worker*), Worker*> >(void*) [inlined] decltype(__f=<unavailable>, __args=<unavailable>)(Worker*)>(fp)(std::__1::forward<Worker*>(fp0))) std::__1::__invoke<void (*)(Worker*), Worker*>(void (*&&)(Worker*), Worker*&&) at type_traits:3747:1 [opt] |
frame #12: 0x000000000532eee8 libjseval.dylib`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(Worker*), Worker*> >(void*) [inlined] void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(Worker*), Worker*, 2ul>(__t=<unavailable>)(Worker*), Worker*>&, std::__1::__tuple_indices<2ul>) at thread:280 [opt] |
frame #13: 0x000000000532eee8 libjseval.dylib`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(Worker*), Worker*> >(__vp=0x0000000007760cd0) at thread:291 [opt] |
frame #14: 0x00007fff205278fc libsystem_pthread.dylib`_pthread_start + 224 |
frame #15: 0x00007fff20523443 libsystem_pthread.dylib`thread_start + 1 |