apple / foundationdb

FoundationDB - the open source, distributed, transactional key-value store

Home Page:https://apple.github.io/foundationdb/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ASAN heap-buffer-overflow at GetEstimatedRangeSize

sfc-gh-jshim opened this issue · comments

Code location and commit hash:

TraceEvent(SevDebug, "GetSizeStart").detail("Tenant", tr.getTenant());

Ensemble ID: 20230120-034016-nightly_correctness_asan_main_x86_64-7097da85f2f7dd9e

ASAN access log (logs have been symbolized and paraphrased):

READ of size 29 at 0x6030008c0b20 thread T0:

printf_common(void*, char const*, __va_list_tag*) at /tmp/llvm-project/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors_format.inc:553
vsformat(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, char const*, __va_list_tag*) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/flow.cpp:247
format(char const*, ...) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/flow.cpp:284
Tenant::description() const at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbclient/include/fdbclient/NativeAPI.actor.h:262
 (inlined by) Traceable<Tenant>::toString(Tenant const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbclient/include/fdbclient/NativeAPI.actor.h:275
Traceable<Reference<Tenant>>::toString(Reference<Tenant> const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/Trace.h:411
 (inlined by) Traceable<Optional<Reference<Tenant>>>::toString(Optional<Reference<Tenant>> const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/Arena.h:458
 (inlined by) std::__1::enable_if<Traceable<Optional<Reference<Tenant>>>::value, BaseTraceEvent&>::type BaseTraceEvent::detail<Optional<Reference<Tenant>>>(char const*, Optional<Reference<Tenant>> const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/Trace.h:458
GetEstimatedRangeSizeWorkload::GetSizeActorState<GetEstimatedRangeSizeWorkload::GetSizeActor>::a_body1(int) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/workloads/GetEstimatedRangeSize.actor.cpp:108
GetEstimatedRangeSizeWorkload::GetSizeActor::GetSizeActor(GetEstimatedRangeSizeWorkload* const&, Database const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/_build/fdbserver/workloads/GetEstimatedRangeSize.actor.g.cpp:715
 (inlined by) GetEstimatedRangeSizeWorkload::getSize(GetEstimatedRangeSizeWorkload* const&, Database const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/workloads/GetEstimatedRangeSize.actor.cpp:105
 (inlined by) GetEstimatedRangeSizeWorkload::CheckSizeActorState<GetEstimatedRangeSizeWorkload::CheckSizeActor>::a_body1(int) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/workloads/GetEstimatedRangeSize.actor.cpp:93
GetEstimatedRangeSizeWorkload::CheckSizeActor::CheckSizeActor(GetEstimatedRangeSizeWorkload* const&, Database const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/_build/fdbserver/workloads/GetEstimatedRangeSize.actor.g.cpp:261
 (inlined by) GetEstimatedRangeSizeWorkload::checkSize(GetEstimatedRangeSizeWorkload* const&, Database const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/workloads/GetEstimatedRangeSize.actor.cpp:92
GetEstimatedRangeSizeWorkload::start(Database const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/workloads/GetEstimatedRangeSize.actor.cpp:79
CompoundWorkload::start(Database const&)::$_0::operator()(TestWorkload&) const at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/tester.actor.cpp:328
CompoundWorkload::start(Database const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/tester.actor.cpp:331
(anonymous namespace)::RunWorkloadAsyncActorState<(anonymous namespace)::RunWorkloadAsyncActor>::a_body1loopBody1when2(ReplyPromise<Void>&&, int) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/tester.actor.cpp:701
(anonymous namespace)::RunWorkloadAsyncActorState<(anonymous namespace)::RunWorkloadAsyncActor>::a_callback_fire(ActorSingleCallback<(anonymous namespace)::RunWorkloadAsyncActor, 1, ReplyPromise<Void>>*, ReplyPromise<Void>&&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/_build/fdbserver/tester.actor.g.cpp:3656
 (inlined by) ActorSingleCallback<(anonymous namespace)::RunWorkloadAsyncActor, 1, ReplyPromise<Void>>::fire(ReplyPromise<Void>&&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/flow.h:1466
void NotifiedQueue<ReplyPromise<Void>>::send<ReplyPromise<Void>>(ReplyPromise<Void>&&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/flow.h:1132
 (inlined by) NetNotifiedQueue<ReplyPromise<Void>, false>::receive(ArenaObjectReader&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbrpc/include/fdbrpc/fdbrpc.h:702
(anonymous namespace)::DeliverActorState<(anonymous namespace)::DeliverActor>::a_body1cont1(int) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbrpc/FlowTransport.actor.cpp:1049
(anonymous namespace)::DeliverActorState<(anonymous namespace)::DeliverActor>::a_body1cont2(Void const&, int) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/_build/fdbrpc/FlowTransport.actor.g.cpp:4336
 (inlined by) (anonymous namespace)::DeliverActorState<(anonymous namespace)::DeliverActor>::a_body1when1(Void const&, int) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/_build/fdbrpc/FlowTransport.actor.g.cpp:4348
 (inlined by) (anonymous namespace)::DeliverActorState<(anonymous namespace)::DeliverActor>::a_callback_fire(ActorCallback<(anonymous namespace)::DeliverActor, 0, Void>*, Void const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/_build/fdbrpc/FlowTransport.actor.g.cpp:4369
 (inlined by) ActorCallback<(anonymous namespace)::DeliverActor, 0, Void>::fire(Void const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/flow.h:1444
void SAV<Void>::send<Void>(Void&&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/flow.h:790
void Promise<Void>::send<Void>(Void&&) const at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/flow.h:1029
 (inlined by) Sim2::execTask(Sim2::PromiseTask&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbrpc/sim2.actor.cpp:2320
Sim2::runLoop(Sim2*) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbrpc/sim2.actor.cpp:1279
main at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/fdbserver.actor.cpp:2273

Origin of violated memory:

0x6030008c0b20 is located 0 bytes to the right of 32-byte region [0x6030008c0b00,0x6030008c0b20)
allocated by thread T0 here:

aligned_alloc at /tmp/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:113
ArenaBlock::create(int, Reference<ArenaBlock>&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/Arena.cpp:339
Arena::Arena(unsigned long) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/Arena.cpp:112
Standalone<StringRef>::Standalone(StringRef const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/Arena.h:505
getOption(VectorRef<KeyValueRef, (VecSerStrategy)0>, Standalone<StringRef>, Standalone<StringRef>) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/tester.actor.cpp:160
GetEstimatedRangeSizeWorkload::GetEstimatedRangeSizeWorkload(WorkloadContext const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/workloads/GetEstimatedRangeSize.actor.cpp:48
TestWorkloadImpl<GetEstimatedRangeSizeWorkload, false>::TestWorkloadImpl(WorkloadContext const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/include/fdbserver/workloads/workloads.actor.h:111
 (inlined by) Reference<TestWorkloadImpl<GetEstimatedRangeSizeWorkload, false>> makeReference<TestWorkloadImpl<GetEstimatedRangeSizeWorkload, false>, WorkloadContext const&>(WorkloadContext const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/FastRef.h:185
 (inlined by) WorkloadFactory<GetEstimatedRangeSizeWorkload>::create(WorkloadContext const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/include/fdbserver/workloads/workloads.actor.h:251
IWorkloadFactory::create(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, WorkloadContext const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/include/fdbserver/workloads/workloads.actor.h:223
(anonymous namespace)::GetWorkloadIfaceActorState<(anonymous namespace)::GetWorkloadIfaceActor>::a_body1(int) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/tester.actor.cpp:479
 (inlined by) (anonymous namespace)::GetWorkloadIfaceActor::GetWorkloadIfaceActor(WorkloadRequest const&, Reference<IClusterConnectionRecord> const&, VectorRef<KeyValueRef, (VecSerStrategy)0> const&, Reference<AsyncVar<ServerDBInfo> const> const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/_build/fdbserver/tester.actor.g.cpp:1318
 (inlined by) getWorkloadIface(WorkloadRequest const&, Reference<IClusterConnectionRecord> const&, VectorRef<KeyValueRef, (VecSerStrategy)0> const&, Reference<AsyncVar<ServerDBInfo> const> const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/tester.actor.cpp:464
(anonymous namespace)::GetWorkloadIfaceActor1State<(anonymous namespace)::GetWorkloadIfaceActor1>::a_body1(int) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/tester.actor.cpp:527
 (inlined by) (anonymous namespace)::GetWorkloadIfaceActor1::GetWorkloadIfaceActor1(WorkloadRequest const&, Reference<IClusterConnectionRecord> const&, Reference<AsyncVar<ServerDBInfo> const> const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/_build/fdbserver/tester.actor.g.cpp:1577
 (inlined by) getWorkloadIface(WorkloadRequest const&, Reference<IClusterConnectionRecord> const&, Reference<AsyncVar<ServerDBInfo> const> const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/tester.actor.cpp:507
(anonymous namespace)::TesterServerWorkloadActorState<(anonymous namespace)::TesterServerWorkloadActor>::a_body1cont2(int) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/tester.actor.cpp:786
(anonymous namespace)::TesterServerWorkloadActorState<(anonymous namespace)::TesterServerWorkloadActor>::a_body1cont3(Void const&, int) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/_build/fdbserver/tester.actor.g.cpp:4346
 (inlined by) (anonymous namespace)::TesterServerWorkloadActorState<(anonymous namespace)::TesterServerWorkloadActor>::a_body1when1(Void const&, int) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/_build/fdbserver/tester.actor.g.cpp:4358
 (inlined by) (anonymous namespace)::TesterServerWorkloadActorState<(anonymous namespace)::TesterServerWorkloadActor>::a_callback_fire(ActorCallback<(anonymous namespace)::TesterServerWorkloadActor, 0, Void>*, Void const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/_build/fdbserver/tester.actor.g.cpp:4379
 (inlined by) ActorCallback<(anonymous namespace)::TesterServerWorkloadActor, 0, Void>::fire(Void const&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/flow.h:1444
void SAV<Void>::send<Void>(Void&&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/flow.h:790
void Promise<Void>::send<Void>(Void&&) const at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/flow/include/flow/flow.h:1029
 (inlined by) Sim2::execTask(Sim2::PromiseTask&) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbrpc/sim2.actor.cpp:2320
Sim2::runLoop(Sim2*) at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbrpc/sim2.actor.cpp:1279
main at /home/jenkins/fdb/extra/long/path/to/work/around/strange/cpack/debug/rpm/behavior/fdbserver/fdbserver.actor.cpp:2273

Normally I would contact the test owner, but for this I'm assigning to @sfc-gh-ajbeamon based on the backtrace and recent change history.

Note: this is a nightly from an older commit 36e8e5a.
The test has undergone more changes since then.
Please assess and disregard if this would no longer resurface.

Okay, all of the ASAN errors from the errors are from that build and it's no longer recurring in recent runs. Considering it closed.