Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[Bug]: StackTrace.NestedSignal in absl_stacktrace_test fails on ppc64le since 20250184.0

未关闭
#1,925 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 2 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
冷清
技术栈
cmake, cpp, linux

调研方向

失败的测试是 absl_stacktrace_test,具体是 StackTrace.NestedSignal。错误源自 absl/debugging/internal/stacktrace_powerpc-inl.inc 第 117 行。首先检查该文件以及 absl/debugging/stacktrace_test.cc 中的测试。了解 ppc64le 上的 VDSO 断言失败。使用真实的 ppc64le 硬件或 Fedora 的构建基础设施重现该问题。完成的标准是有一个能够解决该断言、同时不破坏其他架构的补丁。

由索引模型根据 Issue 内容生成。

描述

Describe the issue

Since the 20250814.0 release, the abseil-cpp package in Fedora fails to build on ppc64le due to a failure in StackTrace.NestedSignal in absl_stacktrace_test on the ppc64le architecture. This does not happen on the x86_64, i686, aarch64, or s390x architectures.

        Start  62: absl_stacktrace_test
 61/218 Test  #62: absl_stacktrace_test ...............................Subprocess aborted***Exception:   1.16 sec
Running main() from gmock_main.cc
[==========] Running 5 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 5 tests from StackTrace
[ RUN      ] StackTrace.FixupNoFixupEquivalence
/builddir/build/BUILD/abseil-cpp-20250814.0-build/abseil-cpp-20250814.0/absl/debugging/stacktrace_test.cc:107: Skipped
Frame pointers are required, but not guaranteed in OSS

[  SKIPPED ] StackTrace.FixupNoFixupEquivalence (0 ms)
[ RUN      ] StackTrace.FixupLowStackUsage
[       OK ] StackTrace.FixupLowStackUsage (2 ms)
[ RUN      ] StackTrace.CustomUnwinderPerformsFixup
[       OK ] StackTrace.CustomUnwinderPerformsFixup (0 ms)
[ RUN      ] StackTrace.CanonicalFrameAddresses
[       OK ] StackTrace.CanonicalFrameAddresses (0 ms)
[ RUN      ] StackTrace.NestedSignal
absl_stacktrace_test: /builddir/build/BUILD/abseil-cpp-20250814.0-build/abseil-cpp-20250814.0/absl/debugging/internal/stacktrace_powerpc-inl.inc:117: void** NextStackFrame(void**, const void*) [with bool STRICT_UNWINDING = true; bool IS_WITH_CONTEXT = true]: Assertion `false && "VDSO is present, but doesn't have expected symbol"' failed.
Steps to reproduce the problem

I tried the following on emulated ppc64le hardware – anyone can do this by running a ppc64le version of Fedora 41 via qemu-user-system; I used a mock chroot with emulation via qemu-user-static.

$ git clone https://github.com/abseil/abseil-cpp.git
$ cd abseil-cpp
$ git checkout 20250814.0
$ cmake -S. -Bbuild -DABSL_BUILD_TESTING:BOOL=ON -DABSL_USE_EXTERNAL_GOOGLETEST:BOOL=ON -DABSL_FIND_GOOGLETEST:BOOL=ON
$ cmake --build build -j16 --verbose
$ ctest --test-dir build --output-on-failure --force-new-ctest-process -j16 --exclude-regex 'absl_(symbolize|mutex|btree)_test'

I excluded absl_symbolize_test because it failed in emulation only, which I didn’t consider significant; I excluded absl_mutex_test and absl_btree_test because they were painfully slow while working in emulation on an aarch64 laptop.

I was not able to reproduce this issue in emulation.

I repeated the above with Fedora’s C++ compiler flags,

export CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection'

and got the same result.

What version of Abseil are you using?

20250184.0

What operating system and version are you using?

Fedora Rawhide (44)

What compiler and version are you using?
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/ppc64le-redhat-linux/15/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: ppc64le-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,m2,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-targets=powerpcle-linux --disable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-libstdcxx-backtrace --with-libstdcxx-zoneinfo=/usr/share/zoneinfo --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-15.2.1-build/gcc-15.2.1-20250808/obj-ppc64le-redhat-linux/isl-install --enable-offload-targets=nvptx-none --enable-offload-defaulted --without-cuda-driver --enable-gnu-indirect-function --enable-secureplt --with-long-double-128 --with-long-double-format=ieee --with-cpu-32=power8 --with-tune-32=power8 --with-cpu-64=power8 --with-tune-64=power8 --build=ppc64le-redhat-linux --with-build-config=bootstrap-lto --enable-link-serialization=1
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 15.2.1 20250808 (Red Hat 15.2.1-1) (GCC) 
What build system are you using?
cmake version 3.31.6

CMake suite maintained and supported by Kitware (kitware.com/cmake).
Additional context

While I don’t have interactive access to real pp64le hardware, I’m happy to test candidate patches or do experiments to get additional information by performing non-interactive abseil-cpp package “scratch” builds on Fedora infrastructure.

This reminds me of https://github.com/abseil/abseil-cpp/issues/1804, which also appears only on ppc64le and is also difficult to reproduce in emulation.

主要语言
C++
星标
18.2k
派生
3.2k
平均合并
1 天 13 小时
30 天内合并 PR
18

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

abseil/abseil-cpp 的其他 Issue

查看 abseil/abseil-cpp 的全部 Issue

相似的 Issue

更多 C++ Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。