Skip to content

regression 1.46 -> 1.47 big-endian backtrace-related UI tests failing #77410

Closed
@infinity0

Description

@infinity0
Contributor
test [ui] ui/backtrace-debuginfo.rs ... FAILED
test [ui] ui/backtrace.rs ... FAILED
test [ui] ui/std-backtrace.rs ... FAILED

In all cases, we are using gdb 9.2 and LLVM 10.

The tests themselves haven't changed since ~1.38, so it must be an actual behavioural change in rustc.

ui/backtrace-debuginfo.rs
---- [ui] ui/backtrace-debuginfo.rs stdout ----


executing "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/stage2/bin/rustc" "/<<PKGBUILDDIR>>/src/test/ui/backtrace-debuginfo.rs" "-Zthreads=1" "--target=s390x-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/test/ui/backtrace-debuginfo/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/native/rust-test-helpers" "-Clinker=s390x-linux-gnu-gcc" "-g" "-Cllvm-args=-enable-tail-merge=0" "-Cllvm-args=-opt-bisect-limit=0" "-Cforce-frame-pointers=yes" "-L" "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/test/ui/backtrace-debuginfo/auxiliary"
------stdout------------------------------

------stderr------------------------------
BISECT: NOT running pass (1) Simplify the CFG on function (_ZN100_$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17hba41810a48013369E)
BISECT: NOT running pass (2) SROA on function (_ZN100_$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17hba41810a48013369E)
[.. snip ..]
BISECT: NOT running pass (151906) Stack Slot Coloring on function (main)
BISECT: NOT running pass (151907) Machine Copy Propagation Pass on function (main)
BISECT: NOT running pass (151908) Machine Loop Invariant Code Motion on function (main)
BISECT: NOT running pass (151909) PostRA Machine Sink on function (main)
BISECT: NOT running pass (151910) Shrink Wrapping analysis on function (main)
BISECT: NOT running pass (151911) Control Flow Optimizer on function (main)
BISECT: NOT running pass (151912) Tail Duplication on function (main)
BISECT: NOT running pass (151913) Machine Copy Propagation Pass on function (main)
BISECT: NOT running pass (151914) If Converter on function (main)
BISECT: NOT running pass (151915) Branch Probability Basic Block Placement on function (main)
BISECT: NOT running pass (151916) SystemZ Instruction Shortening on function (main)
BISECT: NOT running pass (151917) SystemZ Comparison Elimination on function (main)
BISECT: NOT running pass (151918) PostRA Machine Instruction Scheduler on function (main)

------------------------------------------
executing "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/test/ui/backtrace-debuginfo/a"
------stdout------------------------------
---------------------------------------
trace does not match position list
still need to find ["backtrace-debuginfo.rs:189", "backtrace-debuginfo.rs:125"]

--- stdout
backtrace-debuginfo.rs:125
backtrace-debuginfo.rs:189

--- stderr
test case 0
thread 'main' panicked at 'explicit panic', /<<PKGBUILDDIR>>/src/test/ui/backtrace-debuginfo.rs:86:5
stack backtrace:
   0:      0x3ff7f781048 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf75f205f89fe00ed
   1:      0x3ff7f898448 - core::fmt::write::h4f1c2070906884a3
   2:      0x3ff7f780a02 - std::io::Write::write_fmt::h226b2e1f14ad2764
   3:      0x3ff7f7c415e - std::panicking::default_hook::h9ae8480279f42440
   4:      0x3ff7f7c4ff8 - std::panicking::rust_panic_with_hook::haa0e4552a4685cd1
   5:      0x2aa08f936b6 - <unknown>
   6:      0x2aa08f934ee - <unknown>
   7:      0x2aa08f9e64e - <unknown>
   8:      0x2aa08f9102a - <unknown>
   9:      0x2aa08f91586 - <unknown>
  10:      0x2aa08f920cc - <unknown>
  11:      0x2aa08f93766 - <unknown>
  12:      0x2aa08f9354a - <unknown>
  13:      0x2aa08f93600 - <unknown>
  14:      0x3ff7f7c49e2 - std::panicking::try::do_call::hb8645513a8eb3708
  15:      0x3ff7f7c6834 - __rust_try.llvm.10017331706622121556
  16:      0x3ff7f7c5520 - std::rt::lang_start_internal::h8d96ae79e52a8f4b
  17:      0x2aa08f935ce - <unknown>
  18:      0x2aa08f9216e - <unknown>
  19:      0x3ff7f42b3ce - __libc_start_main
  20:      0x2aa08f834f4 - <unknown>
  21:                0x0 - <unknown>

---------------------------------------
trace does not match position list
still need to find ["backtrace-debuginfo.rs:189", "backtrace-debuginfo.rs:125"]

--- stdout
backtrace-debuginfo.rs:125
backtrace-debuginfo.rs:189

--- stderr
test case 1
thread 'main' panicked at 'explicit panic', /<<PKGBUILDDIR>>/src/test/ui/backtrace-debuginfo.rs:87:5
stack backtrace:
   0:      0x3ffa0201048 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf75f205f89fe00ed
   1:      0x3ffa0318448 - core::fmt::write::h4f1c2070906884a3
   2:      0x3ffa0200a02 - std::io::Write::write_fmt::h226b2e1f14ad2764
   3:      0x3ffa024415e - std::panicking::default_hook::h9ae8480279f42440
   4:      0x3ffa0244ff8 - std::panicking::rust_panic_with_hook::haa0e4552a4685cd1
   5:      0x2aa182136b6 - <unknown>
   6:      0x2aa182134ee - <unknown>
   7:      0x2aa1821e64e - <unknown>
   8:      0x2aa182110c6 - <unknown>
   9:      0x2aa18211586 - <unknown>
  10:      0x2aa182120cc - <unknown>
  11:      0x2aa18213766 - <unknown>
  12:      0x2aa1821354a - <unknown>
  13:      0x2aa18213600 - <unknown>
  14:      0x3ffa02449e2 - std::panicking::try::do_call::hb8645513a8eb3708
  15:      0x3ffa0246834 - __rust_try.llvm.10017331706622121556
  16:      0x3ffa0245520 - std::rt::lang_start_internal::h8d96ae79e52a8f4b
  17:      0x2aa182135ce - <unknown>
  18:      0x2aa1821216e - <unknown>
  19:      0x3ff9feab3ce - __libc_start_main
  20:      0x2aa182034f4 - <unknown>
  21:                0x0 - <unknown>

---------------------------------------
trace does not match position list
still need to find ["backtrace-debuginfo.rs:189", "backtrace-debuginfo.rs:125", "backtrace-debuginfo.rs:88", "backtrace-debuginfo-aux.rs:6"]

--- stdout
backtrace-debuginfo-aux.rs:6
backtrace-debuginfo.rs:88
backtrace-debuginfo.rs:125
backtrace-debuginfo.rs:189

--- stderr
test case 2
thread 'main' panicked at 'explicit panic', /<<PKGBUILDDIR>>/src/test/ui/backtrace-debuginfo.rs:89:9
stack backtrace:
   0:      0x3ffadb01048 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf75f205f89fe00ed
   1:      0x3ffadc18448 - core::fmt::write::h4f1c2070906884a3
   2:      0x3ffadb00a02 - std::io::Write::write_fmt::h226b2e1f14ad2764
   3:      0x3ffadb4415e - std::panicking::default_hook::h9ae8480279f42440
   4:      0x3ffadb44ff8 - std::panicking::rust_panic_with_hook::haa0e4552a4685cd1
   5:      0x2aa366936b6 - <unknown>
   6:      0x2aa366934ee - <unknown>
   7:      0x2aa3669e64e - <unknown>
   8:      0x2aa36693404 - <unknown>
   9:      0x2aa36693340 - <unknown>
  10:      0x2aa36691082 - <unknown>
  11:      0x2aa36691586 - <unknown>
  12:      0x2aa366920cc - <unknown>
  13:      0x2aa36693766 - <unknown>
  14:      0x2aa3669354a - <unknown>
  15:      0x2aa36693600 - <unknown>
  16:      0x3ffadb449e2 - std::panicking::try::do_call::hb8645513a8eb3708
  17:      0x3ffadb46834 - __rust_try.llvm.10017331706622121556
  18:      0x3ffadb45520 - std::rt::lang_start_internal::h8d96ae79e52a8f4b
  19:      0x2aa366935ce - <unknown>
  20:      0x2aa3669216e - <unknown>
  21:      0x3ffad7ab3ce - __libc_start_main
  22:      0x2aa366834f4 - <unknown>
  23:                0x0 - <unknown>

[.. snip .. many more examples like this ..]


------------------------------------------
stderr:
------------------------------------------
thread 'main' panicked at 'found some errors', /<<PKGBUILDDIR>>/src/test/ui/backtrace-debuginfo.rs:179:9
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

------------------------------------------
ui/backtrace.rs
---- [ui] ui/backtrace.rs stdout ----


executing "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/stage2/bin/rustc" "/<<PKGBUILDDIR>>/src/test/ui/backtrace.rs" "-Zthreads=1" "--target=s390x-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/test/ui/backtrace/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/native/rust-test-helpers" "-Clinker=s390x-linux-gnu-gcc" "-g" "-L" "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/test/ui/backtrace/auxiliary"
------stdout------------------------------

------stderr------------------------------

------------------------------------------
executing "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/test/ui/backtrace/a"
------stdout------------------------------

------stderr------------------------------
thread 'main' panicked at 'bad output: thread 'main' panicked at 'explicit panic', /<<PKGBUILDDIR>>/src/test/ui/backtrace.rs:18:9
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
', /<<PKGBUILDDIR>>/src/test/ui/backtrace.rs:68:5
stack backtrace:
   0: rust_begin_unwind
   1: std::panicking::begin_panic_fmt
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: std::panicking::try::do_call
   6: __rust_try.llvm.10017331706622121556
   7: std::rt::lang_start_internal
   8: <unknown>
   9: __libc_start_main
  10: <unknown>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

------------------------------------------

error: test run failed!
status: exit code: 101
command: "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/test/ui/backtrace/a"
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
thread 'main' panicked at 'bad output: thread 'main' panicked at 'explicit panic', /<<PKGBUILDDIR>>/src/test/ui/backtrace.rs:18:9
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
', /<<PKGBUILDDIR>>/src/test/ui/backtrace.rs:68:5
stack backtrace:
   0: rust_begin_unwind
   1: std::panicking::begin_panic_fmt
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: std::panicking::try::do_call
   6: __rust_try.llvm.10017331706622121556
   7: std::rt::lang_start_internal
   8: <unknown>
   9: __libc_start_main
  10: <unknown>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

------------------------------------------
ui/std-backtrace.rs
---- [ui] ui/std-backtrace.rs stdout ----


executing "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/stage2/bin/rustc" "/<<PKGBUILDDIR>>/src/test/ui/std-backtrace.rs" "-Zthreads=1" "--target=s390x-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/test/ui/std-backtrace/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/native/rust-test-helpers" "-Clinker=s390x-linux-gnu-gcc" "-g" "-L" "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/test/ui/std-backtrace/auxiliary"
------stdout------------------------------

------stderr------------------------------

------------------------------------------
executing "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/test/ui/std-backtrace/a"
------stdout------------------------------

------stderr------------------------------
thread 'main' panicked at 'assertion failed: String::from_utf8_lossy(&p.stdout).contains("backtrace::main")', /<<PKGBUILDDIR>>/src/test/ui/std-backtrace.rs:35:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

------------------------------------------

error: test run failed!
status: exit code: 101
command: "/<<PKGBUILDDIR>>/build/s390x-unknown-linux-gnu/test/ui/std-backtrace/a"
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
thread 'main' panicked at 'assertion failed: String::from_utf8_lossy(&p.stdout).contains("backtrace::main")', /<<PKGBUILDDIR>>/src/test/ui/std-backtrace.rs:35:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

------------------------------------------

Activity

infinity0

infinity0 commented on Oct 1, 2020

@infinity0
ContributorAuthor

@alexcrichton could this be related to #74682 ?

added
A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows
C-bugCategory: This is a bug.
T-libsRelevant to the library team, which will review and decide on the PR/issue.
O-PowerPCTarget: PowerPC processors
O-SPARCTarget: SPARC processors
O-SystemZTarget: SystemZ processors (s390x)
regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.
on Oct 1, 2020
added
I-prioritizeIssue: Indicates that prioritization has been requested for this issue.
on Oct 1, 2020
alexcrichton

alexcrichton commented on Oct 1, 2020

@alexcrichton
Member

Seems likely! If this is happening on big-endian platforms then there's likely an issue with endianness in (most likely) src/backtrace/gimli/*.rs. It could also be in gimli itself or addr2line, but it seems most likely to be in the integration in the backtrace crate itself.

jyn514

jyn514 commented on Oct 7, 2020

@jyn514
Member

Related: #77424

added
T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.
on Oct 7, 2020
camelid

camelid commented on Oct 7, 2020

@camelid
Member

Assigning P-high and removing I-prioritize as discussed in the prioritization working group.

added and removed
I-prioritizeIssue: Indicates that prioritization has been requested for this issue.
on Oct 7, 2020

14 remaining items

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

Metadata

Metadata

Assignees

Labels

A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsC-bugCategory: This is a bug.O-PowerPCTarget: PowerPC processorsO-SPARCTarget: SPARC processorsO-SystemZTarget: SystemZ processors (s390x)P-highHigh priorityT-libsRelevant to the library team, which will review and decide on the PR/issue.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    Participants

    @cuviper@alexcrichton@infinity0@nagisa@jonas-schievink

    Issue actions

      regression 1.46 -> 1.47 big-endian backtrace-related UI tests failing · Issue #77410 · rust-lang/rust