Skip to content

[C++] arrow-io-memory-benchmark crashes #24617

Closed

Description

@asfimport

"arrow-io-memory-benchmark" SIGSEGV in latest code base. It worked at least when my last commit 8 days ago: b1d4c86

Tested on x86 host. Build with "cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DARROW_COMPUTE=ON -DARROW_BUILD_BENCHMARKS=ON .."

stack backtrace attached

(gdb) r
Starting program: /home/cyb/share/debug/arrow-io-memory-benchmark
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
(gdb) [New Thread 0x7ffff37ff700 (LWP 29065)]
2020-04-14 14:24:40
Running /home/cyb/share/debug/arrow-io-memory-benchmark
Run on (32 X 2100 MHz CPU s)
CPU Caches:
L1 Data 32K (x16)
L1 Instruction 64K (x16)
L2 Unified 512K (x16)
L3 Unified 4096K (x16)
Load Average: 2.64, 4.39, 4.28
**WARNING** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
**WARNING** Library was built as DEBUG. Timings may be affected.

Thread 1 "arrow-io-memory" received signal SIGSEGV, Segmentation fault.
0x00007ffff68e67c8 in arrow::Buffer::is_mutable (this=0x0) at ../src/arrow/buffer.h:258
258 ../src/arrow/buffer.h: No such file or directory.
(gdb) bt
#0 0x00007ffff68e67c8 in arrow::Buffer::is_mutable (this=0x0) at ../src/arrow/buffer.h:258
#1 0x00007ffff6c3c41a in arrow::io::FixedSizeBufferWriter::FixedSizeBufferWriterImpl::FixedSizeBufferWriterImpl (this=0x5555558921f0, buffer=std::shared_ptrarrow::Buffer (empty) = {...})
at ../src/arrow/io/memory.cc:164
#2 0x00007ffff6c3a575 in arrow::io::FixedSizeBufferWriter::FixedSizeBufferWriter (this=0x7fffffffd660, buffer=std::shared_ptrarrow::Buffer (empty) = {...}, __in_chrg=,
vtt_parm=) at ../src/arrow/io/memory.cc:227
#3 0x00005555555ebd00 in arrow::ParallelMemoryCopy (state=...) at ../src/arrow/io/memory_benchmark.cc:303
#4 0x00005555555f80d4 in benchmark::internal::FunctionBenchmark::Run (this=0x555555891290, st=...)
at /home/cyb/arrow/cpp/debug/gbenchmark_ep-prefix/src/gbenchmark_ep/src/benchmark_register.cc:496
#5 0x000055555564bcc7 in benchmark::internal::BenchmarkInstance::Run (this=0x5555558939c0, iters=10, thread_id=0, timer=0x7fffffffd7a0, manager=0x555555894b70)
at /home/cyb/arrow/cpp/debug/gbenchmark_ep-prefix/src/gbenchmark_ep/src/benchmark_api_internal.cc:10
#6 0x000055555562c0c8 in benchmark::internal::(anonymous namespace)::RunInThread (b=0x5555558939c0, iters=10, thread_id=0, manager=0x555555894b70)
at /home/cyb/arrow/cpp/debug/gbenchmark_ep-prefix/src/gbenchmark_ep/src/benchmark_runner.cc:119
#7 0x000055555562c95a in benchmark::internal::(anonymous namespace)::BenchmarkRunner::DoNIterations (this=0x7fffffffddc0)
at /home/cyb/arrow/cpp/debug/gbenchmark_ep-prefix/src/gbenchmark_ep/src/benchmark_runner.cc:214
#8 0x000055555562d0ac in benchmark::internal::(anonymous namespace)::BenchmarkRunner::DoOneRepetition (this=0x7fffffffddc0, repetition_index=0)
at /home/cyb/arrow/cpp/debug/gbenchmark_ep-prefix/src/gbenchmark_ep/src/benchmark_runner.cc:299
#9 0x000055555562c558 in benchmark::internal::(anonymous namespace)::BenchmarkRunner::BenchmarkRunner (this=0x7fffffffddc0, b
=..., complexity_reports
=0x7fffffffdef0)
at /home/cyb/arrow/cpp/debug/gbenchmark_ep-prefix/src/gbenchmark_ep/src/benchmark_runner.cc:161
#10 0x000055555562d47f in benchmark::internal::RunBenchmark (b=..., complexity_reports=0x7fffffffdef0)
at /home/cyb/arrow/cpp/debug/gbenchmark_ep-prefix/src/gbenchmark_ep/src/benchmark_runner.cc:355
#11 0x00005555555f0ae6 in benchmark::internal::(anonymous namespace)::RunBenchmarks (benchmarks=std::vector of length 9, capacity 12 = {...}, display_reporter=0x555555891510, file_reporter=0x0)
at /home/cyb/arrow/cpp/debug/gbenchmark_ep-prefix/src/gbenchmark_ep/src/benchmark.cc:265
#12 0x00005555555f13b6 in benchmark::RunSpecifiedBenchmarks (display_reporter=0x555555891510, file_reporter=0x0)
at /home/cyb/arrow/cpp/debug/gbenchmark_ep-prefix/src/gbenchmark_ep/src/benchmark.cc:399
#13 0x00005555555f0ef8 in benchmark::RunSpecifiedBenchmarks () at /home/cyb/arrow/cpp/debug/gbenchmark_ep-prefix/src/gbenchmark_ep/src/benchmark.cc:340
#14 0x00005555555efc64 in main (argc=1, argv=0x7fffffffe398) at /home/cyb/arrow/cpp/debug/gbenchmark_ep-prefix/src/gbenchmark_ep/src/benchmark_main.cc:17

Reporter: Yibo Cai / @cyb70289
Assignee: Antoine Pitrou / @pitrou

PRs and other links:

Note: This issue was originally created as ARROW-8438. Please see the migration documentation for further details.

Activity

  1. asfimport commented on Apr 14, 2020

    @asfimport
    Author

    Antoine Pitrou / @pitrou:
    Thank you. I guess we don't usually build the benchmarks in debug mode...

  2. asfimport commented on Apr 14, 2020

    @asfimport
    Author

    Antoine Pitrou / @pitrou:
    Actually, it also fails in release mode :)

  3. asfimport commented on Apr 14, 2020

    @asfimport
    Author

    Yibo Cai / @cyb70289:
    Thanks for quick fix.
    I did find the issue in release build. Tried a debug build to catch some debug info.

  4. asfimport commented on Apr 14, 2020

    @asfimport
    Author

    Antoine Pitrou / @pitrou:
    Issue resolved by pull request 6929
    #6929

  5. added this to the 0.17.0 milestone on Jan 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions