Closed Bug 1595218 Opened 3 months ago Closed 2 months ago

Update builders to rustc 1.39

Categories

(Firefox Build System :: General, task)

task
Not set

Tracking

(firefox73 fixed)

RESOLVED FIXED
mozilla73
Tracking Status
firefox73 --- fixed

People

(Reporter: chmanchester, Assigned: chmanchester)

References

(Blocks 1 open bug)

Details

Attachments

(4 files)

This released yesterday.

Assignee: nobody → cmanchester
Depends on: 1595212
Depends on: 1596311
Depends on: 1596505
Depends on: 1596503
Pushed by cmanchester@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/07631f00f287
Update builders to rustc 1.39 r=froydnj
Pushed by cmanchester@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/11c0576cf3d5
Update builders to rustc 1.39 r=froydnj
https://hg.mozilla.org/integration/autoland/rev/46fe2af291cf
Update bootstrap to upgrade to stable rust. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/1808b1722f64
Update rust target detection for rustc 1.39. r=glandium

Re-landed. I started from the wrong place and lando only picked up the bottom commmit.

Flags: needinfo?(cmanchester)

Hello!

firefox-68.3.0ESR does not compiled with Rust-1.39 bacause various rust errors like

 8:59.70 error[E0119]: conflicting implementations of trait `std::clone::Clone` for type `gecko_bindings::structs::root::mozilla::GeckoXUL`:
 8:59.70      --> /builddir/build/BUILD/icecat-68.3.0/objdir/i686-unknown-linux-gnu/release/build/style-2d479f0a624fbc0c/out/gecko_properties.rs:20209:1

 6:36.58 error[E0204]: the trait `Copy` may not be implemented for this type
 6:36.58   --> /builddir/build/BUILD/icecat-68.3.0/objdir/i686-unknown-linux-gnu/release/build/style-2d479f0a624fbc0c/out/gecko/structs.rs:23:660889

Does this patch fix these errors?

Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: mozilla73 → ---
Backout by shindli@mozilla.com:
https://hg.mozilla.org/mozilla-central/rev/5f77291b48ff
Backed out 3 changesets for causing wrench bustages on central CLOSED TREE a=backout

Ok, it appears the wrench deps no longer run on try. I'll downgrade them for now so we can get this landed...

Flags: needinfo?(cmanchester)
Pushed by cmanchester@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/30bb03117312
Update builders to rustc 1.39 r=froydnj
https://hg.mozilla.org/integration/autoland/rev/d7f9a4045360
Update bootstrap to upgrade to stable rust. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/9fdeeb697611
Update rust target detection for rustc 1.39. r=glandium
Backout by rgurzau@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/fe9435809692
Backed out 3 changesets for Windows wrench failures.

Backed out 3 changesets (bug 1595218) for Windows wrench failures.

Backout link: https://hg.mozilla.org/integration/autoland/rev/fe94358096926edc1404cdd2e864ce66a38fc91f

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&revision=9fdeeb69761156206ba4184344b33eb53581f6c9&selectedJob=279492801

Log link: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=279492801&repo=autoland&lineNumber=1315

Log snippet:

[task 2019-12-04T03:46:07.891Z] error: use of deprecated item 'std::mem::uninitialized': use mem::MaybeUninit instead
[task 2019-12-04T03:46:07.891Z] --> wrench\src\egl.rs:60:54
[task 2019-12-04T03:46:07.891Z] |
[task 2019-12-04T03:46:07.891Z] 60 | let mut major: ffi::egl::types::EGLint = mem::uninitialized();
[task 2019-12-04T03:46:07.891Z] | ^^^^^^^^^^^^^^^^^^
[task 2019-12-04T03:46:07.891Z]
[task 2019-12-04T03:46:07.891Z] error: use of deprecated item 'std::mem::uninitialized': use mem::MaybeUninit instead
[task 2019-12-04T03:46:07.891Z] --> wrench\src\egl.rs:61:54
[task 2019-12-04T03:46:07.891Z] |
[task 2019-12-04T03:46:07.891Z] 61 | let mut minor: ffi::egl::types::EGLint = mem::uninitialized();
[task 2019-12-04T03:46:07.891Z] | ^^^^^^^^^^^^^^^^^^
[task 2019-12-04T03:46:07.891Z]
[task 2019-12-04T03:46:07.891Z] error: use of deprecated item 'std::mem::uninitialized': use mem::MaybeUninit instead
[task 2019-12-04T03:46:07.891Z] --> wrench\src\egl.rs:234:34
[task 2019-12-04T03:46:07.891Z] |
[task 2019-12-04T03:46:07.891Z] 234 | let mut value = unsafe { mem::uninitialized() };
[task 2019-12-04T03:46:07.892Z] | ^^^^^^^^^^^^^^^^^^
[task 2019-12-04T03:46:07.892Z]
[task 2019-12-04T03:46:09.188Z] error: aborting due to 15 previous errors
[task 2019-12-04T03:46:09.188Z]
[task 2019-12-04T03:46:09.323Z] error: could not compile wrench.
[task 2019-12-04T03:46:09.323Z]
[task 2019-12-04T03:46:09.323Z] Caused by:
[task 2019-12-04T03:46:09.323Z] process didn't exit successfully: rustc --edition=2018 --crate-name wrench wrench\src\main.rs --color never --emit=dep-info,link -C debuginfo=2 --test --cfg "feature=\"default\"" --cfg "feature=\"env_logger\"" -C metadata=585e774adfca68ec -C extra-filename=-585e774adfca68ec --out-dir z:\task_1575429973\build\src\gfx\wr\target\debug\deps -C incremental=z:\task_1575429973\build\src\gfx\wr\target\debug\incremental -L dependency=z:\task_1575429973\build\src\gfx\wr\target\debug\deps --extern app_units=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libapp_units-125723de43ccbc9c.rlib --extern base64=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libbase64-1b664bcecc1769e2.rlib --extern bincode=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libbincode-a2a0a7edc44a3c81.rlib --extern byteorder=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libbyteorder-dddd2788babee894.rlib --extern clap=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libclap-81262606ad8195a0.rlib --extern crossbeam=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libcrossbeam-207ba0e8d42a5a3b.rlib --extern dwrote=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libdwrote-aaae065a8384c53c.rlib --extern env_logger=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libenv_logger-8d7f8b6227eea3a5.rlib --extern euclid=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libeuclid-49f4cd41cd375ee9.rlib --extern gleam=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libgleam-483e2a703fcd1fa6.rlib --extern glutin=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libglutin-851de8934cb11706.rlib --extern image=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libimage-6c5a0c613a90cbe3.rlib --extern log=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\liblog-969dea115044d5aa.rlib --extern mozangle=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libmozangle-e3213f39c1ee2fdc.rlib --extern ron=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libron-da020db76b769c6b.rlib --extern semver=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libsemver-2d3cf98f72ff806b.rlib --extern serde=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libserde-e74b0e8090191cb2.rlib --extern serde_json=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libserde_json-c68455de042a716b.rlib --extern time=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libtime-9abc389c1d98bf25.rlib --extern webrender=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libwebrender-c3e7145efc5136f0.rlib --extern webrender_api=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libwebrender_api-f97fe0fcf2ceacc0.rlib --extern winit=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libwinit-39b3bb39073fbca3.rlib --extern yaml_rust=z:\task_1575429973\build\src\gfx\wr\target\debug\deps\libyaml_rust-cc82e81c2bc658c5.rlib --deny warnings -L native=z:\task_1575429973\build\src\gfx\wr\target\debug\build\mozangle-c8a8d99f988df2d6\out -L native=z:\task_1575429973\build\src\gfx\wr\target\debug\build\mozangle-c8a8d99f988df2d6\out (exit code: 1)
[task 2019-12-04T03:46:09.328Z]
[task 2019-12-04T03:46:09.328Z] z:\task_1575429973\build\src\gfx\wr\wrench>if 101 NEQ 0 EXIT /b 101
[fetches 2019-12-04T03:46:09.342Z] removing Z:/task_1575429973/fetches
[fetches 2019-12-04T03:46:11.631Z] finished
[taskcluster 2019-12-04T03:46:11.665Z] Exit Code: 101
[taskcluster 2019-12-04T03:46:11.665Z] User Time: 15.625ms
[taskcluster 2019-12-04T03:46:11.665Z] Kernel Time: 15.625ms
[taskcluster 2019-12-04T03:46:11.665Z] Wall Time: 14m11.4521882s
[taskcluster 2019-12-04T03:46:11.665Z] Result: FAILED
[taskcluster 2019-12-04T03:46:11.665Z] === Task Finished ===
[taskcluster 2019-12-04T03:46:11.665Z] Task Duration: 14m11.4531766s
[taskcluster 2019-12-04T03:46:11.945Z] Uploading redirect artifact public/logs/live.log to URL https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/BAN_UvYqThmASTrWIEJbgw/runs/0/artifacts/public/logs/live_backing.log with mime type "text/plain; charset=utf-8" and expiry 2020-12-03T03:31:15.512Z
[taskcluster:error] exit status 101

Flags: needinfo?(cmanchester)

This was fixed in bug 1601376. Re-landing shortly.

Flags: needinfo?(cmanchester)
Pushed by cmanchester@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/93ec75efbf41
Update builders to rustc 1.39 r=froydnj
https://hg.mozilla.org/integration/autoland/rev/f2f230a3028d
Update bootstrap to upgrade to stable rust. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/499b0c27da4f
Update rust target detection for rustc 1.39. r=glandium

Wow, a valgrind leak snuck in between landings. Will investigate...

Flags: needinfo?(cmanchester)

Stacks along the lines of:

==8353== 24,704 bytes in 4 blocks are definitely lost in loss record 8,180 of 8,183
==8353==    at 0x4C2B280: malloc+112 (vg_replace_malloc.c:308)
==8353==    by 0x143E858C: std::thread::local::fast::Key<T>::try_initialize+28 (src/libstd/sys/unix/alloc.rs:14)
==8353==    by 0x13F0B899: UnknownInlinedFun (local.rs:416)
==8353==    by 0x13F0B899: UnknownInlinedFun (<::std::thread::local::__thread_local_inner macros>:29)
==8353==    by 0x13F0B899: try_with<core::mem::manually_drop::ManuallyDrop<servo_arc::Arc<atomic_refcell::AtomicRefCell<style::sharing::SharingCacheBase<style::sharing::FakeCandidate>>>>,closure-0,servo_arc::Arc<atomic_refcell::AtomicRefCell<style::sharing::SharingCacheBase<style::sharing::FakeCandidate>>>> (local.rs:259)
==8353==    by 0x13F0B899: with<core::mem::manually_drop::ManuallyDrop<servo_arc::Arc<atomic_refcell::AtomicRefCell<style::sharing::SharingCacheBase<style::sharing::FakeCandidate>>>>,closure-0,servo_arc::Arc<atomic_refcell::AtomicRefCell<style::sharing::SharingCacheBase<style::sharing::FakeCandidate>>>> (local.rs:239)
==8353==    by 0x13F0B899: style::sharing::StyleSharingCache<E>::new+121 (mod.rs:532)
==8353==    by 0x13F14CC5: style::parallel::create_thread_local_context+37 (context.rs:798)
==8353==    by 0x13F14154: <rayon_core::job::HeapJob<BODY> as rayon_core::job::Job>::execute+596 (parallel.rs:130)
==8353==    by 0x14103DEB: rayon_core::registry::WorkerThread::wait_until_cold+523 (job.rs:59)
==8353==    by 0x13F13AEA: rayon_core::scope::scope_fifo::{{closure}}+7322 (/builds/worker/workspace/build/src/third_party/rust/rayon-core/src/registry.rs:693)
==8353==    by 0x13F178C4: <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute+180 (registry.rs:853)
==8353==    by 0x14103DEB: rayon_core::registry::WorkerThread::wait_until_cold+523 (job.rs:59)
==8353==    by 0x14104ADC: std::sys_common::backtrace::__rust_begin_short_backtrace+1788 (registry.rs:693)
==8353==    by 0x1410436D: core::ops::function::FnOnce::call_once{{vtable-shim}}+125 (mod.rs:470)
==8353==    by 0x141A4EDD: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once+61 (boxed.rs:922)
==8353==    by 0x141A7287: std::sys::unix::thread::Thread::new::thread_start+135 (boxed.rs:922)
==8353==    by 0x4E3BB4F: start_thread+207 (pthread_create.c:304)
==8353==    by 0x5CD9FBC: clone+108 (clone.S:112)

Emilio, are you aware of a change from the last day or so that might be related? Nothing jumps out at me reading through autoland's history.

Flags: needinfo?(emilio)

Not really. That being said, we do intentionally leak that memory, see this, this, and this comment in particular for all the context.

The TLDR is that that memory is leaked intentionally until process shutdown, and as there's no guarantee to make the rayon threads shutdown synchronously in a way where TLS destructors have run before the refcount logging stuff comes in, so we leak the TLS allocations to make refcount logging deterministic.

We have suppressions for these here and a bit below.

It seems updating rust is adding a couple stack frames for inlined functions that makes those suppressions not apply. Should be trivial to fix I think. Sorry for the hassle.

Hope it helps.

Flags: needinfo?(emilio)
Pushed by cmanchester@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/21ec329aec73
Update builders to rustc 1.39 r=froydnj
https://hg.mozilla.org/integration/autoland/rev/554bfbe4df7e
Update bootstrap to upgrade to stable rust. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/c5b1b17f346a
Update rust target detection for rustc 1.39. r=glandium
https://hg.mozilla.org/integration/autoland/rev/5d59f2b2cbb2
Update valgrind supressions for rustc 1.39. r=emilio

== Change summary for alert #24307 (as of Sat, 07 Dec 2019 14:42:49 GMT) ==

Improvements:

11% perf_reftest_singletons tiny-traversal-singleton.html linux64-shippable-qr opt e10s stylo 807.83 -> 720.78
9% perf_reftest_singletons parent-basic-singleton.html linux64-shippable opt e10s stylo 87.01 -> 78.85
9% perf_reftest_singletons tiny-traversal-singleton.html linux64-shippable opt e10s stylo 754.57 -> 685.11
9% perf_reftest some-descendants-1.html linux64-shippable opt e10s stylo 6.24 -> 5.69
9% perf_reftest_singletons parent-basic-singleton.html linux64-shippable-qr opt e10s stylo 88.22 -> 80.62
8% perf_reftest_singletons coalesce-2.html linux64-shippable opt e10s stylo 133.84 -> 123.71
7% perf_reftest_singletons coalesce-2.html linux64-shippable-qr opt e10s stylo 140.91 -> 130.43
7% perf_reftest_singletons coalesce-2.html linux64-shippable-qr opt e10s stylo 140.27 -> 130.33
7% perf_reftest_singletons coalesce-1.html linux64-shippable-qr opt e10s stylo 173.19 -> 161.80
6% perf_reftest_singletons coalesce-1.html linux64-shippable opt e10s stylo 165.02 -> 155.10
5% perf_reftest_singletons bloom-basic.html linux64-shippable-qr opt e10s stylo 39.39 -> 37.35

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=24307

also the first merge and backout generated alerts:

Merge:
== Change summary for alert #24218 (as of Tue, 03 Dec 2019 07:02:10 GMT) ==

Improvements:

11% perf_reftest some-descendants-1.html linux64-shippable opt e10s stylo 6.31 -> 5.61
8% perf_reftest_singletons parent-basic-singleton.html linux64-shippable-qr opt e10s stylo 88.61 -> 81.64
8% perf_reftest_singletons parent-basic-singleton.html linux64-shippable opt e10s stylo 86.49 -> 79.86
7% perf_reftest_singletons coalesce-2.html linux64-shippable opt e10s stylo 133.62 -> 124.57
6% perf_reftest_singletons coalesce-2.html linux64-shippable-qr opt e10s stylo 140.53 -> 132.03
6% perf_reftest_singletons coalesce-1.html linux64-shippable opt e10s stylo 165.22 -> 156.02
6% perf_reftest_singletons coalesce-1.html linux64-shippable-qr opt e10s stylo 172.79 -> 163.18

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=24218

Backout:
== Change summary for alert #24239 (as of Tue, 03 Dec 2019 20:01:07 GMT) ==

Regressions:

13% perf_reftest_singletons tiny-traversal-singleton.html linux64-shippable-qr opt e10s stylo 714.05 -> 805.40
12% perf_reftest some-descendants-1.html linux64-shippable opt e10s stylo 5.56 -> 6.25
9% perf_reftest_singletons parent-basic-singleton.html linux64-shippable-qr opt e10s stylo 81.27 -> 88.93
7% perf_reftest_singletons coalesce-2.html linux64-shippable-qr opt e10s stylo 132.02 -> 141.32
6% perf_reftest_singletons coalesce-1.html linux64-shippable-qr opt e10s stylo 162.51 -> 172.81

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=24239

(In reply to Florin Strugariu [:Bebe] (needinfo me) from comment #25)

== Change summary for alert #24307 (as of Sat, 07 Dec 2019 14:42:49 GMT) ==

Fascinating. This could potentially indicate that Rust 1.39 is handling PGO better than previous versions, since the reftest_singletons are part of PGO training as of bug 1596172.

Regressions: 1604459
See Also: → 1604459
See Also: 1604459
You need to log in before you can comment on or make changes to this bug.