Skip to content

[DNM][VL] Add regression tests for rss-sort shuffle reader EOS handling - #12983

Draft
kecookier wants to merge 3 commits into
apache:mainfrom
kecookier:bugfix/fix-rss-sort-read-eos
Draft

[DNM][VL] Add regression tests for rss-sort shuffle reader EOS handling#12983
kecookier wants to merge 3 commits into
apache:mainfrom
kecookier:bugfix/fix-rss-sort-read-eos

Conversation

@kecookier

Copy link
Copy Markdown
Contributor

What changes are proposed in this pull request?

Backgroud

The two bugs probed by these tests were discovered in our internal production environment: shuffle read tasks hit an infinite loop or deserialization failures with Celeborn (rss_sort + hash partitioning).

This PR runs these tests against the latest upstream gluten to check whether the issues still reproduce; if they do, I'll port the fix in a follow-up.

What

Adds VeloxShuffleReaderTest (velox_shuffle_reader_test): regression tests for the rss_sort shuffle reader, driven through the public VeloxRssSortShuffleReaderDeserializer API via fake arrow::io::InputStreams.

Covers graceful EOS on empty streams, uncompressed Presto pages spanning multiple read windows (nested struct pre-scan, header crossing a refill boundary, checksummed pages), the single-window zero-copy fast path, and GlutenByteInputStream::nextView contract.

Note

Two probe cases are expected to fail on current main, exposing real bugs that will be fixed in a follow-up PR:

  • EosMidPageTerminates: a truncated compressed page hits EOS mid-page inside readBytes's for(;;) loop; VeloxInputStream::next() ignores throwIfPastEnd and silently returns on EOS, so the loop never exits (FakeInputStream cuts it short after 100 consecutive EOS reads and surfaces "possible infinite loop" instead of hanging).
  • NegativeReadThrows: next() stores the Read() result into an unsigned offset_ with no signed-result guard.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 9, 2026 08:43
arrow::io::Readable::Read(int64_t) is pure virtual; without an override
FakeInputStream is abstract and make_shared fails to compile.

Co-Authored-By: Claude <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Pull request overview

Adds a new Velox shuffle reader regression test suite targeting rss_sort EOS handling and boundary conditions, with coverage for empty streams, mid-page truncation, negative reads, multi-window page parsing, and checksum paths.

Changes:

  • Introduce VeloxShuffleReaderTest with a controllable FakeInputStream to probe EOS/Read edge cases via the public deserializer API.
  • Add regression scenarios for multi-window uncompressed pages (nested structs, header refills), zero-copy single-window pages, and GlutenByteInputStream::nextView behavior.
  • Wire the new test binary into the Velox tests CMake target list.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.

File Description
cpp/velox/tests/VeloxShuffleReaderTest.cc Adds a new gtest suite with fake Arrow streams to regress rss_sort reader EOS and window-boundary behaviors.
cpp/velox/tests/CMakeLists.txt Registers the new velox_shuffle_reader_test binary in the test build.
Suppressed comments (1)

cpp/velox/tests/VeloxShuffleReaderTest.cc:1

  • These two tests are explicitly described as expected to fail on current main. If this PR is ever merged without the accompanying fix, it will cause the test suite to fail. To keep the regression coverage without breaking main, mark the tests as disabled (DISABLED_EosMidPageTerminates, DISABLED_NegativeReadThrows) or GTEST_SKIP() them behind a runtime/compile-time gate until the fix is present.
/*

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 100 to +102
add_velox_test(velox_shuffle_writer_test SOURCES VeloxShuffleWriterTest.cc)

add_velox_test(velox_shuffle_reader_test SOURCES VeloxShuffleReaderTest.cc)
Comment on lines +268 to +271
auto deserializer = makeDeserializer(
std::make_shared<FakeInputStream>(std::vector<uint8_t>{}, /*negativeRead=*/true));
VELOX_ASSERT_THROW(deserializer->next(), "Read returned negative value");
}
Comment on lines +115 to +120
// Throw a plain C++ exception: the reader wraps Read() in
// arrow::Result and drops arrow errors via .ValueOr(0), so an
// arrow::Status::IOError would be swallowed and the loop would spin on.
throw std::runtime_error(
"possible infinite loop: Read() returned 0 for " + std::to_string(kMaxConsecutiveEosReads) +
" consecutive calls");
Comment on lines +347 to +350
auto rowVectorA = makeNestedArraysRowVector(kArraysA, kElementsPerArray);
auto rowVectorB = makeNestedArraysRowVector(kArraysB, kElementsPerArray);
auto pageA = serializePage(rowVectorA);
auto pageB = serializePage(rowVectorB);
std::vector<uint8_t> payload = pageA;
payload.insert(payload.end(), pageB.begin(), pageB.end());
// First window holds all of A plus only 10 bytes of B's header.
const int64_t firstReadLimit = static_cast<int64_t>(pageA.size()) + 10;
Comment on lines +139 to +144
template <typename T>
void appendLe(std::vector<uint8_t>& out, T value) {
T v = value;
const auto* p = reinterpret_cast<const uint8_t*>(&v);
out.insert(out.end(), p, p + sizeof(T));
}
Copilot AI review requested due to automatic review settings September 9, 2026 09:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.

Comment on lines +265 to +271
TEST_F(VeloxShuffleReaderTest, EosMidPageTerminates) {
auto payload = buildTruncatedCompressedPage(/*compressedSize=*/1000, /*bodyBytes=*/8);
auto deserializer = makeDeserializer(std::make_shared<FakeInputStream>(std::move(payload)));

VELOX_ASSERT_THROW(
deserializer->next(), "Reading past end of VeloxRssSortShuffleReaderDeserializer::VeloxInputStream");
}
Comment on lines +277 to +281
TEST_F(VeloxShuffleReaderTest, NegativeReadThrows) {
auto deserializer = makeDeserializer(
std::make_shared<FakeInputStream>(std::vector<uint8_t>{}, /*negativeRead=*/true));
VELOX_ASSERT_THROW(deserializer->next(), "Read returned negative value");
}
Comment on lines +103 to +125
arrow::Result<int64_t> Read(int64_t nbytes, void* out) override {
if (negativeRead_) {
return static_cast<int64_t>(-1);
}
int64_t toRead = std::min<int64_t>(nbytes, static_cast<int64_t>(payload_.size()) - pos_);
if (firstRead_ && firstReadLimit_ >= 0) {
toRead = std::min<int64_t>(toRead, firstReadLimit_);
firstRead_ = false;
}
if (toRead > 0) {
std::memcpy(out, payload_.data() + pos_, toRead);
pos_ += toRead;
consecutiveEosReads_ = 0;
} else if (++consecutiveEosReads_ > kMaxConsecutiveEosReads) {
// Throw a plain C++ exception: the reader wraps Read() in
// arrow::Result and drops arrow errors via .ValueOr(0), so an
// arrow::Status::IOError would be swallowed and the loop would spin on.
throw std::runtime_error(
"possible infinite loop: Read() returned 0 for " + std::to_string(kMaxConsecutiveEosReads) +
" consecutive calls");
}
return toRead; // 0 == EOS when payload exhausted
}
Comment on lines +127 to +133
arrow::Result<std::shared_ptr<arrow::Buffer>> Read(int64_t nbytes) override {
ARROW_ASSIGN_OR_RAISE(auto buffer, arrow::AllocateResizableBuffer(nbytes));
ARROW_ASSIGN_OR_RAISE(int64_t bytesRead, Read(nbytes, buffer->mutable_data()));
ARROW_RETURN_NOT_OK(buffer->Resize(bytesRead, false));
buffer->ZeroPadding();
return std::move(buffer);
}
Comment on lines +290 to +295

auto rowVector = makeNestedArraysRowVector(kNumArrays, kElementsPerArray);
auto payload = serializePage(rowVector);
// The page must be larger than the reader's read window (~1MB) to exercise
// the multi-window slow path.
ASSERT_GT(payload.size(), 1 << 20);
Comment on lines +315 to +316
// Small page: header + payload well under 1MB -> zero-copy fast path.
ASSERT_LT(payload.size(), 1 << 20);
Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings September 9, 2026 09:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.

Comment on lines +45 to +50

#include <cstdint>
#include <cstring>
#include <memory>
#include <sstream>
#include <stdexcept>
Comment on lines +127 to +133
arrow::Result<std::shared_ptr<arrow::Buffer>> Read(int64_t nbytes) override {
ARROW_ASSIGN_OR_RAISE(auto buffer, arrow::AllocateResizableBuffer(nbytes));
ARROW_ASSIGN_OR_RAISE(int64_t bytesRead, Read(nbytes, buffer->mutable_data()));
ARROW_RETURN_NOT_OK(buffer->Resize(bytesRead, false));
buffer->ZeroPadding();
return std::move(buffer);
}
Comment on lines +149 to +154
template <typename T>
void appendLe(std::vector<uint8_t>& out, T value) {
T v = value;
const auto* p = reinterpret_cast<const uint8_t*>(&v);
out.insert(out.end(), p, p + sizeof(T));
}
Comment on lines +288 to +295
constexpr vector_size_t kNumArrays = 20000;
constexpr vector_size_t kElementsPerArray = 30;

auto rowVector = makeNestedArraysRowVector(kNumArrays, kElementsPerArray);
auto payload = serializePage(rowVector);
// The page must be larger than the reader's read window (~1MB) to exercise
// the multi-window slow path.
ASSERT_GT(payload.size(), 1 << 20);
Comment on lines +269 to +270
VELOX_ASSERT_THROW(
deserializer->next(), "Reading past end of VeloxRssSortShuffleReaderDeserializer::VeloxInputStream");
@kecookier

Copy link
Copy Markdown
Contributor Author

VeloxShuffleReaderTest.EosMidPageTerminates

2026-09-09T10:03:14.0186593Z           Start 5518: VeloxShuffleReaderTest.EosMidPageTerminates
2026-09-09T10:03:14.0186842Z
2026-09-09T10:03:14.0187407Z 5518: Test command: /__w/gluten/gluten/cpp/build/velox/tests/velox_shuffle_reader_test "--gtest_filter=VeloxShuffleReaderTest.EosMidPageTerminates" "--gtest_also_run_disabled_tests"
2026-09-09T10:03:14.0188207Z 5518: Working Directory: /__w/gluten/gluten/cpp/build/velox/tests
2026-09-09T10:03:14.0188559Z 5518: Test timeout computed to be: 10000000
2026-09-09T10:03:14.0799238Z 5518: Running main() from /__w/gluten/gluten/cpp/build/_deps/gtest-src/googletest/src/gtest_main.cc
2026-09-09T10:03:14.0799818Z 5518: Note: Google Test filter = VeloxShuffleReaderTest.EosMidPageTerminates
2026-09-09T10:03:14.0800215Z 5518: [==========] Running 1 test from 1 test suite.
2026-09-09T10:03:14.0800510Z 5518: [----------] Global test environment set-up.
2026-09-09T10:03:14.0800814Z 5518: [----------] 1 test from VeloxShuffleReaderTest
2026-09-09T10:03:14.0802311Z 5518: W20260909 10:03:14.079842  8078 VeloxBackend.cc:233] spark.gluten.numTaskSlotsPerExecutor is not set. Falling back to 1.
2026-09-09T10:03:14.1075299Z 5518: [ RUN      ] VeloxShuffleReaderTest.EosMidPageTerminates
2026-09-09T10:03:14.1076822Z 5518: unknown file: Failure
2026-09-09T10:03:14.1077445Z 5518: C++ exception with description "possible infinite loop: Read() returned 0 for 100 consecutive calls" thrown in the test body.
2026-09-09T10:03:14.1078587Z 5518: [  FAILED  ] VeloxShuffleReaderTest.EosMidPageTerminates (0 ms)
2026-09-09T10:03:14.1079014Z 5518: [----------] 1 test from VeloxShuffleReaderTest (0 ms total)
2026-09-09T10:03:14.1079308Z 5518:
2026-09-09T10:03:14.1094855Z 5518: [----------] Global test environment tear-down
2026-09-09T10:03:14.1095218Z 5518: [==========] 1 test from 1 test suite ran. (28 ms total)
2026-09-09T10:03:14.1095505Z 5518: [  PASSED  ] 0 tests.
2026-09-09T10:03:14.1095723Z 5518: [  FAILED  ] 1 test, listed below:
2026-09-09T10:03:14.1096298Z 5518: [  FAILED  ] VeloxShuffleReaderTest.EosMidPageTerminates
2026-09-09T10:03:14.1096607Z 5518:
2026-09-09T10:03:14.1096766Z 5518:  1 FAILED TEST

VeloxShuffleReaderTest.NegativeReadThrows

