Bug 2184549
Summary: | Firefox 110 crashes shortly after startup with wayland-1.22.0-1.fc39 | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Adam Williamson <awilliam> |
Component: | firefox | Assignee: | Martin Stransky <stransky> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | urgent | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | decathorpe, erack, gecko-bugs-nobody, jhorak, klaas, klember, pjasicek, robatino, rstrode, sandmann, stransky |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2023-04-10 17:11:33 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 2184743 | ||
Bug Blocks: |
Description
Adam Williamson
2023-04-05 01:01:22 UTC
Sadly, the RUSTFLAGS problem is still present in current Rawhide. Filed: https://bugzilla.redhat.com/show_bug.cgi?id=2184553 at this point we need to find a way to fix it or untag wayland, or we'll be stuck with a broken Firefox... Ugh. After working around the first RUSTFLAGS problem, we get this on all arches but s390x: 0:02.78 Traceback (most recent call last): 0:02.78 File "/builddir/build/BUILD/firefox-111.0.1/configure.py", line 343, in <module> 0:02.78 sys.exit(main(sys.argv)) 0:02.78 ^^^^^^^^^^^^^^ 0:02.78 File "/builddir/build/BUILD/firefox-111.0.1/configure.py", line 126, in main 0:02.78 sandbox.run(os.path.join(os.path.dirname(__file__), "moz.configure")) 0:02.78 File "/builddir/build/BUILD/firefox-111.0.1/python/mozbuild/mozbuild/configure/__init__.py", line 514, in run 0:02.78 self._value_for(option) 0:02.78 File "/builddir/build/BUILD/firefox-111.0.1/python/mozbuild/mozbuild/configure/__init__.py", line 619, in _value_for 0:02.78 return self._value_for_option(obj) 0:02.78 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 0:02.78 File "/builddir/build/BUILD/firefox-111.0.1/python/mozbuild/mozbuild/util.py", line 1061, in method_call 0:02.78 cache[args] = self.func(instance, *args) 0:02.78 ^^^^^^^^^^^^^^^^^^^^^^^^^^ 0:02.78 File "/builddir/build/BUILD/firefox-111.0.1/python/mozbuild/mozbuild/configure/__init__.py", line 654, in _value_for_option 0:02.78 value, option_string = self._helper.handle(option) 0:02.78 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 0:02.78 File "/builddir/build/BUILD/firefox-111.0.1/python/mozbuild/mozbuild/configure/options.py", line 591, in handle 0:02.78 ret = option.get_value(arg, origin) 0:02.78 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 0:02.78 File "/builddir/build/BUILD/firefox-111.0.1/python/mozbuild/mozbuild/configure/options.py", line 448, in get_value 0:02.78 raise InvalidOptionError( 0:02.78 mozbuild.configure.options.InvalidOptionError: RUSTFLAGS takes 1 value this, to me, reads a lot like a bug in Firefox's config parsing stuff. It's all hideously complex, but as best as I can tell, it literally means you can only pass *one* flag. Notably it's not failing on s390x because later in firefox.spec there's this: %ifarch %{arm} %{ix86} s390x export RUSTFLAGS="-Cdebuginfo=0" %endif (we don't build on 32-bit ARM or i686 any more). That's obviously wrong - it should extend the existing RUSTFLAGS definition, not replace it - but the fact that it's there demonstrates the problem: that definition of RUSTFLAGS is OK because it only has one flag, but the 'normal' (on Rawhide) one with multiple flags makes the build process fail. This seems to be because RUSTFLAGS is defined with nargs=1: build/moz.configure/rust.configure:option(env="RUSTFLAGS", nargs=1, help="Rust compiler flags") when it should probably be * or +. I can try patching it to be +, or we can just undefine RUSTFLAGS in %build to get a build through; this would be no *worse* than the build that's currently tagged in Rawhide... ooh. with that change, it fails like this: 0:29.67 error: failed to run `rustc` to learn about target-specific information 0:29.67 Caused by: 0:29.67 process didn't exit successfully: `/usr/bin/rustc - --crate-name ___ --print=file-names -Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cforce-frame-pointers=yes -Clink-arg=-Wl -z relro -Clink-arg=-Wl -z now --cap-lints=warn --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=split-debuginfo --print=crate-name --print=cfg` (exit status: 1) 0:29.67 --- stderr 0:29.68 error: Unrecognized option: 'z' note that the commas have gone missing (it's meant to be '-Wl,z,relro'). Which makes me think either those need quoting or escaping somehow, or the Mozilla parser is messing them up? Will look at it. Updated. Err, sorry, wrong bug. I testes up-to-date f39/VM and firefox-110.0 which is there by default and I don't see any crashes. May be related to your recent HW, can you provide backtrace of the crash? https://fedoraproject.org/wiki/Debugging_guidelines_for_Mozilla_products#Using_local_debugging Thanks. Martin: just up-to-date F39 will not show the problem, because we untagged the build so it won't cause this problem. You have to update to the builds from https://koji.fedoraproject.org/koji/buildinfo?buildID=2181261 manually. As I expected, your build failed for Rawhide because of the RUSTFLAGS problems: https://koji.fedoraproject.org/koji/taskinfo?taskID=99553073 0:04.26 mozbuild.configure.options.InvalidOptionError: RUSTFLAGS takes 1 value we need to sort the RUSTFLAGS problem out somehow - either fix the upstream issue with parsing it, or just unset RUSTFLAGS at the start of %build - or we will never get a successful build on Rawhide. I can file an upstream issue on the problem at least. Oh hey, it has existed for three years(!): https://bugzilla.mozilla.org/show_bug.cgi?id=1474486 I guess for clarity I'll file yet another bug tracking the build problem, and we can continue the discussion there. > we need to sort the RUSTFLAGS problem out somehow - either fix the upstream issue with parsing it, or just unset RUSTFLAGS at the start of %build
I recommend doing "unset RUSTFLAGS" for now. It restores the status quo ante (i.e. firefox being built without honoring default Rust compiler flags) - which is the same behaviour as on other branches of Fedora.
Yes, see https://bugzilla.redhat.com/show_bug.cgi?id=2184743 . That's the easy choice, but I kind of want to figure out a reasonable *fix* for this now. I'm working on it. If I can't get something in a couple of hours I'll do the unset thing for now. OK, fixed nss, new firefox build running now: https://koji.fedoraproject.org/koji/taskinfo?taskID=99577642 Aaand the new firefox does fix the problem, so wayland can be retagged, I'll ask releng. This is all cleared up now. |