Skip to content

Allow detection of root (last) fragment in plan:#1

Open
dan13bauer wants to merge 1 commit into
cudf_exchange_basefrom
root_frag
Open

Allow detection of root (last) fragment in plan:#1
dan13bauer wants to merge 1 commit into
cudf_exchange_basefrom
root_frag

Conversation

@dan13bauer
Copy link
Copy Markdown
Owner

If last plan fragment contains a Partitioned Output node, then this plan fragment mustn't be converted to Cudf, otherwise the coordinator won't receive the final results.

If last plan fragment contains a Partitioned Output node, then this
plan fragment mustn't be converted to Cudf, otherwise the coordinator
won't receive the final results.
@majetideepak
Copy link
Copy Markdown

@dan13bauer @zoltan
A cleaner solution is to identify protocol::OutputNode from the Presto side and add this bit to PartitionedOutputNode.
https://github.com/prestodb/presto/blob/809ae7bcfb6581a4d36bc4fca833c5d9944caad1/presto-native-execution/presto_cpp/main/types/PrestoToVeloxQueryPlan.cpp#L2173
Also, can we infer anything from the planNodeId of the protocol::OutputNode?

@zoltan
Copy link
Copy Markdown
Collaborator

zoltan commented Sep 12, 2025

generally speaking extending core::PartitionedOutputNode with an indicator to see if it's the last or not is something that velox does not need, it would only be there to support prestissimo, which is my concern.

lga-zurich referenced this pull request in lga-zurich/velox-exchange Sep 19, 2025
@GregoryKimball GregoryKimball removed this from libcudf Oct 17, 2025
dan13bauer pushed a commit that referenced this pull request Feb 2, 2026
Summary:
Fixes OSS Asan segV due to calling 'as->' on a nullptr.

```
=================================================================
==4058438==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x000000a563a4 bp 0x7ffd54ee5bc0 sp 0x7ffd54ee5aa0 T0)
==4058438==The signal is caused by a READ memory access.
==4058438==Hint: address points to the zero page.
    #0 0x000000a563a4 in facebook::velox::FlatVector<int>* facebook::velox::BaseVector::as<facebook::velox::FlatVector<int>>() /velox/./velox/vector/BaseVector.h:116:12
    #1 0x000000a563a4 in facebook::velox::test::(anonymous namespace)::FlatMapVectorTest_encodedKeys_Test::TestBody() /velox/velox/vector/tests/FlatMapVectorTest.cpp:156:5
    #2 0x70874f90ce0b  (/lib64/libgtest.so.1.11.0+0x4fe0b) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #3 0x70874f8ed825 in testing::Test::Run() (/lib64/libgtest.so.1.11.0+0x30825) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #4 0x70874f8ed9ef in testing::TestInfo::Run() (/lib64/libgtest.so.1.11.0+0x309ef) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #5 0x70874f8edaf8 in testing::TestSuite::Run() (/lib64/libgtest.so.1.11.0+0x30af8) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #6 0x70874f8fcfc4 in testing::internal::UnitTestImpl::RunAllTests() (/lib64/libgtest.so.1.11.0+0x3ffc4) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #7 0x70874f8fa7c7 in testing::UnitTest::Run() (/lib64/libgtest.so.1.11.0+0x3d7c7) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #8 0x70877c073153 in main (/lib64/libgtest_main.so.1.11.0+0x1153) (BuildId: c3a576d37d6cfc6875afdc98684c143107a226a0)
    #9 0x70874f48460f in __libc_start_call_main (/lib64/libc.so.6+0x2a60f) (BuildId: 4dbf824d0f6afd9b2faee4787d89a39921c0a65e)
    #10 0x70874f4846bf in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x2a6bf) (BuildId: 4dbf824d0f6afd9b2faee4787d89a39921c0a65e)
    #11 0x00000044c1b4 in _start (/velox/_build/debug/velox/vector/tests/velox_vector_test+0x44c1b4) (BuildId: 6da0b0d1074134be8f4d4534e5dbac9eeb9d482b)
```

Reviewed By: peterenescu

Differential Revision: D91275269

fbshipit-source-id: 0806aa7562dc8cf4ad708fc6a8e4b29409507745
dan13bauer pushed a commit that referenced this pull request Feb 2, 2026
Summary:
Pull Request resolved: facebookincubator#16102

Fixes Asan error in S3Util.cpp, See stack trace below:

```
==4125762==ERROR: AddressSanitizer: global-buffer-overflow on address 0x0000006114ff at pc 0x70aa17bc0120 bp 0x7ffe905f3030 sp 0x7ffe905f3028
READ of size 1 at 0x0000006114ff thread T0
    #0 0x70aa17bc011f in facebook::velox::filesystems::parseAWSStandardRegionName[abi:cxx11](std::basic_string_view<char, std::char_traits<char>>) /velox/velox/connectors/hive/storage_adapters/s3fs/S3Util.cpp:160:16
    #1 0x00000055790b in facebook::velox::filesystems::S3UtilTest_parseAWSRegion_Test::TestBody() /velox/velox/connectors/hive/storage_adapters/s3fs/tests/S3UtilTest.cpp:147:3
    #2 0x70aa2e89be0b  (/lib64/libgtest.so.1.11.0+0x4fe0b) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #3 0x70aa2e87c825 in testing::Test::Run() (/lib64/libgtest.so.1.11.0+0x30825) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #4 0x70aa2e87c9ef in testing::TestInfo::Run() (/lib64/libgtest.so.1.11.0+0x309ef) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #5 0x70aa2e87caf8 in testing::TestSuite::Run() (/lib64/libgtest.so.1.11.0+0x30af8) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #6 0x70aa2e88bfc4 in testing::internal::UnitTestImpl::RunAllTests() (/lib64/libgtest.so.1.11.0+0x3ffc4) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #7 0x70aa2e8897c7 in testing::UnitTest::Run() (/lib64/libgtest.so.1.11.0+0x3d7c7) (BuildId: 506b2df0fc901091ff83631fd797a325cae6b679)
    #8 0x70aa2e8ba153 in main (/lib64/libgtest_main.so.1.11.0+0x1153) (BuildId: c3a576d37d6cfc6875afdc98684c143107a226a0)
    #9 0x70aa01ceb60f in __libc_start_call_main (/lib64/libc.so.6+0x2a60f) (BuildId: 4dbf824d0f6afd9b2faee4787d89a39921c0a65e)
    #10 0x70aa01ceb6bf in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x2a6bf) (BuildId: 4dbf824d0f6afd9b2faee4787d89a39921c0a65e)
    #11 0x000000408684 in _start (/velox/_build/debug/velox/connectors/hive/storage_adapters/s3fs/tests/velox_s3file_test+0x408684) (BuildId: bbf3099c9a66a548c6da234b17ad1b631e9ed649)

0x0000006114ff is located 33 bytes before global variable '.str.135' defined in '/velox/velox/connectors/hive/storage_adapters/s3fs/tests/S3UtilTest.cpp:126' (0x000000611520) of size 46
  '.str.135' is ascii string 'isHostExcludedFromProxy(hostname, pair.first)'
0x0000006114ff is located 1 bytes before global variable '.str.133' defined in '/velox/velox/connectors/hive/storage_adapters/s3fs/tests/S3UtilTest.cpp:122' (0x000000611500) of size 1
  '.str.133' is ascii string ''
0x0000006114ff is located 42 bytes after global variable '.str.132' defined in '/velox/velox/connectors/hive/storage_adapters/s3fs/tests/S3UtilTest.cpp:121' (0x0000006114c0) of size 21
  '.str.132' is ascii string 'localhost,foobar.com'
AddressSanitizer: global-buffer-overflow /velox/velox/connectors/hive/storage_adapters/s3fs/S3Util.cpp:160:16 in facebook::velox::filesystems::parseAWSStandardRegionName[abi:cxx11](std::basic_string_view<char, std::char_traits<char>>)
Shadow bytes around the buggy address:
```

Reviewed By: pedroerp

Differential Revision: D91278230

fbshipit-source-id: 05283bc8408069fa3f5ab8a7840b2bd0835fa7d6
dan13bauer pushed a commit that referenced this pull request Mar 6, 2026
UCXX/UCX is not stream-aware, so without synchronizing the CUDA stream
after contiguous_split(), data could be sent via tagSend before the GPU
kernels have finished writing to the buffers.

The single-partition path already had this sync. Add it to the
multi-partition path as well.

Review: @wence- comment #1
dan13bauer pushed a commit that referenced this pull request Mar 17, 2026
… mode (facebookincubator#16401)

Summary:
Pull Request resolved: facebookincubator#16401

This diff fixes data races detected by ThreadSanitizer (TSAN) in the barrier processing code under multi-threaded execution mode.

**Race condition #1**: Between `Driver::startBarrier()` and `Driver::hasBarrier()`
- Write: `startBarrier()` setting `barrier_` state
- Read: `hasBarrier()` (via `isDraining()`) checking barrier state
- These accesses happen concurrently from different driver threads.

**Race condition #2**: Between `Driver::dropInput()` and `Driver::shouldDropOutput()`
- Write: `dropInput()` modifying `barrier_.dropInputOpId` (called from a different driver's thread via `Task::dropInputLocked()`)
- Read: `shouldDropOutput()` reading `barrier_.dropInputOpId` (called from this driver's own thread)

**Fix approach:**
1. Added atomic flag `hasBarrier_` to track whether barrier processing is active, with `memory_order_acquire` on reads and `memory_order_release` on writes.
2. Changed `dropInputOpId` from `std::optional<int32_t>` to `std::atomic_int32_t` with sentinel value `kNoDropInput = -1` for thread-safe cross-driver access.
3. Added `BarrierState::reset()` method to cleanly reset barrier state.
4. Note that `barrier_` state is only meaningful when `hasBarrier_` is true.
5. Added `waitForAllTasksToBeDeleted()` in `barrierAfterNoMoreSplits` and `MergeJoinTest.barrier` tests to ensure all driver threads complete before test iterations end.

The acquire-release memory ordering ensures proper synchronization: any thread that reads `hasBarrier_` as `true` is guaranteed to see the fully initialized `barrier_` state.

Reviewed By: kunigami, srsuryadev

Differential Revision: D93355327

fbshipit-source-id: 5d7d3c636bef62f58daaa036089f41ea01572d3d
dan13bauer pushed a commit that referenced this pull request Apr 7, 2026
…acebookincubator#16868)

Summary:
Pull Request resolved: facebookincubator#16868

fix debug-only sanity check failure crash in DictionaryVector::validate during HashProbe::evalFilter for ANTI joins with a filter that references a probe-side join key.
for query like `ANTI JOIN ON t0=u0 AND t1=u1, FILTER: eq(t1, true)`

When the crash happens at
1:     filter_->eval(0, 1, true, filterInputRows_, evalCtx, filterResult_);
2:    exprs_[i]->eval(rows, context, result[i], this);
3:     checkResultInternalState(result);
4:      result->validate() -->  DictionaryVector<T>::validate

```
    VELOX_CHECK_LT(
        rawIndices_[i],
        dictionaryValues_->size(),
        "Dictionary index must be less than base vector's size. Index: {}.",
        i);
```
rawIndices_[0]                       ← from outputRowMapping_, written by batch 2
dictionaryValues_->size()    ← from peeledResult, created by batch 1
The filterResult_[0] is essentially currputed.

**Why it's not a prod issue**
1. The corrupted dictionary from the previous batch only survives if nothing overwrites it. Any batch with at least one selected row goes through evalEncodings → moveOrCopyResult → replaces it.
2. For FilterInputRows_ has zero selections. the only place to read the the currupted dict is filterPassed(i), and filterPassed(i) never reads the dictionary as  filterInputRows_.isValid(i)  = false;

The Crash CallStack

```

I0320 11:08:08.671550 493014 JoinFuzzer.cpp:363] Executing query plan with UNGROUPED strategy[0 groups]:
-- HashJoin[4][ANTI t0=u0 AND t1=u1, filter: eq(ROW["t1"],true)] -> t1:BOOLEAN, tp2:ARRAY<BOOLEAN>
  -- Project[1][expressions: (t0:BOOLEAN, ROW["t0"]), (t1:BOOLEAN, ROW["t1"]), (tp2:ARRAY<BOOLEAN>, ROW["tp2"])] -> t0:BOOLEAN, t1:BOOLEAN, tp2:ARRAY<BOOLEAN>
    -- Values[0][200 rows in 20 vectors] -> t0:BOOLEAN, t1:BOOLEAN, tp2:ARRAY<BOOLEAN>
  -- Project[3][expressions: (u0:BOOLEAN, ROW["u0"]), (u1:BOOLEAN, ROW["u1"]), (bp2:DATE, ROW["bp2"])] -> u0:BOOLEAN, u1:BOOLEAN, bp2:DATE
    -- Values[2][40 rows in 20 vectors] -> u0:BOOLEAN, u1:BOOLEAN, bp2:DATE
E0320 11:08:08.688031 493307 Exceptions.h:87] Line: buck-out/v2/art/fbcode/velox/vector/__velox_vector__/19e83d3ce9051793/buck-headers/velox/vector/DictionaryVector-inl.h:214, Function:validate, Expression: rawIndices_[i] < dictionaryValues_->size() (8 vs. 8) Dictionary index must be less than base vector's size. Index: 7., Source: RUNTIME, ErrorCode: INVALID_STATE
V0320 11:08:08.689075 493307 Task.cpp:2478] Terminating task test_cursor_1 with state Failed after running for 16ms
V0320 11:08:08.690125 493307 Task.cpp:1449] All drivers (2) finished for task test_cursor_1 after running for 17ms
terminate called after throwing an instance of 'facebook::velox::VeloxRuntimeError'
  what():  Exception: VeloxRuntimeError
Error Source: RUNTIME
Error Code: INVALID_STATE
Reason: (8 vs. 8) Dictionary index must be less than base vector's size. Index: 7.
Retriable: False
Expression: rawIndices_[i] < dictionaryValues_->size()
Context: Top-level Expression: eq(t1, true:BOOLEAN)
Additional Context: Operator: HashProbe[4] 2
Function: validate
File: buck-out/v2/art/fbcode/velox/vector/__velox_vector__/19e83d3ce9051793/buck-headers/velox/vector/DictionaryVector-inl.h
Line: 214
Stack trace:
# 0  std::shared_ptr<facebook::velox::VeloxException::State const> facebook::velox::VeloxException::State::make<facebook::velox::VeloxException::make(char const*, unsigned long, char const*, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, bool, facebook::velox::CompileTimeStringLiteral, facebook::velox::VeloxException::Type, std::basic_string_view<char, std::char_traits<char> >)::$_0>(facebook::velox::VeloxException::Type, facebook::velox::VeloxException::make(char const*, unsigned long, char const*, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, bool, facebook::velox::CompileTimeStringLiteral, facebook::velox::VeloxException::Type, std::basic_string_view<char, std::char_traits<char> >)::$_0)
# 1  facebook::velox::VeloxException::VeloxException(char const*, unsigned long, char const*, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, bool, facebook::velox::CompileTimeStringLiteral, facebook::velox::VeloxException::Type, std::basic_string_view<char, std::char_traits<char> >)
# 2  facebook::velox::VeloxRuntimeError::VeloxRuntimeError(char const*, unsigned long, char const*, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, bool, facebook::velox::CompileTimeStringLiteral, std::basic_string_view<char, std::char_traits<char> >)
# 3  void facebook::velox::detail::veloxCheckFail<facebook::velox::VeloxRuntimeError, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(facebook::velox::detail::VeloxCheckFailArgs const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, facebook::velox::CompileTimeStringLiteral)
# 4  facebook::velox::DictionaryVector<bool>::validate(facebook::velox::VectorValidateOptions const&) const
# 5  facebook::velox::exec::(anonymous namespace)::checkResultInternalState(std::shared_ptr<facebook::velox::BaseVector>&)
# 6  facebook::velox::exec::Expr::eval(facebook::velox::SelectivityVector const&, facebook::velox::exec::EvalCtx&, std::shared_ptr<facebook::velox::BaseVector>&, facebook::velox::exec::ExprSet const*)
# 7  facebook::velox::exec::ExprSet::eval(int, int, bool, facebook::velox::SelectivityVector const&, facebook::velox::exec::EvalCtx&, std::vector<std::shared_ptr<facebook::velox::BaseVector>, std::allocator<std::shared_ptr<facebook::velox::BaseVector> > >&)
# 8  facebook::velox::exec::HashProbe::evalFilter(int)
# 9  facebook::velox::exec::HashProbe::getOutputInternal(bool)
# 10 facebook::velox::exec::HashProbe::getOutput()
# 11 facebook::velox::exec::(anonymous namespace)::getOutput(facebook::velox::exec::Operator*, std::shared_ptr<facebook::velox::RowVector>&)
# 12 facebook::velox::exec::Driver::runInternal(std::shared_ptr<facebook::velox::exec::Driver>&, std::shared_ptr<facebook::velox::exec::BlockingState>&, std::shared_ptr<facebook::velox::RowVector>&)::$_5::operator()() const
# 13 void facebook::velox::exec::Driver::withDeltaCpuWallTimer<facebook::velox::exec::Driver::runInternal(std::shared_ptr<facebook::velox::exec::Driver>&, std::shared_ptr<facebook::velox::exec::BlockingState>&, std::shared_ptr<facebook::velox::RowVector>&)::$_5>(facebook::velox::exec::Operator*, facebook::velox::CpuWallTiming facebook::velox::exec::OperatorStats::*, facebook::velox::exec::Driver::runInternal(std::shared_ptr<facebook::velox::exec::Driver>&, std::shared_ptr<facebook::velox::exec::BlockingState>&, std::shared_ptr<facebook::velox::RowVector>&)::$_5&&)
# 14 facebook::velox::exec::Driver::runInternal(std::shared_ptr<facebook::velox::exec::Driver>&, std::shared_ptr<facebook::velox::exec::BlockingState>&, std::shared_ptr<facebook::velox::RowVector>&)
# 15 facebook::velox::exec::Driver::run(std::shared_ptr<facebook::velox::exec::Driver>)
# 16 facebook::velox::exec::Driver::enqueue(std::shared_ptr<facebook::velox::exec::Driver>)::$_0::operator()() const
# 17 void folly::detail::function::call_<facebook::velox::exec::Driver::enqueue(std::shared_ptr<facebook::velox::exec::Driver>)::$_0, true, false, void>(, folly::detail::function::Data&)
# 18 folly::detail::function::FunctionTraits<void ()>::operator()()
# 19 folly::ThreadPoolExecutor::runTask(std::shared_ptr<folly::ThreadPoolExecutor::Thread> const&, folly::ThreadPoolExecutor::Task&&)
# 20 folly::CPUThreadPoolExecutor::threadRun(std::shared_ptr<folly::ThreadPoolExecutor::Thread>)
# 21 void std::__invoke_impl<void, void (folly::ThreadPoolExecutor::*&)(std::shared_ptr<folly::ThreadPoolExecutor::Thread>), folly::ThreadPoolExecutor*&, std::shared_ptr<folly::ThreadPoolExecutor::Thread>&>(std::__invoke_memfun_deref, void (folly::ThreadPoolExecutor::*&)(std::shared_ptr<folly::ThreadPoolExecutor::Thread>), folly::ThreadPoolExecutor*&, std::shared_ptr<folly::ThreadPoolExecutor::Thread>&)
# 22 std::__invoke_result<void (folly::ThreadPoolExecutor::*&)(std::shared_ptr<folly::ThreadPoolExecutor::Thread>), folly::ThreadPoolExecutor*&, std::shared_ptr<folly::ThreadPoolExecutor::Thread>&>::type std::__invoke<void (folly::ThreadPoolExecutor::*&)(std::shared_ptr<folly::ThreadPoolExecutor::Thread>), folly::ThreadPoolExecutor*&, std::shared_ptr<folly::ThreadPoolExecutor::Thread>&>(void (folly::ThreadPoolExecutor::*&)(std::shared_ptr<folly::ThreadPoolExecutor::Thread>), folly::ThreadPoolExecutor*&, std::shared_ptr<folly::ThreadPoolExecutor::Thread>&)
# 23 void std::_Bind<void (folly::ThreadPoolExecutor::*(folly::ThreadPoolExecutor*, std::shared_ptr<folly::ThreadPoolExecutor::Thread>))(std::shared_ptr<folly::ThreadPoolExecutor::Thread>)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>)
# 24 void std::_Bind<void (folly::ThreadPoolExecutor::*(folly::ThreadPoolExecutor*, std::shared_ptr<folly::ThreadPoolExecutor::Thread>))(std::shared_ptr<folly::ThreadPoolExecutor::Thread>)>::operator()<, void>()
# 25 void folly::detail::function::call_<std::_Bind<void (folly::ThreadPoolExecutor::*(folly::ThreadPoolExecutor*, std::shared_ptr<folly::ThreadPoolExecutor::Thread>))(std::shared_ptr<folly::ThreadPoolExecutor::Thread>)>, true, false, void>(, folly::detail::function::Data&)
# 26 folly::detail::function::FunctionTraits<void ()>::operator()()
# 27 folly::NamedThreadFactory::newThread(folly::Function<void ()>&&)::{lambda()#1}::operator()()
# 28 void std::__invoke_impl<void, folly::NamedThreadFactory::newThread(folly::Function<void ()>&&)::{lambda()#1}>(std::__invoke_other, folly::NamedThreadFactory::newThread(folly::Function<void ()>&&)::{lambda()#1}&&)
# 29 std::__invoke_result<folly::NamedThreadFactory::newThread(folly::Function<void ()>&&)::{lambda()#1}>::type std::__invoke<folly::NamedThreadFactory::newThread(folly::Function<void ()>&&)::{lambda()#1}>(folly::NamedThreadFactory::newThread(folly::Function<void ()>&&)::{lambda()#1}&&)
# 30 void std::thread::_Invoker<std::tuple<folly::NamedThreadFactory::newThread(folly::Function<void ()>&&)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>)
# 31 std::thread::_Invoker<std::tuple<folly::NamedThreadFactory::newThread(folly::Function<void ()>&&)::{lambda()#1}> >::operator()()
# 32 std::thread::_State_impl<std::thread::_Invoker<std::tuple<folly::NamedThreadFactory::newThread(folly::Function<void ()>&&)::{lambda()#1}> > >::_M_run()
# 33 execute_native_thread_routine
# 34 asan_thread_start(void*)
# 35 start_thread
# 36 __clone3

 *** Aborted at 1774030088 (Unix time, try 'date -d 1774030088') ***
 *** Signal 6 (SIGABRT) (0x5888000785d6) received by PID 493014 (pthread TID 0x7fe1d236f100) (linux TID 493014) (maybe from PID 493014, UID 22664) (code: sent by tkill or tgkill), stack trace: ***
==493014==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
    @ 0000000000040bd3 folly::symbolizer::(anonymous namespace)::innerSignalHandler(int, siginfo_t*, void*)
                       ./fbcode/folly/debugging/symbolizer/SignalHandler.cpp:551
    @ 000000000003f5db folly::symbolizer::(anonymous namespace)::signalHandler(int, siginfo_t*, void*)
                       ./fbcode/folly/debugging/symbolizer/SignalHandler.cpp:572
    @ 000000000004455f (unknown)
                       /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/signal/../sysdeps/unix/sysv/linux/libc_sigaction.c:8
                       -> /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c
    @ 000000000009c993 pthread_kill
                       /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/nptl/pthread_kill.c:46
    @ 00000000000444ac raise
                       /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/signal/../sysdeps/posix/raise.c:26
    @ 000000000002c432 abort
                       /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/stdlib/abort.c:79
    @ 00000000000a3fc4 __gnu_cxx::__verbose_terminate_handler()
                       /home/engshare/third-party2/libgcc/11.x/src/gcc-11.x/x86_64-facebook-linux/libstdc++-v3/libsupc++/../../.././libstdc++-v3/libsupc++/vterminate.cc:95
    @ 00000000000a1b29 __cxxabiv1::__terminate(void (*)())
                       /home/engshare/third-party2/libgcc/11.x/src/gcc-11.x/x86_64-facebook-linux/libstdc++-v3/libsupc++/../../.././libstdc++-v3/libsupc++/eh_terminate.cc:48
    @ 00000000000a1b94 std::terminate()
                       /home/engshare/third-party2/libgcc/11.x/src/gcc-11.x/x86_64-facebook-linux/libstdc++-v3/libsupc++/../../.././libstdc++-v3/libsupc++/eh_terminate.cc:58
    @ 00000000000a1e5f __cxa_throw
                       /home/engshare/third-party2/libgcc/11.x/src/gcc-11.x/x86_64-facebook-linux/libstdc++-v3/libsupc++/../../.././libstdc++-v3/libsupc++/eh_throw.cc:95
    @ 000000000036a5af facebook::velox::exec::(anonymous namespace)::JoinFuzzer::execute(facebook::velox::exec::JoinMaker::PlanWithSplits const&, bool)
                       ./fbcode/velox/exec/fuzzer/JoinFuzzer.cpp:425
    @ 000000000035912d facebook::velox::exec::(anonymous namespace)::JoinFuzzer::verify(facebook::velox::core::JoinType)
                       ./fbcode/velox/exec/fuzzer/JoinFuzzer.cpp:731
    @ 00000000003456a2 facebook::velox::exec::(anonymous namespace)::JoinFuzzer::go()
                       ./fbcode/velox/exec/fuzzer/JoinFuzzer.cpp:868
    @ 0000000000343fba facebook::velox::exec::joinFuzzer(unsigned long, std::unique_ptr<facebook::velox::exec::test::ReferenceQueryRunner, std::default_delete<facebook::velox::exec::test::ReferenceQueryRunner> >)
                       ./fbcode/velox/exec/fuzzer/JoinFuzzer.cpp:884
    @ 00000000003d7de4 main
                       ./fbcode/velox/exec/fuzzer/JoinFuzzerRunner.cpp:116
    @ 000000000002c656 __libc_start_call_main
                       /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/csu/../sysdeps/nptl/libc_start_call_main.h:58
                       -> /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/csu/../sysdeps/x86/libc-start.c
    @ 000000000002c717 __libc_start_main
                       /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/csu/../csu/libc-start.c:409
                       -> /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/csu/../sysdeps/x86/libc-start.c
    @ 00000000003405c0 _start
                       /home/engshare/third-party2/glibc/2.34/src/glibc-2.34/csu/../sysdeps/x86_64/start.S:116

```

Reviewed By: tanjialiang

Differential Revision: D97574083

fbshipit-source-id: a317500b65cda9cee2db884206f8c84c4422a5e0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants