Closed Bug 1632791 Opened 5 years ago Closed 3 years ago

Firefox crashes on DragonFlyBSD

Categories

(Core :: Internationalization, defect)

75 Branch
Unspecified
Other
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: arcade, Unassigned)

References

Details

User Agent: Mozilla/5.0 (X11; DragonFly x86_64; rv:75.0) Gecko/20100101 Firefox/75.0

Steps to reproduce:

Browsing through different sites, when I got back to some tab I was using long time ago browser crashed.

Actual results:

[Child 15100, MediaDecoderStateMachine #1] WARNING: Decoder=8166d73c0 Decode error: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) - RefPtr<mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla
::MediaResult, true> > mozilla::MediaSourceTrackDemuxer::DoGetSamples(int32_t): manager is detached.: file /construction/www/firefox/firefox-75.0/dom/media/MediaDecoderStateMachine.cpp, line 3367
[Child 15100, MediaDecoderStateMachine #1] WARNING: Decoder=8166d73c0 Decode error: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) - RefPtr<mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla
::MediaResult, true> > mozilla::MediaSourceTrackDemuxer::DoGetSamples(int32_t): manager is detached.: file /construction/www/firefox/firefox-75.0/dom/media/MediaDecoderStateMachine.cpp, line 3367

then after some time:

Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Segmentation fault (core dumped)

Expected results:

Not crashing would be fine.

Ok, long story.

~ > uname -a
DragonFly probe2 5.9-DEVELOPMENT DragonFly v5.9.0.217.gac9f0-DEVELOPMENT #122: Fri Apr 24 09:17:33 EEST 2020 arcade@probe2:/usr/obj/usr/src/sys/DMIN x86_64

Here on DragonFly Firefox was crashing from time to time on a regular basis. The only good progress we got is to disable E10S, this way browser stays much more stable. The other issues we are experiencing are:

  1. Text input fields are lagging on E10S, no issue without E10S. Tapping a key might result in a delay up to 2-3 seconds before anything appears. Interface otherwise is not lagging at all.

  2. Sound can click and drop from time to time, mostly when playing YouTube. Regardless of E10S. Skips appear when host allocates all of the memory and hits swap and only gets worse.

  3. Firefox crashes. Mostly this happens on E10S randomly while browsing. There were reports of this happening few times in a row, so a person started firefox, it was working fine for an hour, but when it started crashing it starts dying almost instantly (VM pressure again?).

  4. Some internal pages are not working. Password manager, about:performance, profiler are not working.

  5. DEBUG builds fail... that's said, what I can actually is like:

Program terminated with signal 11, Segmentation fault.
#0  0x00000008012f34dc in ?? ()
(gdb) bt full
#0  0x00000008012f34dc in ?? ()
No symbol table info available.
#1  0x0000000801100134 in ?? ()
No symbol table info available.
#2  0x0000000801100121 in ?? ()
No symbol table info available.
#3  0x00000008010f79f1 in ?? ()
No symbol table info available.
#4  0x00007fdfe1175c20 in ?? ()
No symbol table info available.
#5  0x0000000806619060 in ?? ()
No symbol table info available.
#6  0x0000000000000400 in ?? ()
No symbol table info available.
#7  0x0000000000000000 in ?? ()
No symbol table info available.

I'm creating this bug in hope of getting enough people on the same page so we can trace the issue. I'll try to update it regulary with my experience, debug logs crashes etc. Generally I need help in tracing Firefox to get some clue on whats actually broken and why.

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: Untriaged → Audio/Video: Playback
Product: Firefox → Core

Ah, one more crash situation. Even without E10S Firefox can crash when closing browser. When the window is already closed and process starts quitting it can stall for almost about a minute doing nothing. After that it can drop core.

For now I'm stuck with:

Assertion failure: !locale.IsEmpty(), at /construction/www/firefox/firefox-75.0/intl/locale/LocaleService.cpp:376

It looks like my platform doesn't have update channel available so "update.locale" was omitted everywhere. Is there any suggestions how to correctly configure Firefox installation to not trigger that assert?

The decode errors in the original report are fatal for media decoding, but shouldn't bring down the browser. Resetting component as it seems like the issues are rooted outside of media code. It's possible we may need a metabug to track separate issues blocking Fx working, but I'm afraid I don't know enough about what is doing the blocking here.

Component: Audio/Video: Playback → General

(In reply to arcade from comment #4)

For now I'm stuck with:

Assertion failure: !locale.IsEmpty(), at /construction/www/firefox/firefox-75.0/intl/locale/LocaleService.cpp:376

It looks like my platform doesn't have update channel available so "update.locale" was omitted everywhere. Is there any suggestions how to correctly configure Firefox installation to not trigger that assert?

This particular thing seems Core: Internationalization-related so I'll move this bug there and tie it to an older DragonFly support bug.

Component: General → Internationalization
Depends on: 238540

Bug 1634205 may be interesting wrt the profiler.

Because this bug's Severity has not been changed from the default since it was filed, and it's Priority is -- (non,) indicating it has has not been previously triaged, the bug's Severity is being updated to -- (default, untriaged.)

Severity: normal → --

The severity field is not set for this bug.
:m_kato, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(m_kato)

not tier-1/2.

Severity: -- → S4
Flags: needinfo?(m_kato)

update.locale is nothing. I guess that we may disable updater?

See Also: → 1554742

Yeah, I don't think it's Internationalization. Our build system should never create an empty update.locale.

There should be no update.locale if there's no updater enabled. The fact that the intl backbone relies on it is probably a bug.

See https://phabricator.services.mozilla.com/D73955#2290520, we have this info in three locations by now, it just doesn't pan out.

The fact that the intl backbone relies on it is probably a bug.

Can you elaborate? What is intl backbone in this sentence? And what is relies?

Flags: needinfo?(l10n)

I'm back.

I think it would be faster to let assertion issues flow in they own bugs, I'll try to proceed to debugging and stuff. So I just commenting it and rebuild Firefox again. Now I'm stuck at:

[363723, Main Thread] WARNING: Workers don't support the 'mem.mem.' preference!: file /construction/www/firefox/firefox-76.0.1/dom/workers/RuntimeService.cpp, line 538

[363723, Main Thread] WARNING: Unable to read system value: 'aValue > 0', file /construction/www/firefox/firefox-76.0.1/xpcom/base/nsSystemInfo.cpp, line 1128
Assertion failure: false (MOZ_ASSERT_UNREACHABLE: PR_GetPhysicalMemorySize not implemented here), at /construction/www/firefox/firefox-76.0.1/image/SurfaceCache.cpp:1528

I'll try to disable it and rebuild.

On the profiler — it would be really nice to have it, yet it doesn't work for me.

One more nice build, just an assertion in graphics layer.

[388736, Main Thread] WARNING: Workers don't support the 'mem.mem.' preference!: file /construction/www/firefox/firefox-76.0.1/dom/workers/RuntimeService.cpp, line 538
…
[388736, Main Thread] WARNING: Unable to read system value: 'aValue > 0', file /construction/www/firefox/firefox-76.0.1/xpcom/base/nsSystemInfo.cpp, line 1128
[388736, Main Thread] WARNING: Can't get nsINetworkLinkService.: file /construction/www/firefox/firefox-76.0.1/dom/media/VideoUtils.cpp, line 730
[388736, Main Thread] WARNING: Can't get nsINetworkLinkService.: file /construction/www/firefox/firefox-76.0.1/dom/media/VideoUtils.cpp, line 730
[388736, Main Thread] WARNING: Failed to get base domain!: file /construction/www/firefox/firefox-76.0.1/ipc/glue/BackgroundUtils.cpp, line 353
[388736, Main Thread] WARNING: '!mInitSucceeded', file /construction/www/firefox/firefox-76.0.1/editor/libeditor/TextEditSubActionHandler.cpp, line 102
[388736, Main Thread] WARNING: '!aWin', file /construction/www/firefox/firefox-76.0.1/dom/base/Document.cpp, line 1397
[388736, Main Thread] WARNING: '!aWin', file /construction/www/firefox/firefox-76.0.1/dom/base/Document.cpp, line 1397
[388736, Main Thread] WARNING: '!mInitSucceeded', file /construction/www/firefox/firefox-76.0.1/editor/libeditor/TextEditSubActionHandler.cpp, line 102
[388736, Main Thread] WARNING: '!mInitSucceeded', file /construction/www/firefox/firefox-76.0.1/editor/libeditor/TextEditSubActionHandler.cpp, line 102
Crash Annotation GraphicsCriticalError: |[0][GFX1]: RGBX corner pixel at (0,0) in 1920x1059 surface, bounded by (0,0,1920,1059) is not opaque: 9,8,8,255 (t=22.256) [GFX1]: RGBX corner pixel at (0,0) in 1920x1059 surface, bounded by (0,0,1920,1059) is not opaque: 9,8,8,255
Assertion failure: [GFX1]: RGBX corner pixel at (0,0) in 1920x1059 surface, bounded by (0,0,1920,1059) is not opaque: 9,8,8,255, at /construction/www/firefox/firefox-76.0.1/gfx/2d/Logging.h:756
…
Hit MOZ_CRASH(GFX: An assert from the graphics logger) at /construction/www/firefox/firefox-76.0.1/gfx/2d/Logging.h:757

Hope one day I'll dig it up. Though debug build takes a lot of time and resources.

Removing the last crash uncovered probably a huge issue on our platform. Crashes happen probably during each redraw. Typical crash looks like:

Crash Annotation GraphicsCriticalError: |[0][GFX1]: RGBX corner pixel at (0,0) in 1920x1059 surface, bounded by (0,0,1920,1059) is not opaque: 9,8,8,255 (t=6.52262) |[2671][GFX1]: RGBX corner pixel at (1919,0) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=530.971) |[2672][GFX1]: RGBX corner pixel at (1919,73) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=531.002) |[2658][GFX1]: RGBX corner pixel at (0,73) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=456.514) |[2659][GFX1]: RGBX corner pixel at (960,37) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 51,49,49,255 (t=456.571) |[2660][GFX1]: RGBX corner pixel at (0,0) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=528.595) |[2661][GFX1]: RGBX corner pixel at (1919,0) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=530.395) |[2662][GFX1]: RGBX corner pixel at (1919,73) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=530.455) |[2663][GFX1]: RGBX corner pixel at (0,73) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=530.522) |[2664][GFX1]: RGBX corner pixel at (960,37) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 52,50,50,255 (t=530.583) |[2665][GFX1]: RGBX corner pixel at (0,0) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=530.629) |[2666][GFX1]: RGBX corner pixel at (1919,0) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=530.704) |[2667][GFX1]: RGBX corner pixel at (1919,73) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=530.733) |[2668][GFX1]: RGBX corner pixel at (0,73) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=530.774) |[2669][GFX1]: RGBX corner pixel at (960,37) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 52,50,50,255 (t=530.811) |[2670][GFX1]: RGBX corner pixel at (0,0) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255 (t=530.945) [GFX1]: RGBX corner pixel at (1919,73) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255
Assertion failure: [GFX1]: RGBX corner pixel at (1919,73) in 1920x1059 surface, bounded by (0,0,1920,74) is not opaque: 13,12,12,255, at /construction/www/firefox/firefox-76.0.1/gfx/2d/Logging.h:756
#01: std::_Function_base::_Base_manager<bool (*)(mozilla::TimeStamp)>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)[/usr/local/lib/firefox/libxul.so +0x2de68f7]
#02: std::_Function_base::_Base_manager<bool (*)(mozilla::TimeStamp)>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)[/usr/local/lib/firefox/libxul.so +0x2de8763]
#03: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct(unsigned long, char)[/usr/local/lib/firefox/libxul.so +0x309815d]
#04: std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_assertion()[/usr/local/lib/firefox/libxul.so +0x2f51faa]
#05: std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_assertion()[/usr/local/lib/firefox/libxul.so +0x2f538d9]
#06: std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_assertion()[/usr/local/lib/firefox/libxul.so +0x2f4d2d9]
#07: std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_assertion()[/usr/local/lib/firefox/libxul.so +0x2f8a3ad]
#08: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct(unsigned long, char)[/usr/local/lib/firefox/libxul.so +0x30cd6c2]
#09: std::_Rb_tree_node<std::pair<int const, int> >* std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy<std::_Rb_tree<int, std::pair<int const, int>, [/usr/local/lib/firefox/libxul.so +0x30f9dcb]
#10: std::_Rb_tree_node<std::pair<int const, int> >* std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy<std::_Rb_tree<int, std::pair<int const, int>, [/usr/local/lib/firefox/libxul.so +0x3100610]
#11: std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<int const, int> >*)[/usr/local/lib/firefox/libxul.so +0x30e1403]
#12: std::_Rb_tree_node<std::pair<int const, int> >* std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy<std::_Rb_tree<int, std::pair<int const, int>, [/usr/local/lib/firefox/libxul.so +0x30e4567]
#13: std::_Rb_tree_node<std::pair<int const, int> >* std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy<std::_Rb_tree<int, std::pair<int const, int>, [/usr/local/lib/firefox/libxul.so +0x30fc92a]
#14: std::_Rb_tree_node<std::pair<int const, int> >* std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy<std::_Rb_tree<int, std::pair<int const, int>, [/usr/local/lib/firefox/libxul.so +0x30fd3f6]
#15: std::_Rb_tree_node<std::pair<int const, int> >* std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy<std::_Rb_tree<int, std::pair<int const, int>, [/usr/local/lib/firefox/libxul.so +0x30fdef1]
#16: std::_Rb_tree_node<std::pair<int const, int> >* std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy<std::_Rb_tree<int, std::pair<int const, int>, [/usr/local/lib/firefox/libxul.so +0x30fe190]
#17: std::_Rb_tree_node<std::pair<int const, int> >* std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy<std::_Rb_tree<int, std::pair<int const, int>, [/usr/local/lib/firefox/libxul.so +0x31255dc]
#18: std::_Rb_tree_node<std::pair<int const, int> >* std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy<std::_Rb_tree<int, std::pair<int const, int>, [/usr/local/lib/firefox/libxul.so +0x310ef05]
#19: std::_Rb_tree_node<std::pair<int const, int> >* std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy<std::_Rb_tree<int, std::pair<int const, int>, [/usr/local/lib/firefox/libxul.so +0x310efb9]
#20: std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_replace_aux(unsigned long, unsigned long, unsigned long, wchar_t)[/usr/local/lib/firefox/libxul.so +0x27ae72f]
#21: std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_replace_aux(unsigned long, unsigned long, unsigned long, wchar_t)[/usr/local/lib/firefox/libxul.so +0x27a176d]
#22: std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<ch[/usr/local/lib/firefox/libxul.so +0x26ca641]
#23: std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<ch[/usr/local/lib/firefox/libxul.so +0x26d325e]
#24: std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<ch[/usr/local/lib/firefox/libxul.so +0x26d4cea]
#25: std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<ch[/usr/local/lib/firefox/libxul.so +0x26d5004]
#26: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allo[/usr/local/lib/firefox/libxul.so +0x267b292]
#27: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allo[/usr/local/lib/firefox/libxul.so +0x26840b9]
#28: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allo[/usr/local/lib/firefox/libxul.so +0x2684943]
#29: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allo[/usr/local/lib/firefox/libxul.so +0x26773b3]
#30: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allo[/usr/local/lib/firefox/libxul.so +0x2677435]
#31: std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >* std::_Rb_tree<std::__cxx11::basic_string<char, std::ch[/usr/local/lib/firefox/libxul.so +0x269761b]
#32: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allo[/usr/local/lib/firefox/libxul.so +0x267466a]
#33: pthread_detach[/usr/lib/libpthread.so.0 +0xb42e]
#34: ??? (???:???)

arcade, comment #16 and comment #17 are another issue, so could you file new issue for #16 and #17?

OS: Unspecified → Other
Flags: needinfo?(l10n)

I think it might be closed. For a last few builds it's quite stable on DragonFly. Thank you all!

(In reply to arcade from comment #19)

I think it might be closed. For a last few builds it's quite stable on DragonFly. Thank you all!

Thanks for letting us know!

Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago
Resolution: --- → WORKSFORME

Well, it was working asof 106. Right now version 108 crashes for me almost instantly, so I guess I'll try to revert making DEBUG work first.

You need to log in before you can comment on or make changes to this bug.