Skip to content

Conversation

saethlin
Copy link
Member

@saethlin saethlin commented Aug 10, 2024

The PR history is a bit of a mess because I had to test this a lot with try-jobs, so I'll try to summarize the non-obvious changes here.

A number of tests now have min-lldb-version: 1800. Those tests should have gotten an lldb version jump either in #124781 or long ago. Note that all such tests with that lldb version requirement do not run in Apple CI.

tests/debuginfo/drop-locations.rs is staying disabled for now because gdb doesn't know to stop on the drop calls produced by a }: #128971

tests/debuginfo/function-arg-initialization.rs now has -Zmir-enable-passes=-SingleUseConsts; without that we initialize the const before the function prelude: #128945

tests/debuginfo/by-value-non-immediate-argument.rs fails because we don't generate a function prelude for unused non-immediate arguments, even with all optimizations disabled, and this seems to confuse debuggers on aarch64: #128973

tests/debuginfo/pretty-std.rs is staying disabled on windows-gnu because our test harness doesn't know how to load our pretty-printers on that target: #128981

tests/debuginfo/method-on-enum.rs and tests/debuginfo/option-like-enum.rs encounter some kind of gdb bug on i686-pc-windows-gnu. I don't know enough about that situation to write a good issue.

I plan on doing more work on this test suite. There's clearly a lot more basic cleanup work to do here.

@rustbot
Copy link
Collaborator

rustbot commented Aug 10, 2024

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 10, 2024
@rust-log-analyzer

This comment has been minimized.

@jieyouxu jieyouxu added A-testsuite Area: The testsuite used to check the correctness of rustc A-debuginfo Area: Debugging information in compiled programs (DWARF, PDB, etc.) labels Aug 10, 2024
@saethlin
Copy link
Member Author

@bors try

@bors
Copy link
Collaborator

bors commented Aug 10, 2024

⌛ Trying commit 1bc1383 with merge fd2f290...

bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 10, 2024
…=<try>

Enable debuginfo tests that were "temporarily disabled" for the past 6 years

`tests/debuginfo/drop-locations.rs`
No idea why we are setting `-O -Cno-prepopulate-passes`. Nowadays that turns on MIR opts, no idea what it did in 2018.
Turning off optimizations makes just loc2 missing. That seems like a bug in debuginfo generation. Turning off all MIR opts and even adding a `drop(s)` on that line doesn't help. Cursed. Keeping this test ignored.

`tests/debuginfo/option-like-enum.rs`
Debuggers are better at Rust!
Also one inexplicable change. No idea why we used to expect that. Deleted.

`tests/debuginfo/function-arg-initialization.rs`
SingleUseConsts produces incoherent gdb behavior. Seems like a bug.

`tests/debuginfo/macro-stepping.rs`
Also broken by SingleUseConsts. I hate tests like this, nobody uses a debugger on code that's just assigning consts to unused variables. Test should be rewritten with realistic code.

`tests/debuginfo/basic-types-metadata.rs`
Debuggers are better at Rust!
Diverging functions don't have -> ! in their whatis output anymore? Not sure if that is a bug.

try-job: test-various
try-job: aarch64-apple
try-job: x86_64-msvc
try-job: x86_64-mingw
try-job: i686-msvc
try-job: i686-mingw
try-job: armhf-gnu
try-job: dist-various-1
try-job: aarch64-gnu
@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented Aug 10, 2024

💔 Test failed - checks-actions

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 10, 2024
@saethlin
Copy link
Member Author

@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 10, 2024
…=<try>

Enable debuginfo tests that were "temporarily disabled" for the past 6 years

`tests/debuginfo/drop-locations.rs`
No idea why we are setting `-O -Cno-prepopulate-passes`. Nowadays that turns on MIR opts, no idea what it did in 2018.
Turning off optimizations makes just loc2 missing. That seems like a bug in debuginfo generation. Turning off all MIR opts and even adding a `drop(s)` on that line doesn't help. Cursed. Keeping this test ignored.

`tests/debuginfo/option-like-enum.rs`
Debuggers are better at Rust!
Also one inexplicable change. No idea why we used to expect that. Deleted.

`tests/debuginfo/function-arg-initialization.rs`
SingleUseConsts produces incoherent gdb behavior. Seems like a bug.

`tests/debuginfo/macro-stepping.rs`
Also broken by SingleUseConsts. I hate tests like this, nobody uses a debugger on code that's just assigning consts to unused variables. Test should be rewritten with realistic code.

`tests/debuginfo/basic-types-metadata.rs`
Debuggers are better at Rust!
Diverging functions don't have -> ! in their whatis output anymore? Not sure if that is a bug.

try-job: aarch64-apple
@bors
Copy link
Collaborator

bors commented Aug 10, 2024

⌛ Trying commit b37d94f with merge ecaa186...

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented Aug 10, 2024

💔 Test failed - checks-actions

@saethlin
Copy link
Member Author

@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 10, 2024
…=<try>

Enable debuginfo tests that were "temporarily disabled" for the past 6 years

`tests/debuginfo/drop-locations.rs`
No idea why we are setting `-O -Cno-prepopulate-passes`. Nowadays that turns on MIR opts, no idea what it did in 2018.
Turning off optimizations makes just loc2 missing. That seems like a bug in debuginfo generation. Turning off all MIR opts and even adding a `drop(s)` on that line doesn't help. Cursed. Keeping this test ignored.

`tests/debuginfo/option-like-enum.rs`
Debuggers are better at Rust!
Also one inexplicable change. No idea why we used to expect that. Deleted.

`tests/debuginfo/function-arg-initialization.rs`
SingleUseConsts produces incoherent gdb behavior. Seems like a bug.

`tests/debuginfo/macro-stepping.rs`
Also broken by SingleUseConsts. I hate tests like this, nobody uses a debugger on code that's just assigning consts to unused variables. Test should be rewritten with realistic code.

`tests/debuginfo/basic-types-metadata.rs`
Debuggers are better at Rust!
Diverging functions don't have -> ! in their whatis output anymore? Not sure if that is a bug.

---

More failures on apple!
`tests/debuginfo/by-value-non-immediate-argument.rs`
`tests/debuginfo/function-arg-initialization.rs`
`tests/debuginfo/function-prologue-stepping-regular.rs`
I think all of these indicate that lldb on aarch64-apple does not understand indirect by-value non-immediate arguments. Is that known?

`tests/debuginfo/method-on-enum.rs`
`tests/debuginfo/option-like-enum.rs`
`tests/debuginfo/struct-in-enum.rs`
These look like lldb on aarch64-apple can't print enums. Except that we have other tests where it looks like it can? It looks like all the other enum-related tests were using `min-lldb-version: 1800`. I don't know what effect that has.

try-job: aarch64-apple
@bors
Copy link
Collaborator

bors commented Aug 10, 2024

⌛ Trying commit 5241f87 with merge 996a340...

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@saethlin
Copy link
Member Author

@bors try

@bors
Copy link
Collaborator

bors commented Aug 10, 2024

⌛ Trying commit c3cf903 with merge 29bb0d6...

bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 10, 2024
…=<try>

Enable debuginfo tests that were "temporarily disabled" for the past 6 years

`tests/debuginfo/drop-locations.rs`
No idea why we are setting `-O -Cno-prepopulate-passes`. Nowadays that turns on MIR opts, no idea what it did in 2018.
Turning off optimizations makes just loc2 missing. That seems like a bug in debuginfo generation. Turning off all MIR opts and even adding a `drop(s)` on that line doesn't help. Cursed. Keeping this test ignored.

`tests/debuginfo/option-like-enum.rs`
Debuggers are better at Rust!
Also one inexplicable change. No idea why we used to expect that. Deleted.

`tests/debuginfo/function-arg-initialization.rs`
SingleUseConsts produces incoherent gdb behavior. Seems like a bug.

`tests/debuginfo/macro-stepping.rs`
Also broken by SingleUseConsts. I hate tests like this, nobody uses a debugger on code that's just assigning consts to unused variables. Test should be rewritten with realistic code.

`tests/debuginfo/basic-types-metadata.rs`
Debuggers are better at Rust!
Diverging functions don't have -> ! in their whatis output anymore? Not sure if that is a bug.

---

More failures on apple!
`tests/debuginfo/by-value-non-immediate-argument.rs`
`tests/debuginfo/function-arg-initialization.rs`
`tests/debuginfo/function-prologue-stepping-regular.rs`
I think all of these indicate that lldb on aarch64-apple does not understand indirect by-value non-immediate arguments. Is that known?

`tests/debuginfo/method-on-enum.rs`
`tests/debuginfo/option-like-enum.rs`
`tests/debuginfo/struct-in-enum.rs`
These look like lldb on aarch64-apple can't print enums. Except that we have other tests where it looks like it can? It looks like all the other enum-related tests were using `min-lldb-version: 1800`. I don't know what effect that has.

