test: Add a regression test for Apple platforms aborting on free#155713
test: Add a regression test for Apple platforms aborting on free#155713rust-bors[bot] merged 1 commit intorust-lang:mainfrom
free#155713Conversation
|
r? @adwinwhite rustbot has assigned @adwinwhite. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
@bors try jobs=aarch64-apple |
This comment has been minimized.
This comment has been minimized.
test: Add a regression test for Apple platforms aborting on `free` try-job: aarch64-apple
This comment has been minimized.
This comment has been minimized.
|
💔 Test for eb1af91 failed: CI. Failed job:
|
This comment has been minimized.
This comment has been minimized.
943e78c to
acb99bb
Compare
|
Blocked of course if the runner in CI fails. @dianqk this is just your repro from #150898 (comment). |
This comment has been minimized.
This comment has been minimized.
acb99bb to
3e273bc
Compare
This comment has been minimized.
This comment has been minimized.
3e273bc to
a511777
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
test: Add a regression test for Apple platforms aborting on `free` try-job: aarch64-apple
| // bug. If this fails with SIGABRT, you may need to upgrade your system to | ||
| // avoid other unexpected behavior. | ||
| // | ||
| // The bug was resolved by MacOS 26.4. |
There was a problem hiding this comment.
| // The bug was resolved by MacOS 26.4. | |
| // The bug was resolved by macOS 26.4. |
| #[unsafe(no_mangle)] | ||
| fn retv() -> Reproducer { | ||
| // let x = [48, 0, 3, 1, 48, 0]; | ||
| let x = [0, 0, 3, 0, 0, 0]; |
There was a problem hiding this comment.
I don't know if this can pass Miri check. Should we use let x = [48, 0, 3, 1, 48, 0];?
There was a problem hiding this comment.
I replaced the test case with something that I think should be less reliant on codegen, based on your asm repro. I found that using threads makes it reproduce is every time, or at least hasn't not crashed in the
30-40 times I've run it.
|
|
||
| let s = 128; | ||
| // A few more allocations seem to be necessary, probably to prime | ||
| // the allocator find the bug. |
There was a problem hiding this comment.
Should we document that this test can be a flaky test?
There was a problem hiding this comment.
Mentioned this in the comment that it can have false negatives but is also pretty reliable
This comment was marked as outdated.
This comment was marked as outdated.
a511777 to
227e008
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
test: Add a regression test for Apple platforms aborting on `free` try-job: aarch64-apple
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
227e008 to
04a5c6e
Compare
Add a regression test for RUST-150898 to make users aware that if this test fails, they may encounter unusual behavior elsewhere. Original repro authored by dianqk.
04a5c6e to
150905c
Compare
This comment has been minimized.
This comment has been minimized.
test: Add a regression test for Apple platforms aborting on `free` try-job: aarch64-apple
|
Any idea what the actual failure mechanism is in the buggy allocator? I can't wrap my head around how writing a random value to a (should be) valid allocation could cause free to not work. |
I have no idea. Really. And I don't think Apple will share this bug. |
|
@bors r+ rollup |
…=dianqk test: Add a regression test for Apple platforms aborting on `free` Add a regression test for rust-lang#150898 to make users aware that if this test failures, they may encounter unusual behavior elsewhere.
…=dianqk test: Add a regression test for Apple platforms aborting on `free` Add a regression test for rust-lang#150898 to make users aware that if this test failures, they may encounter unusual behavior elsewhere.
…uwer Rollup of 12 pull requests Successful merges: - #149452 (Refactor out common code into a `IndexItem::new` constructor) - #155621 (Document #[diagnostic::on_move] in the unstable book.) - #155635 (delegation: rename `Self` generic param to `This` in recursive delegations) - #155730 (Some cleanups around per parent disambiguators) - #153537 (rustc_codegen_ssa: Define ELF flag value for sparc-unknown-linux-gnu) - #155219 (Do not suggest borrowing enclosing calls for nested where-clause obligations) - #155408 (rustdoc: Fix Managarm C Library name in cfg pretty printer) - #155571 (Enable AddressSanitizer on arm-unknown-linux-gnueabihf and armv7-unknown-linux-gnueabihf) - #155713 (test: Add a regression test for Apple platforms aborting on `free`) - #155723 (Fix tier level for 5 thumb bare-metal ARM targets) - #155735 (Fix typo by removing extra 'to') - #155736 (Remove `AllVariants` workaround for rust-analyzer)
…uwer Rollup of 12 pull requests Successful merges: - #149452 (Refactor out common code into a `IndexItem::new` constructor) - #155621 (Document #[diagnostic::on_move] in the unstable book.) - #155635 (delegation: rename `Self` generic param to `This` in recursive delegations) - #155730 (Some cleanups around per parent disambiguators) - #153537 (rustc_codegen_ssa: Define ELF flag value for sparc-unknown-linux-gnu) - #155219 (Do not suggest borrowing enclosing calls for nested where-clause obligations) - #155408 (rustdoc: Fix Managarm C Library name in cfg pretty printer) - #155571 (Enable AddressSanitizer on arm-unknown-linux-gnueabihf and armv7-unknown-linux-gnueabihf) - #155713 (test: Add a regression test for Apple platforms aborting on `free`) - #155723 (Fix tier level for 5 thumb bare-metal ARM targets) - #155735 (Fix typo by removing extra 'to') - #155736 (Remove `AllVariants` workaround for rust-analyzer)
View all comments
Add a regression test for #150898 to make users aware that if this test failures, they may encounter unusual behavior elsewhere.