2026-09-09T10:03:14.1118854Z test 5519
2026-09-09T10:03:14.1119102Z           Start 5519: VeloxShuffleReaderTest.NegativeReadThrows
2026-09-09T10:03:14.1119342Z
2026-09-09T10:03:14.1119908Z 5519: Test command: /__w/gluten/gluten/cpp/build/velox/tests/velox_shuffle_reader_test "--gtest_filter=VeloxShuffleReaderTest.NegativeReadThrows" "--gtest_also_run_disabled_tests"
2026-09-09T10:03:14.1120703Z 5519: Working Directory: /__w/gluten/gluten/cpp/build/velox/tests
2026-09-09T10:03:14.1121039Z 5519: Test timeout computed to be: 10000000
2026-09-09T10:03:14.1628484Z 5519: Running main() from /__w/gluten/gluten/cpp/build/_deps/gtest-src/googletest/src/gtest_main.cc
2026-09-09T10:03:14.1629413Z 5519: Note: Google Test filter = VeloxShuffleReaderTest.NegativeReadThrows
2026-09-09T10:03:14.1629820Z 5519: [==========] Running 1 test from 1 test suite.
2026-09-09T10:03:14.1630109Z 5519: [----------] Global test environment set-up.
2026-09-09T10:03:14.1630415Z 5519: [----------] 1 test from VeloxShuffleReaderTest
2026-09-09T10:03:14.1630982Z 5519: W20260909 10:03:14.162734  8079 VeloxBackend.cc:233] spark.gluten.numTaskSlotsPerExecutor is not set. Falling back to 1.
2026-09-09T10:03:14.1906961Z 5519: [ RUN      ] VeloxShuffleReaderTest.NegativeReadThrows
2026-09-09T10:03:14.1908319Z 5519: E20260909 10:03:14.190541  8079 Exceptions.h:87] Line: /__w/gluten/gluten/cpp/velox/shuffle/VeloxShuffleReader.cc:867, Function:next, Expression: 0 < realBytes (0 vs. -1) Reading past end of file., Sourc
e: RUNTIME, ErrorCode: INVALID_STATE
2026-09-09T10:03:14.1910387Z 5519: /__w/gluten/gluten/cpp/velox/tests/VeloxShuffleReaderTest.cc:280: Failure
2026-09-09T10:03:14.1910919Z 5519: Value of: e.message().find("Read returned negative value") != std::string::npos
2026-09-09T10:03:14.1911288Z 5519:   Actual: false
2026-09-09T10:03:14.1911467Z 5519: Expected: true
2026-09-09T10:03:14.1911912Z 5519: Expected error message to contain 'Read returned negative value', but received '(0 vs. -1) Reading past end of file.'.
2026-09-09T10:03:14.1912529Z 5519: [  FAILED  ] VeloxShuffleReaderTest.NegativeReadThrows (0 ms)
2026-09-09T10:03:14.1913122Z 5519: [----------] 1 test from VeloxShuffleReaderTest (0 ms total)
2026-09-09T10:03:14.1913422Z 5519:
2026-09-09T10:03:14.1913615Z 5519: [----------] Global test environment tear-down
2026-09-09T10:03:14.1913929Z 5519: [==========] 1 test from 1 test suite ran. (28 ms total)
2026-09-09T10:03:14.1914210Z 5519: [  PASSED  ] 0 tests.
2026-09-09T10:03:14.1914421Z 5519: [  FAILED  ] 1 test, listed below:
2026-09-09T10:03:14.1914725Z 5519: [  FAILED  ] VeloxShuffleReaderTest.NegativeReadThrows
2026-09-09T10:03:14.1915020Z 5519:
2026-09-09T10:03:14.1915170Z 5519:  1 FAILED TEST
2026-09-09T10:03:14.1952119Z 5519/5699 Test #5519: VeloxShuffleReaderTest.NegativeReadThrows .................................................................................................................................................
.......................................................***Failed    0.08 sec

VeloxShuffleReaderTest.UncompressedNestedStructPageSpansWindows

2026-09-09T10:03:14.1954712Z test 5520
2026-09-09T10:03:14.1955313Z           Start 5520: VeloxShuffleReaderTest.UncompressedNestedStructPageSpansWindows
2026-09-09T10:03:14.1955650Z
2026-09-09T10:03:14.1956313Z 5520: Test command: /__w/gluten/gluten/cpp/build/velox/tests/velox_shuffle_reader_test "--gtest_filter=VeloxShuffleReaderTest.UncompressedNestedStructPageSpansWindows" "--gtest_also_run_disabled_tests"
2026-09-09T10:03:14.1957202Z 5520: Working Directory: /__w/gluten/gluten/cpp/build/velox/tests
2026-09-09T10:03:14.1957531Z 5520: Test timeout computed to be: 10000000
2026-09-09T10:03:14.2457725Z 5520: Running main() from /__w/gluten/gluten/cpp/build/_deps/gtest-src/googletest/src/gtest_main.cc
2026-09-09T10:03:14.2458428Z 5520: Note: Google Test filter = VeloxShuffleReaderTest.UncompressedNestedStructPageSpansWindows
2026-09-09T10:03:14.2458908Z 5520: [==========] Running 1 test from 1 test suite.
2026-09-09T10:03:14.2459197Z 5520: [----------] Global test environment set-up.
2026-09-09T10:03:14.2459496Z 5520: [----------] 1 test from VeloxShuffleReaderTest
2026-09-09T10:03:14.2461407Z 5520: W20260909 10:03:14.245643  8080 VeloxBackend.cc:233] spark.gluten.numTaskSlotsPerExecutor is not set. Falling back to 1.
2026-09-09T10:03:14.2731318Z 5520: [ RUN      ] VeloxShuffleReaderTest.UncompressedNestedStructPageSpansWindows
2026-09-09T10:03:14.2878361Z 5520: E20260909 10:03:14.287478  8080 Exceptions.h:87] Line: /__w/gluten/gluten/ep/build-velox/build/velox_ep/velox/serializers/PrestoSerializerDeserializationUtils.cpp:183, Function:readLengthPrefixedString,
Expression: size >= 0 (-673841146 vs. 0) Invalid serialized string size: -673841146, Source: RUNTIME, ErrorCode: INVALID_STATE
2026-09-09T10:03:14.2918088Z 5520: unknown file: Failure
2026-09-09T10:03:14.2918437Z 5520: C++ exception with description "Exception: VeloxRuntimeError
2026-09-09T10:03:14.2918761Z 5520: Error Source: RUNTIME
2026-09-09T10:03:14.2918969Z 5520: Error Code: INVALID_STATE
2026-09-09T10:03:14.2919279Z 5520: Reason: (-673841146 vs. 0) Invalid serialized string size: -673841146
2026-09-09T10:03:14.2919628Z 5520: Retriable: False
2026-09-09T10:03:14.2919817Z 5520: Expression: size >= 0
2026-09-09T10:03:14.2920038Z 5520: Function: readLengthPrefixedString
2026-09-09T10:03:14.2920558Z 5520: File: /__w/gluten/gluten/ep/build-velox/build/velox_ep/velox/serializers/PrestoSerializerDeserializationUtils.cpp
2026-09-09T10:03:14.2921063Z 5520: Line: 183
2026-09-09T10:03:14.2921229Z 5520: Stack trace:
2026-09-09T10:03:14.2921456Z 5520: # 0  _ZN8facebook5velox7process10StackTraceC1Ei
2026-09-09T10:03:14.2922132Z 5520: # 1  _ZN8facebook5velox14VeloxExceptionC1EPKcmS3_St17basic_string_viewIcSt11char_traitsIcEES7_S7_S7_bNS0_24CompileTimeStringLiteralENS1_4TypeES7_
2026-09-09T10:03:14.2923625Z 5520: # 2  _ZN8facebook5velox6detail14veloxCheckFailINS0_17VeloxRuntimeErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvRKNS1_18VeloxCheckFailArgsET0_NS0_24CompileTimeStringLiteralE
2026-09-09T10:03:14.2924708Z 5520: # 3  _ZN8facebook5velox10serializer6presto6detail12_GLOBAL__N_124readLengthPrefixedStringEPNS0_15ByteInputStreamE
2026-09-09T10:03:14.2926039Z 5520: # 4  _ZN8facebook5velox10serializer6presto6detail12_GLOBAL__N_111readColumnsEPNS0_15ByteInputStreamERKSt6vectorISt10shared_ptrIKNS0_4TypeEESaISB_EEiPKmiPNS0_6memory10MemoryPoolERKNS2_17PrestoVectorSerde1
3PrestoOptionsERS7_IS8_INS0_10BaseVectorEESaISQ_EE
2026-09-09T10:03:14.2927738Z 5520: # 5  _ZN8facebook5velox10serializer6presto6detail14readTopColumnsERNS0_15ByteInputStreamERKSt10shared_ptrIKNS0_7RowTypeEEPNS0_6memory10MemoryPoolERKS6_INS0_9RowVectorEEiRKNS2_17PrestoVectorSerde13PrestoO
ptionsEb
2026-09-09T10:03:14.2929272Z 5520: # 6  _ZN8facebook5velox10serializer6presto17PrestoVectorSerde11deserializeEPNS0_15ByteInputStreamEPNS0_6memory10MemoryPoolESt10shared_ptrIKNS0_7RowTypeEEPS9_INS0_9RowVectorEEiPKNS0_11VectorSerde7OptionsE
2026-09-09T10:03:14.2930772Z 5520: # 7  _ZN8facebook5velox10serializer6presto17PrestoVectorSerde11deserializeEPNS0_15ByteInputStreamEPNS0_6memory10MemoryPoolESt10shared_ptrIKNS0_7RowTypeEEPS9_INS0_9RowVectorEEPKNS0_11VectorSerde7OptionsE
2026-09-09T10:03:14.2932425Z 5520: # 8  _ZN8facebook5velox17VectorStreamGroup4readEPNS0_15ByteInputStreamEPNS0_6memory10MemoryPoolESt10shared_ptrIKNS0_7RowTypeEEPNS0_11VectorSerdeEPS7_INS0_9RowVectorEEPKNSB_7OptionsE
2026-09-09T10:03:14.2933381Z 5520: # 9  _ZN6gluten37VeloxRssSortShuffleReaderDeserializer4nextEv
2026-09-09T10:03:14.2933947Z 5520: # 10 _ZN6gluten68VeloxShuffleReaderTest_UncompressedNestedStructPageSpansWindows_Test8TestBodyEv
2026-09-09T10:03:14.2934662Z 5520: # 11 _ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc
2026-09-09T10:03:14.2935238Z 5520: # 12 _ZN7testing4Test3RunEv.part.0
2026-09-09T10:03:14.2935501Z 5520: # 13 _ZN7testing8TestInfo3RunEv
2026-09-09T10:03:14.2935760Z 5520: # 14 _ZN7testing9TestSuite3RunEv.part.0
2026-09-09T10:03:14.2936085Z 5520: # 15 _ZN7testing8internal12UnitTestImpl11RunAllTestsEv
2026-09-09T10:03:14.2936402Z 5520: # 16 _ZN7testing8UnitTest3RunEv
2026-09-09T10:03:14.2936623Z 5520: # 17 main
2026-09-09T10:03:14.2936798Z 5520: # 18 __libc_start_call_main
2026-09-09T10:03:14.2937013Z 5520: # 19 __libc_start_main
2026-09-09T10:03:14.2937205Z 5520: # 20 _start
2026-09-09T10:03:14.2937381Z 5520: " thrown in the test body.
2026-09-09T10:03:14.2937788Z 5520: [  FAILED  ] VeloxShuffleReaderTest.UncompressedNestedStructPageSpansWindows (18 ms)
2026-09-09T10:03:14.2938295Z 5520: [----------] 1 test from VeloxShuffleReaderTest (18 ms total)
2026-09-09T10:03:14.2938587Z 5520:
2026-09-09T10:03:14.2938782Z 5520: [----------] Global test environment tear-down
2026-09-09T10:03:14.2939096Z 5520: [==========] 1 test from 1 test suite ran. (46 ms total)
2026-09-09T10:03:14.2939479Z 5520: [  PASSED  ] 0 tests.
2026-09-09T10:03:14.2939697Z 5520: [  FAILED  ] 1 test, listed below:
2026-09-09T10:03:14.2940089Z 5520: [  FAILED  ] VeloxShuffleReaderTest.UncompressedNestedStructPageSpansWindows
2026-09-09T10:03:14.2940475Z 5520:
2026-09-09T10:03:14.2940622Z 5520:  1 FAILED TEST
2026-09-09T10:03:14.2964252Z 5520/5699 Test #5520: VeloxShuffleReaderTest.UncompressedNestedStructPageSpansWindows ...........................................................................................................................
.......................................................***Failed    0.10 sec

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants