Closed Bug 1839596 Opened 1 years ago Closed 1 year ago

Fenix with GV debug build crashes after landing 1824655

Categories

(Core :: Memory Allocator, defect)

defect

Tracking

()

RESOLVED FIXED
116 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox-esr115 --- unaffected
firefox114 --- unaffected
firefox115 --- unaffected
firefox116 --- fixed

People

(Reporter: m_kato, Assigned: pbone)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

Crash stack (by Assertion failure: gArenas.IsOnMainThread(), at /mozilla/geckoview/memory/build/mozjemalloc.cpp:3943) is

arena_t::arena_t(arena_params_s *, bool) mozjemalloc.cpp:3943
ArenaCollection::CreateArena(bool, arena_params_s *) mozjemalloc.cpp:4015
Allocator::moz_create_arena_with_params(arena_params_s *) mozjemalloc.cpp:4905
[Inlined] mozilla::dom::DOMArena::DOMArena() DOMArena.h:41
mozilla::dom::DocGroup::DocGroup(mozilla::dom::BrowsingContextGroup *, const nsTSubstring<…> &) DocGroup.cpp:120
mozilla::dom::DocGroup::Create(mozilla::dom::BrowsingContextGroup *, const nsTSubstring<…> &) DocGroup.cpp:53
[Inlined] $_0::operator()() const BrowsingContextGroup.cpp:497
[Inlined] nsBaseHashtable::EntryHandle::OrInsertWith<…>($_0 &&) nsBaseHashtable.h:726
[Inlined] RefPtr<mozilla::dom::DocGroup>& RefPtr<mozilla::dom::DocGroup>& nsBaseHashtable<nsCStringHashKey, RefPtr<mozilla::dom::DocGroup>, mozilla::dom::DocGroup*, nsDefaultConverter<RefPtr<mozilla::dom::DocGroup>, mozilla::dom::DocGroup*>>::LookupOrInsertWith<mozilla::dom::BrowsingContextGroup::AddDocument(nsTSubstring<char> const&, mozilla::dom::Document*)::$_0>(nsTSubstring<char> const&, mozilla::dom::BrowsingContextGroup::AddDocument(nsTSubstring<char> const&, mozilla::dom::Document*)::$_0&&)::'lambda'(mozilla::dom::BrowsingContextGroup::AddDocument(nsTSubstring<char> const&, mozilla::dom::Document*)::$_0)::operator()<nsBaseHashtable<nsCStringHashKey, RefPtr<mozilla::dom::DocGroup>, mozilla::dom::DocGroup*, nsDefaultConverter<RefPtr<mozilla::dom::DocGroup>, mozilla::dom::DocGroup*>>::EntryHandle>(mozilla::dom::BrowsingContextGroup::AddDocument(nsTSubstring<char> const&, mozilla::dom::Document*)::$_0) const nsBaseHashtable.h:423
[Inlined] decltype(auto) std::__ndk1::invoke_result<mozilla::dom::BrowsingContextGroup::AddDocument(nsTSubstring<char> const&, mozilla::dom::Document*)::$_0, nsBaseHashtable<nsCStringHashKey, RefPtr<mozilla::dom::DocGroup>, mozilla::dom::DocGroup*, nsDefaultConverter<RefPtr<mozilla::dom::DocGroup>, mozilla::dom::DocGroup*>>::EntryHandle&&>::type nsBaseHashtable<nsCStringHashKey, RefPtr<mozilla::dom::DocGroup>, mozilla::dom::DocGroup*, nsDefaultConverter<RefPtr<mozilla::dom::DocGroup>, mozilla::dom::DocGroup*>>::WithEntryHandle<RefPtr<mozilla::dom::DocGroup>& nsBaseHashtable<nsCStringHashKey, RefPtr<mozilla::dom::DocGroup>, mozilla::dom::DocGroup*, nsDefaultConverter<RefPtr<mozilla::dom::DocGroup>, mozilla::dom::DocGroup*>>::LookupOrInsertWith<mozilla::dom::BrowsingContextGroup::AddDocument(nsTSubstring<char> const&, mozilla::dom::Document*)::$_0>(nsTSubstring<char> const&, mozilla::dom::BrowsingContextGroup::AddDocument(nsTSubstring<char> const&, mozilla::dom::Document*)::$_0&&)::'lambda'(mozilla::dom::BrowsingContextGroup::AddDocument(nsTSubstring<char> const&, mozilla::dom::Document*)::$_0)>(nsTSubstring<char> const&, mozilla::dom::BrowsingContextGroup::AddDocument(nsTSubstring<char> const&, mozilla::dom::Document*)::$_0&&)::'lambda'(mozilla::dom::BrowsingContextGroup::AddDocument(nsTSubstring<char> const&, mozilla::dom::Document*)::$_0)::operator()<nsTHashtable<nsBaseHashtableET<nsCStringHashKey, RefPtr<mozilla::dom::DocGroup>>>::EntryHandle>(mozilla::dom::BrowsingContextGroup::AddDocument(nsTSubstring<char> const&, mozilla::dom::Document*)::$_0) const nsBaseHashtable.h:836
...

ArenaCollection is initalized on non-Gecko thread when using Fenix. NimbusDbScope thread initialize arena before Gecko main thread is initialized. So mMainThreadId becomes incorrect thread id.

[Inlined] ArenaCollection::Init() mozjemalloc.cpp:1279
[Inlined] malloc_init_hard() mozjemalloc.cpp:4417
malloc_init() mozjemalloc.cpp:1464
[Inlined] BaseAllocator::malloc(unsigned long) mozjemalloc.cpp:4476
Allocator::malloc(unsigned long) malloc_decls.h:51
moz_xmalloc(size_t) mozalloc.cpp:52
[Inlined] operator new(unsigned long) cxxalloc.h:33
[Inlined] google::protobuf::internal::ShutdownData::get() message_lite.cc:564
google::protobuf::internal::OnShutdownRun(void (*)(const void *), const void *) message_lite.cc:582
[Inlined] google::protobuf::internal::OnShutdownDestroyString(const std::__ndk1::basic_string<…> *) generated_message_util.h:205
[Inlined] google::protobuf::internal::InitProtobufDefaultsImpl() generated_message_util.cc:75
[Inlined] google::protobuf::internal::InitProtobufDefaultsSlow() generated_message_util.cc:83
[Inlined] __cxx_global_var_init generated_message_util.cc:90
_GLOBAL__I_000101 generated_message_util.cc:0
__dl__ZN6soinfo10call_arrayEPKcPPFvvEmb 0x00007e0a0bd78867
__dl__Z9do_dlopenPKciPK17android_dlextinfoPv 0x00007e0a0bd7672e
__dl_dlopen 0x00007e0a0bd7330b
Java_com_sun_jna_Native_open 0x00007e0a05b8c325
long com.sun.jna.Native.open(java.lang.String, int) 0x00007e09ee6dfd87
art_quick_invoke_static_stub 0x00007e0a06e43597
art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) 0x00007e0a06e5146d
art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a0701cb80
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0701508e
bool art::interpreter::DoInvoke<(art::InvokeType)0, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704ee43
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040800
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)0, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704ee43
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040800
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)0, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704ee43
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040800
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)1, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704d9ed
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e19d
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)0, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704ee43
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040800
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)0, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704ee43
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040800
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvokeVirtualQuick<false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0703643b
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e299
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)4, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704e5ca
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040b5f
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)4, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704e5ca
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040b5f
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvokeVirtualQuick<false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0703643b
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e299
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)1, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704d9ed
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e19d
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)1, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704d9ed
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e19d
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvokeVirtualQuick<false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0703643b
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e299
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)4, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704e5ca
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040b5f
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)4, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704e5ca
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040b5f
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvokeVirtualQuick<false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0703643b
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e299
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvokeVirtualQuick<false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0703643b
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e299
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015937
bool art::interpreter::DoInvoke<(art::InvokeType)4, false, true>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0703538c
art::JValue art::interpreter::ExecuteSwitchImpl<true, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07025027
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed155
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015937
bool art::interpreter::DoInvoke<(art::InvokeType)1, false, true>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a070346da
art::JValue art::interpreter::ExecuteSwitchImpl<true, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07022ff3
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed155
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvokeVirtualQuick<false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0703643b
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e299
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvokeVirtualQuick<false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0703643b
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e299
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvokeVirtualQuick<false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0703643b
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e299
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)4, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704e5ca
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040b5f
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)0, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704ee43
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040800
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)0, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704ee43
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040800
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)0, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704ee43
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040800
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvokeVirtualQuick<false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0703643b
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703e299
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)4, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704e5ca
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040b5f
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)4, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704e5ca
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040b5f
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)2, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704bace
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a0703d10f
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*) 0x00007e0a06ff334d
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a07015073
bool art::interpreter::DoInvoke<(art::InvokeType)4, false, false>(art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x00007e0a0704e5ca
art::JValue art::interpreter::ExecuteSwitchImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a07040b5f
art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) 0x00007e0a06fed0c3
artQuickToInterpreterBridge 0x00007e0a07316461
art_quick_to_interpreter_bridge 0x00007e0a06e4dcdd
art_quick_invoke_stub 0x00007e0a06e43235
art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) 0x00007e0a06e51448
art::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::ArgArray*, art::JValue*, char const*) 0x00007e0a071e20e8
art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*) 0x00007e0a071e36ea
art::Thread::CreateCallback(void*) 0x00007e0a07204eee
__pthread_start(void*) 0x00007e0a08f16772
__start_thread 0x00007e0a08eb69ec
__bionic_clone 0x00007e0a08ea9a66

Set release status flags based on info from the regressing bug 1824655

:pbone, since you are the author of the regressor, bug 1824655, could you take a look? Also, could you set the severity field?

For more information, please visit BugBot documentation.

Thank you so much for the detailed report!

I can land a patch to disable this optimisation on Android and follow-up with a real fix later.

Assignee: nobody → pbone
Status: NEW → ASSIGNED
Flags: needinfo?(pbone)
Blocks: 1839790
Attachment #9340433 - Attachment description: Bug 1839596 - Diable DOMArena lock elision on Android r=smaug → Bug 1839596 - Disable DOMArena lock elision on Android r=smaug

Hi :pbone, will this land for 116? Just a reminder that soft code freeze is tomorrow.

Flags: needinfo?(pbone)

Thanks for the reminder, Yes, I think I can fix it for 116. I'll DM smaug and get us to chat about the review there.

Flags: needinfo?(pbone)
Attachment #9340433 - Attachment description: Bug 1839596 - Disable DOMArena lock elision on Android r=smaug → Bug 1839596 - Explicitly tell jemalloc which is the main thread r=smaug
Pushed by pbone@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e547d8e23856 Explicitly tell jemalloc which is the main thread r=smaug
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 116 Branch

Set release status flags based on info from the regressing bug 1824655

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

Attachment

General

Created:
Updated:
Size: