Skip to content

Conversation

RalfJung
Copy link
Member

@RalfJung RalfJung commented Jun 1, 2025

r? @ghost

Includes rust-lang/miri#4370 to unbreak PR CI. (So we're committing to having bda28aa38 in the Miri history by landing this, whether or not that Miri PR lands.)

Cc @Noratrieb @tiif

CraftSpider and others added 30 commits May 22, 2025 11:59
./miri bench: sort results alphabetically
test some aarch64 windows targets
Support F_GETFL and F_SETFL for fcntl
The Miri Cronjob Bot and others added 12 commits May 31, 2025 04:54
The test did `write` and `read` and hoped that it would read/write
everything, which doesn't always happen and caused CI failures.
Switch to `write_all` and `read_to_end` to make it more reliable.
…-a-lot-instead

Fix tokio/file-io.rs test relying on `read`/`write` not being short
Tokio `AsyncWriteExt::write` doesn't actually ensure that the contents
have written, it just *starts* the write operation. To ensure that the
file has actually been written, we need to `sync_all` first.
@rustbot
Copy link
Collaborator

rustbot commented Jun 1, 2025

The Miri subtree was changed

cc @rust-lang/miri

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jun 1, 2025
@RalfJung
Copy link
Member Author

RalfJung commented Jun 1, 2025

@bors r+ p=10
to un-break PR CI

@bors
Copy link
Collaborator

bors commented Jun 1, 2025

📌 Commit 0884c68 has been approved by RalfJung

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-review Status: Awaiting review from the assignee but also interested parties. labels Jun 1, 2025
@Noratrieb Noratrieb mentioned this pull request Jun 1, 2025
@bors
Copy link
Collaborator

bors commented Jun 1, 2025

⌛ Testing commit 0884c68 with merge a88fc0e...

@bors
Copy link
Collaborator

bors commented Jun 1, 2025

☀️ Test successful - checks-actions
Approved by: RalfJung
Pushing a88fc0e to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jun 1, 2025
@bors bors merged commit a88fc0e into rust-lang:master Jun 1, 2025
10 checks passed
@rustbot rustbot added this to the 1.89.0 milestone Jun 1, 2025
Copy link
Contributor

github-actions bot commented Jun 1, 2025

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 9b0268a (parent) -> a88fc0e (this PR)

Test differences

Show 33470 test diffs

Stage 1

  • errors::verify_ast_passes_extern_without_abi_61: pass -> [missing] (J0)
  • errors::verify_incremental_delete_lock_24: pass -> [missing] (J0)
  • errors::verify_monomorphize_abi_error_unsupported_vector_type_8: pass -> [missing] (J0)
  • errors::verify_parse_asm_underscore_input_176: pass -> [missing] (J0)
  • errors::verify_parse_mut_on_non_ident_pattern_120: pass -> [missing] (J0)
  • errors::verify_parse_unexpected_self_in_generic_parameters_95: pass -> [missing] (J0)
  • errors::verify_passes_unnecessary_stable_feature_169: pass -> [missing] (J0)
  • errors::verify_session_invalid_float_literal_suffix_37: pass -> [missing] (J0)
  • layout::tree::tests::prune::should_accept::visible_def_in_seq_len_3: pass -> [missing] (J0)
  • lints::verify_lint_builtin_unsafe_block_7: pass -> [missing] (J0)
  • lints::verify_lint_invalid_from_utf8_unchecked_47: pass -> [missing] (J0)
  • opaque::tests::test_i32: pass -> [missing] (J0)
  • parser::tests::string_to_tts_macro: pass -> [missing] (J0)
  • session_diagnostics::verify_attr_parsing_invalid_repr_align_need_arg_13: pass -> [missing] (J0)
  • collections::vec_deque::tests::make_contiguous_big_tail: pass -> [missing] (J1)
  • floats::f16::test_round_ties_even: pass -> [missing] (J1)
  • floats::f64::test_total_cmp: pass -> [missing] (J1)
  • fmt::builders::debug_struct::test_empty: pass -> [missing] (J1)
  • fmt::num::test_format_int_sign_padding: pass -> [missing] (J1)
  • iter::adapters::zip::test_zip_nth: pass -> [missing] (J1)
  • net::ip_addr::ipv4_const: pass -> [missing] (J1)
  • num::dec2flt::decimal::check_fast_path_f16: pass -> [missing] (J1)
  • num::i16::test_signed_checked_div: pass -> [missing] (J1)
  • num::i32::test_isolate_most_significant_one: pass -> [missing] (J1)
  • num::test_try_i32u8: pass -> [missing] (J1)
  • num::test_try_u128i128: pass -> [missing] (J1)
  • num::test_try_usizeu16: pass -> [missing] (J1)
  • num::u128::test_carrying_add: pass -> [missing] (J1)
  • num::u32::test_reverse_bits: pass -> [missing] (J1)
  • single_line_formatting: pass -> [missing] (J1)
  • slice::memchr::matches_past_nul_reversed: pass -> [missing] (J1)
  • sort::tests::stable::sort_vs_sort_by: pass -> [missing] (J1)
  • sys_common::wtf8::tests::wtf8_utf8_boundary_inside_surrogate: pass -> [missing] (J1)
  • thread::tests::test_park_timeout_unpark_before: pass -> [missing] (J1)
  • vec::max_swap_remove: pass -> [missing] (J1)
  • vec::test_drain_inclusive_range: pass -> [missing] (J1)
  • vec::test_vec_macro_repeat: pass -> [missing] (J1)
  • vec::test_zero_sized_vec_push: pass -> [missing] (J1)
  • vec_deque::test_param_taggy: pass -> [missing] (J1)
  • btree::set::difference_staggered_10k_vs_10k: pass -> [missing] (J2)
  • hash::map::find_nonexisting: pass -> [missing] (J2)
  • hash::map::new_drop: pass -> [missing] (J2)
  • iter::bench_flat_map_sum: pass -> [missing] (J2)
  • net::socket_addr::tests::set_port: pass -> [missing] (J2)
  • net::tcp::tests::peek: pass -> [missing] (J2)
  • net::tcp::tests::smoke_test: pass -> [missing] (J2)
  • num::int_log::u32_log10_random: pass -> [missing] (J2)
  • process::tests::test_override_env: pass -> [missing] (J2)
  • sort::tests::stable::deterministic_string_random_s95: pass -> [missing] (J2)
  • str::split_a_str::short_pile_of_poo: pass -> [missing] (J2)
  • sort::tests::stable::panic_retain_orig_set_i32_random_d20: ignore -> [missing] (J3)
  • sort::tests::unstable::correct_dyn_val_random: ignore -> [missing] (J3)
  • sort::tests::unstable::violate_ord_retain_orig_set_string_random_s95: ignore -> [missing] (J3)

Stage 2

  • errors::verify_codegen_ssa_unsupported_link_self_contained_77: [missing] -> pass (J0)
  • errors::verify_incremental_delete_old_18: [missing] -> pass (J0)
  • errors::verify_mir_dataflow_peek_bit_not_set_7: [missing] -> pass (J0)
  • errors::verify_mir_transform_force_inline_attr_1: [missing] -> pass (J0)
  • errors::verify_parse_default_not_followed_by_item_74: [missing] -> pass (J0)
  • errors::verify_parse_unexpected_token_after_dot_72: [missing] -> pass (J0)
  • errors::verify_session_target_stack_protector_not_supported_24: [missing] -> pass (J0)
  • lints::verify_lint_useless_ptr_null_checks_ref_43: [missing] -> pass (J0)
  • session_diagnostics::verify_borrowck_opaque_type_lifetime_mismatch_6: [missing] -> pass (J0)
  • tests::test_unterminated: [missing] -> pass (J0)
  • cell::refcell_swap_borrows: [missing] -> pass (J1)
  • collections::btree::map::tests::test_range_mut: [missing] -> pass (J1)
  • collections::btree::set::tests::test_intersection: [missing] -> pass (J1)
  • collections::hash::map::tests::test_empty_iter: [missing] -> pass (J1)
  • collections::vec_deque::tests::test_split_off: [missing] -> pass (J1)
  • io::buffered::tests::bench_buffered_writer: [missing] -> pass (J1)
  • iter::adapters::array_chunks::test_iterator_array_chunks_fold: [missing] -> pass (J1)
  • iter::adapters::map_windows::check_zero_window: [missing] -> pass (J1)
  • iter::range::test_range_inclusive_len: [missing] -> pass (J1)
  • iter::traits::double_ended::test_rposition: [missing] -> pass (J1)
  • mpsc_sync::oneshot_single_thread_try_send_closed: [missing] -> pass (J1)
  • num::i8::test_next_multiple_of: [missing] -> pass (J1)
  • num::i8::test_unbounded_shr: [missing] -> pass (J1)
  • num::nan::test_nan: [missing] -> pass (J1)
  • num::ops::test_div_assign_defined: [missing] -> pass (J1)
  • num::ops::test_mul_defined: [missing] -> pass (J1)
  • num::u32::test_midpoint: [missing] -> pass (J1)
  • option::test_and_then: [missing] -> pass (J1)
  • slice::chunks_mut_are_send_and_sync: [missing] -> pass (J1)
  • slice::test_windows_zip: [missing] -> pass (J1)
  • sort::tests::stable::deterministic_string_random_z1: [missing] -> pass (J1)
  • str::test_ends_with: [missing] -> pass (J1)
  • string::test_drain_end_overflow: [missing] -> pass (J1)
  • num::bench_i64_from_str_radix_36: [missing] -> pass (J2)
  • num::bench_i8_from_str: [missing] -> pass (J2)
  • process::tests::stdin_works: [missing] -> pass (J2)
  • process::tests::test_process_output_error: [missing] -> pass (J2)
  • sort::tests::stable::correct_cell_i32_saw_mixed: [missing] -> pass (J2)
  • sort::tests::stable::correct_u128_random_d20: [missing] -> pass (J2)
  • sort::tests::stable::violate_ord_retain_orig_set_cell_i32_random_s95: [missing] -> pass (J2)
  • sort::tests::unstable::stability_string_random: [missing] -> pass (J2)
  • str::char_indicesator: [missing] -> pass (J2)
  • str::find_zzz_char::short_mixed: [missing] -> pass (J2)
  • vec::bench_extend_from_slice_0000_0000: [missing] -> pass (J2)
  • sort::tests::stable::correct_1k_descending: [missing] -> ignore (J3)
  • sort::tests::stable::correct_i32_random_d1024: [missing] -> ignore (J3)
  • sort::tests::stable::observable_is_less_random_d20: [missing] -> ignore (J3)

(and 16656 additional test diffs)

Additionally, 16714 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard a88fc0eaae4551f840d35d88f77105b535cf7912 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. x86_64-apple-2: 6151.7s -> 1101.1s (-82.1%)
  2. dist-arm-linux-musl: 5814.5s -> 9324.0s (60.4%)
  3. dist-x86_64-illumos: 5643.2s -> 8744.1s (54.9%)
  4. test-various: 4169.0s -> 2302.4s (-44.8%)
  5. x86_64-apple-1: 8643.0s -> 5416.6s (-37.3%)
  6. x86_64-gnu-aux: 5812.3s -> 3840.9s (-33.9%)
  7. dist-x86_64-musl: 7394.5s -> 9870.1s (33.5%)
  8. aarch64-apple: 4119.8s -> 5332.6s (29.4%)
  9. dist-x86_64-freebsd: 4937.2s -> 6096.8s (23.5%)
  10. dist-powerpc64le-linux-musl: 5581.7s -> 6777.9s (21.4%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (a88fc0e): comparison URL.

Overall result: ❌ regressions - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

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

Max RSS (memory usage)

Results (primary 3.4%, secondary 1.1%)

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)
3.4% [2.7%, 5.2%] 5
Regressions ❌
(secondary)
2.2% [0.5%, 3.3%] 18
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.1% [-2.9%, -0.4%] 8
All ❌✅ (primary) 3.4% [2.7%, 5.2%] 5

Cycles

Results (primary 2.8%, secondary -0.2%)

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)
2.8% [2.8%, 2.8%] 1
Regressions ❌
(secondary)
0.7% [0.4%, 1.2%] 6
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.9% [-2.1%, -0.5%] 9
All ❌✅ (primary) 2.8% [2.8%, 2.8%] 1

Binary size

Results (primary 1.1%)

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)
1.1% [1.1%, 1.1%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.1% [1.1%, 1.1%] 1

Bootstrap: 775.511s -> 775.166s (-0.04%)
Artifact size: 372.29 MiB -> 372.23 MiB (-0.02%)

@rustbot rustbot added the perf-regression Performance regression. label Jun 1, 2025
@Mark-Simulacrum Mark-Simulacrum removed the perf-regression Performance regression. label Jun 2, 2025
@Mark-Simulacrum
Copy link
Member

Looks like spurious on both affected results -- dropping regression label.

@RalfJung RalfJung deleted the miri-sync branch June 4, 2025 06:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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.