try-job: aarch64-apple
@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented Aug 10, 2024

💔 Test failed - checks-actions

@saethlin
Copy link
Member Author

@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 10, 2024
…=<try>

Enable debuginfo tests that were "temporarily disabled" for the past 6 years

`tests/debuginfo/drop-locations.rs`
No idea why we are setting `-O -Cno-prepopulate-passes`. Nowadays that turns on MIR opts, no idea what it did in 2018.
Turning off optimizations makes just loc2 missing. That seems like a bug in debuginfo generation. Turning off all MIR opts and even adding a `drop(s)` on that line doesn't help. Cursed. Keeping this test ignored.

`tests/debuginfo/option-like-enum.rs`
Debuggers are better at Rust!
Also one inexplicable change. No idea why we used to expect that. Deleted.

`tests/debuginfo/function-arg-initialization.rs`
SingleUseConsts produces incoherent gdb behavior. Seems like a bug.

`tests/debuginfo/macro-stepping.rs`
Also broken by SingleUseConsts. I hate tests like this, nobody uses a debugger on code that's just assigning consts to unused variables. Test should be rewritten with realistic code.

`tests/debuginfo/basic-types-metadata.rs`
Debuggers are better at Rust!
Diverging functions don't have -> ! in their whatis output anymore? Not sure if that is a bug.

---

More failures on apple!
`tests/debuginfo/by-value-non-immediate-argument.rs`
`tests/debuginfo/function-arg-initialization.rs`
`tests/debuginfo/function-prologue-stepping-regular.rs`
I think all of these indicate that lldb on aarch64-apple does not understand indirect by-value non-immediate arguments. Is that known?

`tests/debuginfo/method-on-enum.rs`
`tests/debuginfo/option-like-enum.rs`
`tests/debuginfo/struct-in-enum.rs`
lldb on aarch64-apple can't print enums until at least llvm 18. We use an old lldb on apple.

try-job: aarch64-apple
@bors
Copy link
Collaborator

bors commented Aug 15, 2024

⌛ Trying commit 23273e0 with merge 4a0fe6f...

bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 15, 2024
…=<try>

Enable debuginfo tests that have been "temporarily disabled" for the past 6 years

The PR history is a bit of a mess because I had to test this a lot with try-jobs, so I'll try to summarize the non-obvious changes here.

A number of tests now have `min-lldb-version: 1800`. Those tests should have gotten an lldb version jump either in rust-lang#124781 or long ago. Note that all such tests with that lldb version requirement do not run in Apple CI.

`tests/debuginfo/drop-locations.rs` is staying disabled for now because gdb doesn't know to stop on the drop calls produced by a `}`: rust-lang#128971

`tests/debuginfo/function-arg-initialization.rs` now has `-Zmir-enable-passes=-SingleUseConsts`; without that we initialize the const before the function prelude: rust-lang#128945

`tests/debuginfo/by-value-non-immediate-argument.rs` fails because we don't generate a function prelude for unused non-immediate arguments, even with all optimizations disabled, and this seems to confuse debuggers on aarch64: rust-lang#128973

`tests/debuginfo/pretty-std.rs` is staying disabled on windows-gnu because our test harness doesn't know how to load our pretty-printers on that target: rust-lang#128981

`tests/debuginfo/method-on-enum.rs` and `tests/debuginfo/option-like-enum.rs` encounter some kind of gdb bug on i686-pc-windows-gnu. I don't know enough about that situation to write a good issue.

I plan on doing more work on this test suite. There's clearly a lot more basic cleanup work to do here.

try-job: x86_64-gnu-llvm-17
try-job: x86_64-gnu-tools
try-job: aarch64-gnu
try-job: arm-android
try-job: armhf-gnu
try-job: i686-gnu
try-job: i686-gnu-nopt
try-job: mingw-check
try-job: test-various
try-job: x86_64-fuchsia
try-job: x86_64-rust-for-linux
try-job: x86_64-gnu
try-job: x86_64-gnu-stable
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-debug
try-job: x86_64-gnu-llvm-18
try-job: x86_64-gnu-nopt
try-job: x86_64-apple-1
try-job: aarch64-apple
try-job: x86_64-msvc
try-job: i686-msvc
try-job: i686-mingw
try-job: x86_64-mingw
@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
i686-msvc
i686-mingw
x86_64-mingw
##[endgroup]
INFO:root:Job type: TryRunType(custom_jobs=['x86_64-gnu-llvm-17', 'x86_64-gnu-tools', 'aarch64-gnu', 'arm-android', 'armhf-gnu', 'i686-gnu', 'i686-gnu-nopt', 'mingw-check', 'test-various', 'x86_64-fuchsia', 'x86_64-rust-for-linux', 'x86_64-gnu', 'x86_64-gnu-stable', 'x86_64-gnu-aux', 'x86_64-gnu-debug', 'x86_64-gnu-llvm-18', 'x86_64-gnu-nopt', 'x86_64-apple-1', 'aarch64-apple', 'x86_64-msvc', 'i686-msvc', 'i686-mingw', 'x86_64-mingw'])
  File "/home/runner/work/rust/rust/src/ci/github-actions/calculate-job-matrix.py", line 195, in <module>
  File "/home/runner/work/rust/rust/src/ci/github-actions/calculate-job-matrix.py", line 195, in <module>
    jobs = calculate_jobs(run_type, data)
  File "/home/runner/work/rust/rust/src/ci/github-actions/calculate-job-matrix.py", line 124, in calculate_jobs
    raise Exception(
Exception: It is only possible to schedule up to 10 custom jobs, received 23 jobs
##[error]Process completed with exit code 1.

@saethlin
Copy link
Member Author

Well that's deeply unfortunate. I'll have to do this in batches.

@saethlin
Copy link
Member Author

@bors try

@bors
Copy link
Collaborator

bors commented Aug 15, 2024

⌛ Trying commit 23273e0 with merge 7237a68...

bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 15, 2024
…=<try>

Enable debuginfo tests that have been "temporarily disabled" for the past 6 years

The PR history is a bit of a mess because I had to test this a lot with try-jobs, so I'll try to summarize the non-obvious changes here.

A number of tests now have `min-lldb-version: 1800`. Those tests should have gotten an lldb version jump either in rust-lang#124781 or long ago. Note that all such tests with that lldb version requirement do not run in Apple CI.

`tests/debuginfo/drop-locations.rs` is staying disabled for now because gdb doesn't know to stop on the drop calls produced by a `}`: rust-lang#128971

`tests/debuginfo/function-arg-initialization.rs` now has `-Zmir-enable-passes=-SingleUseConsts`; without that we initialize the const before the function prelude: rust-lang#128945

`tests/debuginfo/by-value-non-immediate-argument.rs` fails because we don't generate a function prelude for unused non-immediate arguments, even with all optimizations disabled, and this seems to confuse debuggers on aarch64: rust-lang#128973

`tests/debuginfo/pretty-std.rs` is staying disabled on windows-gnu because our test harness doesn't know how to load our pretty-printers on that target: rust-lang#128981

`tests/debuginfo/method-on-enum.rs` and `tests/debuginfo/option-like-enum.rs` encounter some kind of gdb bug on i686-pc-windows-gnu. I don't know enough about that situation to write a good issue.

I plan on doing more work on this test suite. There's clearly a lot more basic cleanup work to do here.

try-job: aarch64-gnu
try-job: arm-android
try-job: armhf-gnu
try-job: i686-gnu
try-job: i686-gnu-nopt
try-job: test-various
try-job: x86_64-fuchsia
try-job: x86_64-rust-for-linux
try-job: x86_64-gnu
try-job: x86_64-gnu-stable
@saethlin
Copy link
Member Author

@bors try-

@saethlin
Copy link
Member Author

@bors try

@bors
Copy link
Collaborator

bors commented Aug 15, 2024

⌛ Trying commit 23273e0 with merge dc0d722...

bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 15, 2024
…=<try>

Enable debuginfo tests that have been "temporarily disabled" for the past 6 years

The PR history is a bit of a mess because I had to test this a lot with try-jobs, so I'll try to summarize the non-obvious changes here.

A number of tests now have `min-lldb-version: 1800`. Those tests should have gotten an lldb version jump either in rust-lang#124781 or long ago. Note that all such tests with that lldb version requirement do not run in Apple CI.

`tests/debuginfo/drop-locations.rs` is staying disabled for now because gdb doesn't know to stop on the drop calls produced by a `}`: rust-lang#128971

`tests/debuginfo/function-arg-initialization.rs` now has `-Zmir-enable-passes=-SingleUseConsts`; without that we initialize the const before the function prelude: rust-lang#128945

`tests/debuginfo/by-value-non-immediate-argument.rs` fails because we don't generate a function prelude for unused non-immediate arguments, even with all optimizations disabled, and this seems to confuse debuggers on aarch64: rust-lang#128973

`tests/debuginfo/pretty-std.rs` is staying disabled on windows-gnu because our test harness doesn't know how to load our pretty-printers on that target: rust-lang#128981

`tests/debuginfo/method-on-enum.rs` and `tests/debuginfo/option-like-enum.rs` encounter some kind of gdb bug on i686-pc-windows-gnu. I don't know enough about that situation to write a good issue.

I plan on doing more work on this test suite. There's clearly a lot more basic cleanup work to do here.

try-job: aarch64-apple
try-job: aarch64-gnu
try-job: dist-i586-gnu-i586-i686-musl
try-job: i686-gnu
try-job: i686-gnu-nopt
try-job: i686-mingw
try-job: i686-msvc
try-job: test-various
try-job: x86_64-apple-1
@bors
Copy link
Collaborator

bors commented Aug 15, 2024

☀️ Try build successful - checks-actions
Build commit: dc0d722 (dc0d722c0d1b73f4031ac499936a3810c18b032b)

@saethlin
Copy link
Member Author

@bors try

@saethlin
Copy link
Member Author

@bors retry

@bors
Copy link
Collaborator

bors commented Aug 16, 2024

⌛ Trying commit 23273e0 with merge 1e46c35...

bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 16, 2024
…=<try>

Enable debuginfo tests that have been "temporarily disabled" for the past 6 years

The PR history is a bit of a mess because I had to test this a lot with try-jobs, so I'll try to summarize the non-obvious changes here.

A number of tests now have `min-lldb-version: 1800`. Those tests should have gotten an lldb version jump either in rust-lang#124781 or long ago. Note that all such tests with that lldb version requirement do not run in Apple CI.

`tests/debuginfo/drop-locations.rs` is staying disabled for now because gdb doesn't know to stop on the drop calls produced by a `}`: rust-lang#128971

`tests/debuginfo/function-arg-initialization.rs` now has `-Zmir-enable-passes=-SingleUseConsts`; without that we initialize the const before the function prelude: rust-lang#128945

`tests/debuginfo/by-value-non-immediate-argument.rs` fails because we don't generate a function prelude for unused non-immediate arguments, even with all optimizations disabled, and this seems to confuse debuggers on aarch64: rust-lang#128973

`tests/debuginfo/pretty-std.rs` is staying disabled on windows-gnu because our test harness doesn't know how to load our pretty-printers on that target: rust-lang#128981

`tests/debuginfo/method-on-enum.rs` and `tests/debuginfo/option-like-enum.rs` encounter some kind of gdb bug on i686-pc-windows-gnu. I don't know enough about that situation to write a good issue.

I plan on doing more work on this test suite. There's clearly a lot more basic cleanup work to do here.

try-job: x86_64-gnu
try-job: x86_64-gnu-distcheck
try-job: x86_64-gnu-llvm-17
try-job: x86_64-gnu-llvm-18
try-job: x86_64-gnu-nopt
try-job: x86_64-gnu-stable
try-job: x86_64-mingw
try-job: x86_64-msvc
@bors
Copy link
Collaborator

bors commented Aug 16, 2024

☀️ Try build successful - checks-actions
Build commit: 1e46c35 (1e46c3571acb5ef1e0c7b799aaceca252dd00778)

@saethlin
Copy link
Member Author

@bors r=compiler-errors

@bors
Copy link
Collaborator

bors commented Aug 16, 2024

📌 Commit 23273e0 has been approved by compiler-errors

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 16, 2024
@bors
Copy link
Collaborator

bors commented Aug 16, 2024

⌛ Testing commit 23273e0 with merge d626fbd...

@bors
Copy link
Collaborator

bors commented Aug 16, 2024

☀️ Test successful - checks-actions
Approved by: compiler-errors
Pushing d626fbd to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Aug 16, 2024
@bors bors merged commit d626fbd into rust-lang:master Aug 16, 2024
7 checks passed
@rustbot rustbot added this to the 1.82.0 milestone Aug 16, 2024
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (d626fbd): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 4.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
4.0% [4.0%, 4.0%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 4.0% [4.0%, 4.0%] 1

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 751.18s -> 749.902s (-0.17%)
Artifact size: 339.11 MiB -> 339.17 MiB (0.02%)

@saethlin saethlin deleted the unignore-debuginfo-tests branch August 25, 2024 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-debuginfo Area: Debugging information in compiled programs (DWARF, PDB, etc.) A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants