Closed Bug 1688784 Opened 3 years ago Closed 3 years ago

Update mp4parse-rust to commit 3011a2

Categories

(Core :: Audio/Video: Playback, task, P2)

task

Tracking

()

RESOLVED FIXED
87 Branch
Tracking Status
firefox87 --- fixed

People

(Reporter: bryce, Assigned: bryce)

References

Details

Attachments

(1 file)

Update mp4parse-rust, primarily to bring fixes aimed at bug 1687357.

Bumps version to
3011a2b923c8b0f1b392bcdd008cd8b95ffd846b

This is done to fix a bug where parsing bad metadata in the userdata (udta)
would be fatal when we should instead just fail the userdata.

This also updates some mp4parse-rust dependencies which results in some
removals.

Depends on: 1681811
See Also: 1681811
Pushed by bvandyk@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/924a3c191cdb
Bump mp4parse-rust version. r=jbauman,kinetik

Backed out changeset 924a3c191cdb (bug 1688784) for rust related windows bustage.

Push with failure: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&selectedTaskRun=bqcOGZFeSCuhgS4C6ulIDw.0&fromchange=a911e7cbb4780e082b104048c97b92818e633d0d&searchStr=profile-guided%2Coptimization%2Cbuilds%2Cinstrumented&tochange=a600444d5bf8cae7302558b631ae2b0e1649a15e

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

Failure log: https://treeherder.mozilla.org/logviewer?job_id=327872515&repo=autoland&lineNumber=15974

[task 2021-01-26T20:48:09.325Z] 20:48:09     INFO -     Compiling dirs-sys v0.3.4
[task 2021-01-26T20:48:09.325Z] 20:48:09     INFO -       Running `CARGO=/builds/worker/fetches/rustc/bin/cargo CARGO_CRATE_NAME=dirs_sys CARGO_MANIFEST_DIR=/builds/worker/checkouts/gecko/third_party/rust/dirs-sys CARGO_PKG_AUTHORS='Simon Ochsenreither <simon@ochsenreither.de>' CARGO_PKG_DESCRIPTION='System-level helper functions for the dirs and directories crates.' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE='MIT OR Apache-2.0' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=dirs-sys CARGO_PKG_REPOSITORY='https://github.com/soc/dirs-sys-rs' CARGO_PKG_VERSION=0.3.4 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=3 CARGO_PKG_VERSION_PATCH=4 CARGO_PKG_VERSION_PRE='' LD_LIBRARY_PATH='/builds/worker/workspace/obj-build/release/deps:/builds/worker/fetches/rustc/lib' /builds/worker/fetches/sccache/sccache /builds/worker/fetches/rustc/bin/rustc --crate-name dirs_sys /builds/worker/checkouts/gecko/third_party/rust/dirs-sys/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C panic=abort -C embed-bitcode=no -C metadata=09444ebc70d92155 -C extra-filename=-09444ebc70d92155 --out-dir /builds/worker/workspace/obj-build/i686-pc-windows-msvc/release/deps --target i686-pc-windows-msvc -C linker=/builds/worker/checkouts/gecko/build/cargo-linker -L dependency=/builds/worker/workspace/obj-build/i686-pc-windows-msvc/release/deps -L dependency=/builds/worker/workspace/obj-build/release/deps --extern cfg_if=/builds/worker/workspace/obj-build/i686-pc-windows-msvc/release/deps/libcfg_if-bb5005515c5a9952.rmeta --extern winapi=/builds/worker/workspace/obj-build/i686-pc-windows-msvc/release/deps/libwinapi-24d8b21c632b06cc.rmeta --cap-lints warn -C opt-level=2 -C debuginfo=2 -C force-frame-pointers=yes -C control-flow-guard=yes -Dwarnings -Cembed-bitcode=yes -C profile-generate=/builds/worker/workspace/obj-build -C llvm-args=-enable-name-compression=false -C codegen-units=1`
[task 2021-01-26T20:48:09.325Z] 20:48:09     INFO -  warning: `#[inline]` is ignored on function prototypes
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -     --> /builds/worker/checkouts/gecko/third_party/rust/num-integer/src/lib.rs:260:5
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -      |
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -  260 |     #[inline]
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -      |     ^^^^^^^^^
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -      |
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -      = note: `#[warn(unused_attributes)]` on by default
[task 2021-01-26T20:48:09.326Z] 20:48:09    ERROR -  error[E0277]: the trait bound `i128: traits::Num` is not satisfied
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -     --> /builds/worker/checkouts/gecko/third_party/rust/num-integer/src/roots.rs:136:14
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -      |
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -  9   | pub trait Roots: Integer {
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -      |                  ------- required by this bound in `Roots`
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -  ...
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -  136 |         impl Roots for $T {
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -      |              ^^^^^ the trait `traits::Num` is not implemented for `i128`
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -  ...
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -  170 | signed_roots!(i128, u128);
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -      | -------------------------- in this macro invocation
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -      |
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[task 2021-01-26T20:48:09.326Z] 20:48:09    ERROR -  error[E0277]: the trait bound `u128: traits::Num` is not satisfied
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -     --> /builds/worker/checkouts/gecko/third_party/rust/num-integer/src/roots.rs:204:14
[task 2021-01-26T20:48:09.326Z] 20:48:09     INFO -      |
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -  9   | pub trait Roots: Integer {
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -      |                  ------- required by this bound in `Roots`
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -  ...
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -  204 |         impl Roots for $T {
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -      |              ^^^^^ the trait `traits::Num` is not implemented for `u128`
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -  ...
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -  390 | unsigned_roots!(u128);
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -      | ---------------------- in this macro invocation
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -      |
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[task 2021-01-26T20:48:09.327Z] 20:48:09    ERROR -  error[E0277]: the trait bound `i128: traits::Num` is not satisfied
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -     --> /builds/worker/checkouts/gecko/third_party/rust/num-integer/src/lib.rs:406:14
[task 2021-01-26T20:48:09.327Z] 20:48:09     INFO -      |
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  33  | pub trait Integer: Sized + Num + PartialOrd + Ord + Eq {
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -      |                            --- required by this bound in `Integer`
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  ...
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  406 |         impl Integer for $T {
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -      |              ^^^^^^^ the trait `traits::Num` is not implemented for `i128`
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  ...
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  794 | impl_integer_for_isize!(i128, test_integer_i128);
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -      | ------------------------------------------------- in this macro invocation
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -      |
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -      = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[task 2021-01-26T20:48:09.328Z] 20:48:09    ERROR -  error[E0277]: the trait bound `u128: traits::Num` is not satisfied
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -      --> /builds/worker/checkouts/gecko/third_party/rust/num-integer/src/lib.rs:798:14
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -       |
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  33   | pub trait Integer: Sized + Num + PartialOrd + Ord + Eq {
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -       |                            --- required by this bound in `Integer`
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  ...
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  798  |         impl Integer for $T {
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -       |              ^^^^^^^ the trait `traits::Num` is not implemented for `u128`
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  ...
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  1011 | impl_integer_for_usize!(u128, test_integer_u128);
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -       | ------------------------------------------------- in this macro invocation
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -       |
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -       = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  error: aborting due to 4 previous errors; 1 warning emitted
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  For more information about this error, try `rustc --explain E0277`.
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  error: could not compile `num-integer`
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  Caused by:
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -    process didn't exit successfully: `CARGO=/builds/worker/fetches/rustc/bin/cargo CARGO_CRATE_NAME=num_integer CARGO_MANIFEST_DIR=/builds/worker/checkouts/gecko/third_party/rust/num-integer CARGO_PKG_AUTHORS='The Rust Project Developers' CARGO_PKG_DESCRIPTION='Integer traits and functions' CARGO_PKG_HOMEPAGE='https://github.com/rust-num/num-integer' CARGO_PKG_LICENSE=MIT/Apache-2.0 CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=num-integer CARGO_PKG_REPOSITORY='https://github.com/rust-num/num-integer' CARGO_PKG_VERSION=0.1.41 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=41 CARGO_PKG_VERSION_PRE='' LD_LIBRARY_PATH='/builds/worker/workspace/obj-build/release/deps:/builds/worker/fetches/rustc/lib' OUT_DIR=/builds/worker/workspace/obj-build/i686-pc-windows-msvc/release/build/num-integer-5b08a9f814b1137b/out /builds/worker/fetches/sccache/sccache /builds/worker/fetches/rustc/bin/rustc --crate-name num_integer /builds/worker/checkouts/gecko/third_party/rust/num-integer/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C panic=abort -C embed-bitcode=no --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=c52f87b78fa278ec -C extra-filename=-c52f87b78fa278ec --out-dir /builds/worker/workspace/obj-build/i686-pc-windows-msvc/release/deps --target i686-pc-windows-msvc -C linker=/builds/worker/checkouts/gecko/build/cargo-linker -L dependency=/builds/worker/workspace/obj-build/i686-pc-windows-msvc/release/deps -L dependency=/builds/worker/workspace/obj-build/release/deps --extern num_traits=/builds/worker/workspace/obj-build/i686-pc-windows-msvc/release/deps/libnum_traits-f84ba0b647583bf6.rmeta --cap-lints warn -C opt-level=2 -C debuginfo=2 -C force-frame-pointers=yes -C control-flow-guard=yes -Dwarnings -Cembed-bitcode=yes -C profile-generate=/builds/worker/workspace/obj-build -C llvm-args=-enable-name-compression=false -C codegen-units=1 --cfg has_i128` (exit code: 1)
[task 2021-01-26T20:48:09.328Z] 20:48:09     INFO -  warning: build failed, waiting for other jobs to finish...
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -  warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -    --> /builds/worker/checkouts/gecko/third_party/rust/dns-parser/src/error.rs:3:1
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -     |
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -  3  | / quick_error! {
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -  4  | |     /// Error parsing DNS packet
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -  5  | |     #[derive(Debug)]
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -  6  | |     pub enum Error {
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -  ...  |
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -  70 | |     }
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -  71 | | }
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -     | |_^
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -     |
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -  warning: use of deprecated macro `try`: use the `?` operator instead
[task 2021-01-26T20:48:09.329Z] 20:48:09     INFO -    --> /builds/worker/checkouts/gecko/third_party/rust/time/src/display.rs:14:25
...
Flags: needinfo?(bvandyk)

This looks due to the availability of numtraits for 128 width integers[0]. The current docs contain the following

Implementations for i128 and u128 are only available with Rust 1.26 and later. The build script automatically detects this, but you can make it mandatory by enabling the i128 crate feature.

Since these are not universally available, I guess something about the shippable build config is triggering the error. I'm not familiar with what's different with such configs, but am trying to debug this now.

[0] https://github.com/rust-num/num-traits#features

Flags: needinfo?(bvandyk)

I've done a try push to repro the issue and check is is a shippable build problem and it does appear to be:

https://treeherder.mozilla.org/jobs?repo=try&revision=87f2e022344e30f20d1409a9840c389fe3bb1549&selectedTaskRun=BoCBys_JTTiZunR7UEBmQA.0

I'm trying to compare the logs there to see if there's any obvious differences. I think I've found something relevant.

The passing opt build contains the following (more easily read if copied into something with word wrapping).

Running `CARGO=/builds/worker/fetches/rustc/bin/cargo CARGO_CRATE_NAME=num_traits CARGO_MANIFEST_DIR=/builds/worker/checkouts/gecko/third_party/rust/num-traits CARGO_PKG_AUTHORS='The Rust Project Developers' CARGO_PKG_DESCRIPTION='Numeric traits for generic mathematics' CARGO_PKG_HOMEPAGE='https://github.com/rust-num/num-traits' CARGO_PKG_LICENSE='MIT OR Apache-2.0' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=num-traits CARGO_PKG_REPOSITORY='https://github.com/rust-num/num-traits' CARGO_PKG_VERSION=0.2.14 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=2 CARGO_PKG_VERSION_PATCH=14 CARGO_PKG_VERSION_PRE='' LD_LIBRARY_PATH='/builds/worker/workspace/obj-build/release/deps:/builds/worker/fetches/rustc/lib' OUT_DIR=/builds/worker/workspace/obj-build/x86_64-pc-windows-msvc/release/build/num-traits-7310d13342f1212b/out /builds/worker/fetches/sccache/sccache /builds/worker/fetches/rustc/bin/rustc --crate-name num_traits /builds/worker/checkouts/gecko/third_party/rust/num-traits/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C panic=abort -C embed-bitcode=no --cfg 'feature="std"' -C metadata=4759a8d955e30c6b -C extra-filename=-4759a8d955e30c6b --out-dir /builds/worker/workspace/obj-build/x86_64-pc-windows-msvc/release/deps --target x86_64-pc-windows-msvc -C linker=/builds/worker/checkouts/gecko/build/cargo-linker -L dependency=/builds/worker/workspace/obj-build/x86_64-pc-windows-msvc/release/deps -L dependency=/builds/worker/workspace/obj-build/release/deps --cap-lints warn -C opt-level=2 -C debuginfo=2 -C force-frame-pointers=yes -C control-flow-guard=yes -Dwarnings -Cembed-bitcode=yes -C codegen-units=1 --cfg has_i128 --cfg has_to_int_unchecked`

while the failing shippable build has a similar line the notably lacks the --cfg has_i128:

Running `CARGO=/builds/worker/fetches/rustc/bin/cargo CARGO_CRATE_NAME=num_traits CARGO_MANIFEST_DIR=/builds/worker/checkouts/gecko/third_party/rust/num-traits CARGO_PKG_AUTHORS='The Rust Project Developers' CARGO_PKG_DESCRIPTION='Numeric traits for generic mathematics' CARGO_PKG_HOMEPAGE='https://github.com/rust-num/num-traits' CARGO_PKG_LICENSE='MIT OR Apache-2.0' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=num-traits CARGO_PKG_REPOSITORY='https://github.com/rust-num/num-traits' CARGO_PKG_VERSION=0.2.14 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=2 CARGO_PKG_VERSION_PATCH=14 CARGO_PKG_VERSION_PRE='' LD_LIBRARY_PATH='/builds/worker/workspace/obj-build/release/deps:/builds/worker/fetches/rustc/lib' OUT_DIR=/builds/worker/workspace/obj-build/x86_64-pc-windows-msvc/release/build/num-traits-e56ef49fa29f8f11/out /builds/worker/fetches/sccache/sccache /builds/worker/fetches/rustc/bin/rustc --crate-name num_traits /builds/worker/checkouts/gecko/third_party/rust/num-traits/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C panic=abort -C embed-bitcode=no --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=fb543a78dcaa64e1 -C extra-filename=-fb543a78dcaa64e1 --out-dir /builds/worker/workspace/obj-build/x86_64-pc-windows-msvc/release/deps --target x86_64-pc-windows-msvc -C linker=/builds/worker/checkouts/gecko/build/cargo-linker -L dependency=/builds/worker/workspace/obj-build/x86_64-pc-windows-msvc/release/deps -L dependency=/builds/worker/workspace/obj-build/release/deps --cap-lints warn -C opt-level=2 -C debuginfo=2 -C force-frame-pointers=yes -C control-flow-guard=yes -Dwarnings -Cembed-bitcode=yes -C profile-generate=/builds/worker/workspace/obj-build -C llvm-args=-enable-name-compression=false -C codegen-units=1`

The missing flag seems pertinent to the error here, but it's not clear to me what in the shippable build means we don't get the flag.

Currently passing shippable windows builds appear to have the --cfg has_i128 in their build logs, so there's something about the patch here that tickles the issue. I'm guessing it's something to do with autocfg. Onto the next yak.

Another try push where I tried reverting some of the autocfg done by num-traits: https://treeherder.mozilla.org/jobs?repo=try&revision=01e57329ea8caa51f19ec9deede07b893c1cb9cf&selectedTaskRun=W-Mfz9fyQc6lZESPXJXijw.0

But that doesn't seem to be the problem.

Mike, do you have any insight into what in the patch is causing issues with the windows shippable build?

Flags: needinfo?(mh+mozilla)

You're hitting bug 1632776, combined with the fact that bug 1685697 hid the error.

Depends on: 1632776
Flags: needinfo?(mh+mozilla)
Pushed by bvandyk@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/96a25ad89cca
Bump mp4parse-rust version. r=jbauman,kinetik
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch
Blocks: 1695464
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: