abseil / abseil/abseil-cpp

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

Ouverte
#1,925 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
C++
Étoiles
18.1k
Forks
3.2k
Merge moyen
20 h 36 min
PR mergées (30 j)
1

Description

### Describe the issue

Since the [20250814.0 release](https://github.com/abseil/abseil-cpp/releases/tag/20250814.0), the [`abseil-cpp` package in Fedora](https://src.fedoraproject.org/rpms/abseil-cpp/) 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](https://github.com/rpm-software-management/mock) 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.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.