Closed Bug 1382592 Opened 7 years ago Closed 7 years ago

Cannot run Nightly 56 on Wine: err:module:attach_process_dlls "mozglue.dll" failed to initialize, aborting

Categories

(External Software Affecting Firefox :: Other, defect)

defect
Not set
normal

Tracking

(firefox54 unaffected, firefox55 unaffected, firefox56 fixed)

RESOLVED FIXED
Tracking Status
firefox54 --- unaffected
firefox55 --- unaffected
firefox56 --- fixed

People

(Reporter: jlorenzo, Unassigned)

References

Details

(Keywords: regression)

Attachments

(1 file)

Attached file wine-trace.log
CONTEXT
While testing Windows builds coming out of the new Taskcluster infrastructure, I noticed I was unable to start them. After some investigation, the problem has been there in regular builds for some weeks.

STEPS TO REPRODUCE
1. Download a windows nightly installer on Linux.
2. Install it via `wine firefox-56.0a1.en-US.win64.installer.exe`

RESULTS
At the end of the installation, when Firefox should boot up, this error comes up on the console:
> err:module:attach_process_dlls "mozglue.dll" failed to initialize, aborting

Nightly doesn't show up.

For more information, see attached trace logs.

TESTED BINARIES
* Firefox 54.0.1 => Runs fine
* Firefox 55.0b10 => Runs fine
* https://archive.mozilla.org/pub/firefox/nightly/2017/07/2017-07-19-03-02-06-mozilla-central/firefox-56.0a1.en-US.win64.installer.exe => Not OK
* https://archive.mozilla.org/pub/firefox/nightly/2017/05/2017-05-29-03-02-04-mozilla-central/firefox-55.0a1.en-US.win64.installer.exe => Runs fine.

CONCLUSION
That's a regression that happened on central between 2017-07-19 and 2017-05-29. I don't know whether this bug should be in mozglue, or in the build config. I guess a finer regression window will help us out.

I also don't know if this is going to impact projects like wine-gecko[1], which provides mozglue.dll for the rest of the wine environment. 

[1] https://wiki.winehq.org/Gecko
Can you get a narrower regression window with mozregression?
Mozregression gave: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=7da6c99070996a8d0baa4013d4c0b515f8045fa2&tochange=37e047b6187f8a2cc9ce30268d42977e679db84e. That patch seems related to the failure given by wine. What do you think, Jeff?


For reference, using mozregression on Linux needed some hacks in mozinfo. I basically forced info['os'] to 'win' at [1]. I also changed `globals()['isWin']`, `globals()['isLinux']` and `globals()['isLinux']` at [2]. I'm not sure the second hack is needed.
Then I ran the command:
> mozregression -P stdout --command 'wine {binary}' --repo=mozilla-central --good=2017-06-28 --bad=2017-07-01

[1] https://dxr.mozilla.org/mozilla-central/rev/1b065ffd8a535a0ad4c39a912af18e948e6a42c1/testing/mozbase/mozinfo/mozinfo/mozinfo.py#115
[2] https://dxr.mozilla.org/mozilla-central/rev/1b065ffd8a535a0ad4c39a912af18e948e6a42c1/testing/mozbase/mozinfo/mozinfo/mozinfo.py#208
Blocks: 1376057
Component: mozglue → Build Config
Flags: needinfo?(jgilbert)
Does WINE not support std::exception::_Set_raise_handler somehow?
Flags: needinfo?(jgilbert)
I'm sorry, I don't know the answer. I'm not familiar with the internals of wine, either. Nonetheless, I looked up the problem, and it seems it doesn't. 

I searched back in the logs I attached, and "_Set_raise_handler" doesn't appear. The closest related warning is this one: 
> 111690.193:002f:0030:warn:seh:call_stack_handlers exception data not found in L"mozglue.dll"

Google doesn't return any result for "wine _Set_raise_handler". "_Set_raise_handler" alone doesn't show anything related to wine, at first.

For the record, I run wine-2.12 which is the latest available development release[1].

Would you know how to check that support with a small piece of code, Jeff?

[1] https://www.winehq.org/news/2017070701
Flags: needinfo?(jgilbert)
See Also: → 1357139
CC'ing Jacek who's the maintainer of wine-gecko[1]. Per the timestamps of the commits on the fork[2], it might not need an immediate fix. Could you confirm, Jacek?

[1] https://wiki.winehq.org/Gecko
[2] https://sourceforge.net/p/wine/wine-gecko
Flags: needinfo?(jacek)
Looking at attached logs, it seems to be a Wine bug. std::_Raise_handler is not implemented. It's wrongly exported as a stub, which means it's an entry point to code section that is write protected causing the observed crash. I will take a look at fixing it in Wine.
Flags: needinfo?(jacek)
Thank you very much for the details, Jacek. I'm moving this bug in another component, then. Please let us know if we should move it back or elsewhere.
Component: Build Config → Other
Flags: needinfo?(jgilbert)
Product: Core → External Software Affecting Firefox
I sent a patch to Wine:
https://source.winehq.org/patches/data/136312

I will let you know when it's accepted to the tree.
The fix is in Wine and Wine 2.14 was released today (containing the patch). Thanks for the report.
Amazing! Thank you Jacek!

I checked the broken Nightly in comment 0[1] and the latest one[2]. Both worked well on wine 2.14.

[1] https://archive.mozilla.org/pub/firefox/nightly/2017/07/2017-07-19-03-02-06-mozilla-central/firefox-56.0a1.en-US.win64.installer.exe 
[2] https://archive.mozilla.org/pub/firefox/nightly/2017/08/2017-08-03-13-44-56-mozilla-central/firefox-57.0a1.en-US.win64.zip
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: