Test: debugger/debug/compiler/regress-354005322 (flaky in a repeated run)
Flags: --test /b/s/w/ir/test/mjsunit/mjsunit.js /b/s/w/ir/test/debugger/test-api.js /b/s/w/ir/test/debugger/debug/compiler/regress-354005322.js --isolate /b/s/w/ir/test/mjsunit/mjsunit.js /b/s/w/ir/test/debugger/test-api.js /b/s/w/ir/test/debugger/debug/compiler/regress-354005322.js --random-seed=59642693 --nohard-abort --testing-d8-test-runner --stress-incremental-marking --allow-natives-syntax --turboshaft-from-maglev --turbofan --no-turboshaft-loop-unrolling --expose-gc --enable-inspector --enable-inspector --allow-natives-syntax
Command: out/build/d8 --test test/mjsunit/mjsunit.js test/debugger/test-api.js test/debugger/debug/compiler/regress-354005322.js --isolate test/mjsunit/mjsunit.js test/debugger/test-api.js test/debugger/debug/compiler/regress-354005322.js --random-seed=59642693 --nohard-abort --testing-d8-test-runner --stress-incremental-marking --allow-natives-syntax --turboshaft-from-maglev --turbofan --no-turboshaft-loop-unrolling --expose-gc --enable-inspector --enable-inspector --allow-natives-syntax
Variant: stress_incremental_marking
Shard: 3:7
GN arguments:
dcheck_always_on = false
is_component_build = false
is_debug = false
is_tsan = true
target_cpu = "x64"
use_remoteexec = true
v8_enable_google_benchmark = true
v8_enable_test_features = true
Trigger flake bisect on command line:
bb add v8/try.triggered/v8_flako -p 'bisect_builder_group="client.v8"' -p 'bisect_buildername="V8 Linux64 TSAN - builder"' -p 'revision="18a464d0a239b3782a4b22e07b9ac5f8bbbdb0c8"' -p 'swarming_dimensions=["cpu:x86-64", "pool:chromium.tests", "os:Ubuntu-22.04"]' -p 'isolated_name="bot_default"' -p 'test_name="debugger/debug/compiler/regress-354005322"' -p 'timeout_sec=60' -p 'total_timeout_sec=120' -p 'variant="stress_incremental_marking"' -p 'extra_args=["--isolates"]'
Local flake reproduction on command line:
tools/run-tests.py --outdir=SET_OUTDIR_HERE --variants=stress_incremental_marking --random-seed-stress-count=1000000 --total-timeout-sec=120 --exit-after-n-failures=1 --isolates debugger/debug/compiler/regress-354005322
Run #1
Exit code: 66 [0x42]
Result: FAIL
Expected outcomes: PASS
Duration: 00:04:901
Crash Type:
Data race
ATOMIC READ 8
Crash State:
__cxx_atomic_load<unsigned long>
load
GetCodeObject
Stderr:
V8 is running with experimental features enabled. Stability and security will suffer.
==================
WARNING: ThreadSanitizer: data race (pid=460208)
Atomic read of size 8 at 0x7fffe0910008 by thread T11:
#0 __cxx_atomic_load<unsigned long> third_party/libc++/src/include/__atomic/cxx_atomic_impl.h:317:10 (d8+0xa489c8) (BuildId: eab9dd909ebe46e6)
#1 load third_party/libc++/src/include/__atomic/atomic_base.h:59:12 (d8+0xa489c8)
#2 GetCodeObject src/sandbox/code-pointer-table-inl.h:48:16 (d8+0xa489c8)
#3 GetCodeObject src/sandbox/code-pointer-table-inl.h:111:20 (d8+0xa489c8)
#4 ResolveCodePointerHandle src/objects/slots-inl.h:437:52 (d8+0xa489c8)
#5 ResolveHandle src/objects/slots-inl.h:417:12 (d8+0xa489c8)
#6 Relaxed_Load src/objects/slots-inl.h:346:10 (d8+0xa489c8)
#7 VisitIndirectPointer src/heap/marking-visitor-inl.h:272:33 (d8+0xa489c8)
#8 VisitJSFunction src/heap/marking-visitor-inl.h:316:5 (d8+0xa489c8)
#9 Visit src/heap/objects-visiting-inl.h:111:5 (d8+0xa489c8)
#10 v8::internal::ConcurrentMarking::RunMajor(v8::JobDelegate*, v8::base::EnumSet<v8::internal::CodeFlushMode, int>, unsigned int, bool) src/heap/concurrent-marking.cc:352:45 (d8+0xa489c8)
#11 v8::internal::ConcurrentMarking::JobTaskMajor::Run(v8::JobDelegate*) src/heap/concurrent-marking.cc:176:28 (d8+0xa72222) (BuildId: eab9dd909ebe46e6)
#12 v8::platform::DefaultJobWorker::Run() src/libplatform/default-job.h:147:18 (d8+0x2ab57ab) (BuildId: eab9dd909ebe46e6)
#13 v8::platform::DefaultWorkerThreadsTaskRunner::WorkerThread::Run() src/libplatform/default-worker-threads-task-runner.cc:95:25 (d8+0x2abcb0f) (BuildId: eab9dd909ebe46e6)
#14 NotifyStartedAndRun src/base/platform/platform.h:618:5 (d8+0x2aaf769) (BuildId: eab9dd909ebe46e6)
#15 v8::base::ThreadEntry(void*) src/base/platform/platform-posix.cc:1213:11 (d8+0x2aaf769)
Previous write of size 8 at 0x7fffe0910008 by thread T22 (mutexes: write M0, write M1):
#0 mmap64 sanitizer_common/sanitizer_common_interceptors.inc:7531:3 (d8+0x6ac672) (BuildId: eab9dd909ebe46e6)
#1 DecommitPages src/base/platform/platform-posix.cc:603:15 (d8+0x2aaf170) (BuildId: eab9dd909ebe46e6)
#2 v8::base::AddressSpaceReservation::Free(void*, unsigned long) src/base/platform/platform-posix.cc:1074:10 (d8+0x2aaf170)
#3 v8::base::VirtualAddressSubspace::FreePages(unsigned long, unsigned long) src/base/virtual-address-space.cc:270:21 (d8+0x2aace69) (BuildId: eab9dd909ebe46e6)
#4 FreeTableSegment src/sandbox/external-entity-table-inl.h:451:9 (d8+0x9f2fee) (BuildId: eab9dd909ebe46e6)
#5 TearDownSpace src/sandbox/external-entity-table-inl.h:159:5 (d8+0x9f2fee)
#6 v8::internal::Isolate::Deinit() src/execution/isolate.cc:4427:37 (d8+0x9f2fee)
#7 v8::internal::Isolate::Delete(v8::internal::Isolate*) src/execution/isolate.cc:3958:12 (d8+0x9f1802) (BuildId: eab9dd909ebe46e6)
#8 v8::Isolate::Dispose() src/api/api.cc:9913:3 (d8+0x77f066) (BuildId: eab9dd909ebe46e6)
#9 v8::SourceGroup::ExecuteInThread() src/d8/d8.cc:4783:12 (d8+0x729607) (BuildId: eab9dd909ebe46e6)
#10 v8::SourceGroup::IsolateThread::Run() src/d8/d8.h:119:35 (d8+0x731083) (BuildId: eab9dd909ebe46e6)
#11 NotifyStartedAndRun src/base/platform/platform.h:618:5 (d8+0x2aaf769) (BuildId: eab9dd909ebe46e6)
#12 v8::base::ThreadEntry(void*) src/base/platform/platform-posix.cc:1213:11 (d8+0x2aaf769)
Mutex M0 (0x7238000070a0) created at:
#0 pthread_mutex_init /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1327:3 (d8+0x6743b3) (BuildId: eab9dd909ebe46e6)
#1 InitializeRecursiveNativeHandle src/base/platform/mutex.cc:112:12 (d8+0x2aa7c2a) (BuildId: eab9dd909ebe46e6)
#2 v8::base::RecursiveMutex::RecursiveMutex() src/base/platform/mutex.cc:187:3 (d8+0x2aa7c2a)
#3 v8::internal::IsolateSafepoint::IsolateSafepoint(v8::internal::Heap*) src/heap/safepoint.cc:28:19 (d8+0xbc1a18) (BuildId: eab9dd909ebe46e6)
#4 make_unique<v8::internal::IsolateSafepoint, v8::internal::Heap *> third_party/libc++/src/include/__memory/unique_ptr.h:634:30 (d8+0xad4afb) (BuildId: eab9dd909ebe46e6)
#5 v8::internal::Heap::Heap() src/heap/heap.cc:261:18 (d8+0xad4afb)
#6 v8::internal::Isolate::Isolate(v8::internal::IsolateGroup*) src/execution/isolate.cc:3994:10 (d8+0x9f3887) (BuildId: eab9dd909ebe46e6)
#7 Allocate src/execution/isolate.cc:3934:40 (d8+0x9f170c) (BuildId: eab9dd909ebe46e6)
#8 v8::internal::Isolate::New() src/execution/isolate.cc:3924:34 (d8+0x9f170c)
#9 Allocate src/api/api.cc:9796:37 (d8+0x77f007) (BuildId: eab9dd909ebe46e6)
#10 v8::Isolate::New(v8::Isolate::CreateParams const&) src/api/api.cc:9902:25 (d8+0x77f007)
#11 v8::SourceGroup::ExecuteInThread() src/d8/d8.cc:4741:22 (d8+0x728ea1) (BuildId: eab9dd909ebe46e6)
#12 v8::SourceGroup::IsolateThread::Run() src/d8/d8.h:119:35 (d8+0x731083) (BuildId: eab9dd909ebe46e6)
#13 NotifyStartedAndRun src/base/platform/platform.h:618:5 (d8+0x2aaf769) (BuildId: eab9dd909ebe46e6)
#14 v8::base::ThreadEntry(void*) src/base/platform/platform-posix.cc:1213:11 (d8+0x2aaf769)
Mutex M1 (0x7244000020c0) created at:
#0 pthread_mutex_init /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1327:3 (d8+0x6743b3) (BuildId: eab9dd909ebe46e6)
#1 InitializeNativeHandle src/base/platform/mutex.cc:99:12 (d8+0x2aa7b1b) (BuildId: eab9dd909ebe46e6)
#2 v8::base::Mutex::Mutex() src/base/platform/mutex.cc:152:3 (d8+0x2aa7b1b)
#3 VirtualAddressSubspace src/base/virtual-address-space.cc:192:25 (d8+0x2aaca2a) (BuildId: eab9dd909ebe46e6)
#4 v8::base::VirtualAddressSpace::AllocateSubspace(unsigned long, unsigned long, unsigned long, v8::PagePermissions) src/base/virtual-address-space.cc:162:11 (d8+0x2aaca2a)
#5 v8::internal::ExternalEntityTable<v8::internal::CodePointerTableEntry, 134217728ul>::Initialize() src/sandbox/external-entity-table-inl.h:98:33 (d8+0x1279b4d) (BuildId: eab9dd909ebe46e6)
#6 v8::internal::CodePointerTable::Initialize() src/sandbox/code-pointer-table.cc:25:58 (d8+0x1279aa9) (BuildId: eab9dd909ebe46e6)
#7 v8::internal::V8::Initialize() src/init/v8.cc:203:37 (d8+0xc667c9) (BuildId: eab9dd909ebe46e6)
#8 v8::V8::Initialize(int) src/api/api.cc:6518:3 (d8+0x772889) (BuildId: eab9dd909ebe46e6)
#9 Initialize include/v8-initialization.h:120:12 (d8+0x72fd77) (BuildId: eab9dd909ebe46e6)
#10 v8::Shell::Main(int, char**) src/d8/d8.cc:6234:3 (d8+0x72fd77)
#11 main src/d8/d8.cc:6514:43 (d8+0x730f10) (BuildId: eab9dd909ebe46e6)
Thread T11 'V8 DefaultWorke' (tid=460256, running) created by main thread at:
#0 pthread_create /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1023:3 (d8+0x6729e1) (BuildId: eab9dd909ebe46e6)
#1 v8::base::Thread::Start() src/base/platform/platform-posix.cc:1245:14 (d8+0x2aaf659) (BuildId: eab9dd909ebe46e6)
#2 WorkerThread src/libplatform/default-worker-threads-task-runner.cc:80:3 (d8+0x2abc200) (BuildId: eab9dd909ebe46e6)
#3 make_unique<v8::platform::DefaultWorkerThreadsTaskRunner::WorkerThread, v8::platform::DefaultWorkerThreadsTaskRunner *, v8::base::Thread::Priority &> third_party/libc++/src/include/__memory/unique_ptr.h:634:30 (d8+0x2abc200)
#4 v8::platform::DefaultWorkerThreadsTaskRunner::DefaultWorkerThreadsTaskRunner(unsigned int, double (*)(), v8::base::Thread::Priority) src/libplatform/default-worker-threads-task-runner.cc:18:28 (d8+0x2abc200)
#5 construct_at<v8::platform::DefaultWorkerThreadsTaskRunner, const int &, double (*)(), v8::base::Thread::Priority, v8::platform::DefaultWorkerThreadsTaskRunner *> third_party/libc++/src/include/__memory/construct_at.h:41:46 (d8+0x2ab1efe) (BuildId: eab9dd909ebe46e6)
#6 __construct_at<v8::platform::DefaultWorkerThreadsTaskRunner, const int &, double (*)(), v8::base::Thread::Priority, v8::platform::DefaultWorkerThreadsTaskRunner *> third_party/libc++/src/include/__memory/construct_at.h:49:10 (d8+0x2ab1efe)
#7 construct<v8::platform::DefaultWorkerThreadsTaskRunner, const int &, double (*)(), v8::base::Thread::Priority, void, 0> third_party/libc++/src/include/__memory/allocator_traits.h:328:5 (d8+0x2ab1efe)
#8 __shared_ptr_emplace<const int &, double (*)(), v8::base::Thread::Priority, std::__Cr::allocator<v8::platform::DefaultWorkerThreadsTaskRunner>, 0> third_party/libc++/src/include/__memory/shared_ptr.h:264:5 (d8+0x2ab1efe)
#9 allocate_shared<v8::platform::DefaultWorkerThreadsTaskRunner, std::__Cr::allocator<v8::platform::DefaultWorkerThreadsTaskRunner>, const int &, double (*)(), v8::base::Thread::Priority, 0> third_party/libc++/src/include/__memory/shared_ptr.h:843:51 (d8+0x2ab1efe)
#10 make_shared<v8::platform::DefaultWorkerThreadsTaskRunner, const int &, double (*)(), v8::base::Thread::Priority, 0> third_party/libc++/src/include/__memory/shared_ptr.h:851:10 (d8+0x2ab1efe)
#11 v8::platform::DefaultPlatform::EnsureBackgroundTaskRunnerInitialized() src/libplatform/default-platform.cc:141:9 (d8+0x2ab1efe)
#12 v8::platform::DefaultPlatform::DefaultPlatform(int, v8::platform::IdleTaskSupport, std::__Cr::unique_ptr<v8::TracingController, std::__Cr::default_delete<v8::TracingController>>, v8::platform::PriorityMode) src/libplatform/default-platform.cc:112:5 (d8+0x2ab1d25) (BuildId: eab9dd909ebe46e6)
#13 make_unique<v8::platform::DefaultPlatform, int &, v8::platform::IdleTaskSupport &, std::__Cr::unique_ptr<v8::TracingController, std::__Cr::default_delete<v8::TracingController> >, v8::platform::PriorityMode &> third_party/libc++/src/include/__memory/unique_ptr.h:634:30 (d8+0x2ab134c) (BuildId: eab9dd909ebe46e6)
#14 v8::platform::NewDefaultPlatform(int, v8::platform::IdleTaskSupport, v8::platform::InProcessStackDumping, std::__Cr::unique_ptr<v8::TracingController, std::__Cr::default_delete<v8::TracingController>>, v8::platform::PriorityMode) src/libplatform/default-platform.cc:54:19 (d8+0x2ab134c)
#15 v8::Shell::Main(int, char**) src/d8/d8.cc:6202:18 (d8+0x72fb6d) (BuildId: eab9dd909ebe46e6)
#16 main src/d8/d8.cc:6514:43 (d8+0x730f10) (BuildId: eab9dd909ebe46e6)
Thread T22 'IsolateThread' (tid=460283, finished) created by main thread at:
#0 pthread_create /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1023:3 (d8+0x6729e1) (BuildId: eab9dd909ebe46e6)
#1 v8::base::Thread::Start() src/base/platform/platform-posix.cc:1245:14 (d8+0x2aaf659) (BuildId: eab9dd909ebe46e6)
#2 StartExecuteInThread src/d8/d8.cc:4789:5 (d8+0x72e72f) (BuildId: eab9dd909ebe46e6)
#3 v8::Shell::RunMain(v8::Isolate*, bool) src/d8/d8.cc:5562:32 (d8+0x72e72f)
#4 v8::Shell::Main(int, char**) src/d8/d8.cc:6422:18 (d8+0x7307b5) (BuildId: eab9dd909ebe46e6)
#5 main src/d8/d8.cc:6514:43 (d8+0x730f10) (BuildId: eab9dd909ebe46e6)
SUMMARY: ThreadSanitizer: data race third_party/libc++/src/include/__atomic/cxx_atomic_impl.h:317:10 in __cxx_atomic_load<unsigned long>
==================
ThreadSanitizer: reported 1 warnings
Run #2
Exit code: 0 [0x00]
Result: PASS
Expected outcomes: PASS
Duration: 00:02:803
Stderr:
V8 is running with experimental features enabled. Stability and security will suffer.