brave / brave-browser

Brave browser for Android, iOS, Linux, macOS, Windows.
https://brave.com
Mozilla Public License 2.0
17.85k stars 2.34k forks source link

Crash when trying to close browser #39419

Closed srirambv closed 1 month ago

srirambv commented 4 months ago

IMPORTANT: Your crash has already been automatically reported to our crash system. Please file this bug only if you can provide more information about it.

Brave Version: 1.69.61 Chromium: 127.0.6533.17 Operating System: Windows NT 10.0.22631

URL (if applicable) where crash occurred:

Can you reproduce this crash?

What steps will reproduce this crash? (If it's not reproducible, what were you doing just before the crash?)

  1. Upgrade to `1.69.61
  2. Close browser
  3. Browser crashes

Note: I had two profiles open. Not sure if this is going to make any difference. Closing either of the profiles the browser crashes

DO NOT CHANGE BELOW THIS LINE Crash ID: crash/69400400-b362-320c-0000-000000000000 63400400-b362-320c-0000-000000000000 59400400-b362-320c-0000-000000000000`

iefremov commented 4 months ago
[ 00 ] ImmediateCrash() ( immediate_crash.h:176 )
[ 01 ] CheckFailure() ( check.h:212 )
[ 02 ] TabStripModel::GetTabHandleAt(int) ( tab_strip_model.cc:271 )
[ 03 ] operator==(absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > >,absl::container_internal::HashEq<const void *,void>::Hash,absl::container_internal::HashEq<const void *,void>::Eq,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > >::iterator const &,absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > >,absl::container_internal::HashEq<const void *,void>::Hash,absl::container_internal::HashEq<const void *,void>::Eq,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > >::iterator const &) ( raw_hash_set.h:2476 )
[ 04 ] operator!=(absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > >,absl::container_internal::HashEq<const void *,void>::Hash,absl::container_internal::HashEq<const void *,void>::Eq,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > >::iterator const &,absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > >,absl::container_internal::HashEq<const void *,void>::Hash,absl::container_internal::HashEq<const void *,void>::Eq,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > >::iterator const &) ( raw_hash_set.h:2481 )
[ 05 ] base::SupportsUserData::GetUserData(void const *) ( supports_user_data.cc:51 )
[ 06 ] Browser::TabGroupedStateChanged(std::__Cr::optional<tab_groups::TabGroupId>,content::WebContents *,int) ( browser.cc:1478 )
[ 07 ] RtlUnwind
[ 08 ] base::ObserverList<net::MDnsListenerImpl,0,1,base::internal::UncheckedObserverAdapter<0> >::Iter::Iter(base::ObserverList<net::MDnsListenerImpl,0,1,base::internal::UncheckedObserverAdapter<0> > const *) ( observer_list.h:154 )
[ 09 ] TabStripModel::TabGroupStateChanged(int,content::WebContents *,std::__Cr::optional<tab_groups::TabGroupId> const,std::__Cr::optional<tab_groups::TabGroupId> const) ( tab_strip_model.cc:2695 )
[ 10 ] std::__Cr::__tree<std::__Cr::__value_type<unsigned long long,int>,std::__Cr::__map_value_compare<unsigned long long,std::__Cr::__value_type<unsigned long long,int>,std::__Cr::less<unsigned long long>,1>,std::__Cr::allocator<std::__Cr::__value_type<unsigned long long,int> > >::__insert_node_at(std::__Cr::__tree_end_node<std::__Cr::__tree_node_base<void *> *> *,std::__Cr::__tree_node_base<void *> * &,std::__Cr::__tree_node_base<void *> *) ( __tree:1769 )
[ 11 ] std::__Cr::__tree<std::__Cr::__value_type<unsigned long long,int>,std::__Cr::__map_value_compare<unsigned long long,std::__Cr::__value_type<unsigned long long,int>,std::__Cr::less<unsigned long long>,1>,std::__Cr::allocator<std::__Cr::__value_type<unsigned long long,int> > >::__emplace_multi<const std::__Cr::pair<const unsigned long long,int> &>(std::__Cr::pair<const unsigned long long,int> const &) ( __tree:1861 )
[ 12 ] std::__Cr::__tree<std::__Cr::__value_type<gl::GpuPreference,unsigned long long>,std::__Cr::__map_value_compare<gl::GpuPreference,std::__Cr::__value_type<gl::GpuPreference,unsigned long long>,std::__Cr::less<gl::GpuPreference>,1>,std::__Cr::allocator<std::__Cr::__value_type<gl::GpuPreference,unsigned long long> > >::destroy(std::__Cr::__tree_node<std::__Cr::__value_type<gl::GpuPreference,unsigned long long>,void *> *) ( __tree:1545 )
[ 13 ] TabStripModel::RemoveTabFromIndexImpl(int) ( tab_strip_model.cc:2586 )
[ 14 ] operator==(absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > >,absl::container_internal::HashEq<const void *,void>::Hash,absl::container_internal::HashEq<const void *,void>::Eq,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > >::iterator const &,absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > >,absl::container_internal::HashEq<const void *,void>::Hash,absl::container_internal::HashEq<const void *,void>::Eq,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > >::iterator const &) ( raw_hash_set.h:2476 )
[ 15 ] operator!=(absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > >,absl::container_internal::HashEq<const void *,void>::Hash,absl::container_internal::HashEq<const void *,void>::Eq,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > >::iterator const &,absl::container_internal::raw_hash_set<absl::container_internal::FlatHashMapPolicy<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > >,absl::container_internal::HashEq<const void *,void>::Hash,absl::container_internal::HashEq<const void *,void>::Eq,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > >::iterator const &) ( raw_hash_set.h:2481 )
[ 16 ] base::SupportsUserData::GetUserData(void const *) ( supports_user_data.cc:51 )
[ 17 ] RtlUnwind
[ 18 ] RtlUnwind
[ 19 ] TabStripModel::DetachWebContentsImpl(int,int,bool,TabStripModelChange::RemoveReason) ( tab_strip_model.cc:427 )
[ 20 ] UnloadController::RunUnloadEventsHelper(content::WebContents *) ( unload_controller.cc:113 )
[ 21 ] TabStripModel::CloseWebContentses(base::span<content::WebContents *const,18446744073709551615,content::WebContents *const *>,unsigned int,TabStripModel::DetachNotifications *) ( tab_strip_model.cc:2109 )
[ 22 ] TabStripModel::CloseTabs(base::span<content::WebContents *const,18446744073709551615,content::WebContents *const *>,unsigned int) ( tab_strip_model.cc:2016 )
[ 23 ] PinnedTabCodec::WritePinnedTabs(Profile *) ( pinned_tab_codec.cc:79 )
[ 24 ] RtlUnwind
[ 25 ] RtlUnwind
[ 26 ] operator new(unsigned __int64) ( new_scalar.cpp:36 )
[ 27 ] TabStripModel::CloseAllTabs() ( tab_strip_model.cc:670 )
[ 28 ] UnloadController::ProcessPendingTabs(bool) ( unload_controller.cc:355 )
[ 29 ] IPC::ChannelAssociatedGroupController::Accept(mojo::Message *) ( ipc_mojo_bootstrap.cc:1159 )
[ 30 ] 0xaaaaaaaaaaaaaaaa
[ 31 ] IPC::ChannelAssociatedGroupController::AcceptOnEndpointThread(mojo::Message,IPC::`anonymous namespace'::ScopedUrgentMessageNotification) ( ipc_mojo_bootstrap.cc:1226 )
[ 32 ] base::internal::DecayedFunctorTraits<void (IPC::ChannelAssociatedGroupController::*)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification),IPC::ChannelAssociatedGroupController *&&,mojo::Message &&,IPC::(anonymous namespace)::ScopedUrgentMessageNotification &&>::Invoke((mojo::Message,IPC::`anonymous namespace'::ScopedUrgentMessageNotification),scoped_refptr<IPC::ChannelAssociatedGroupController> &&,mojo::Message &&,IPC::`anonymous namespace'::ScopedUrgentMessageNotification &&) ( bind_internal.h:738 )
[ 33 ] base::internal::InvokeHelper<0,base::internal::FunctorTraits<void (IPC::ChannelAssociatedGroupController::*&&)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification),IPC::ChannelAssociatedGroupController *&&,mojo::Message &&,IPC::(anonymous namespace)::ScopedUrgentMessageNotification &&>,void,0,1,2>::MakeItSo((mojo::Message,IPC::`anonymous namespace'::ScopedUrgentMessageNotification) &&,std::__Cr::tuple<scoped_refptr<IPC::ChannelAssociatedGroupController>,mojo::Message,IPC::(anonymous namespace)::ScopedUrgentMessageNotification> &&) ( bind_internal.h:930 )
[ 34 ] base::internal::Invoker<base::internal::FunctorTraits<void (IPC::ChannelAssociatedGroupController::*&&)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification),IPC::ChannelAssociatedGroupController *&&,mojo::Message &&,IPC::(anonymous namespace)::ScopedUrgentMessageNotification &&>,base::internal::BindState<1,1,0,void (IPC::ChannelAssociatedGroupController::*)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification),scoped_refptr<IPC::ChannelAssociatedGroupController>,mojo::Message,IPC::(anonymous namespace)::ScopedUrgentMessageNotification>,void ()>::RunImpl((mojo::Message,IPC::`anonymous namespace'::ScopedUrgentMessageNotification) &&,std::__Cr::tuple<scoped_refptr<IPC::ChannelAssociatedGroupController>,mojo::Message,IPC::(anonymous namespace)::ScopedUrgentMessageNotification> &&,std::__Cr::integer_sequence<unsigned long long,0,1,2>) ( bind_internal.h:1067 )
[ 35 ] base::internal::Invoker<base::internal::FunctorTraits<void (IPC::ChannelAssociatedGroupController::*&&)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification),IPC::ChannelAssociatedGroupController *&&,mojo::Message &&,IPC::(anonymous namespace)::ScopedUrgentMessageNotification &&>,base::internal::BindState<1,1,0,void (IPC::ChannelAssociatedGroupController::*)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification),scoped_refptr<IPC::ChannelAssociatedGroupController>,mojo::Message,IPC::(anonymous namespace)::ScopedUrgentMessageNotification>,void ()>::RunOnce(base::internal::BindStateBase *) ( bind_internal.h:980 )
[ 36 ] base::OnceCallback<void ()>::Run() ( callback.h:156 )
[ 37 ] base::TaskAnnotator::RunTaskImpl(base::PendingTask &) ( task_annotator.cc:203 )
[ 38 ] base::TaskAnnotator::RunTask(perfetto::StaticString,base::PendingTask &,base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl::<lambda_4> &&) ( task_annotator.h:90 )
[ 39 ] base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow *) ( thread_controller_with_message_pump_impl.cc:484 )
[ 40 ] base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() ( thread_controller_with_message_pump_impl.cc:346 )
[ 41 ] base::MessagePumpForUI::DoRunLoop() ( message_pump_win.cc:259 )
[ 42 ] RtlUnwind
[ 43 ] base::MessagePumpWin::Run(base::MessagePump::Delegate *) ( message_pump_win.cc:84 )
[ 44 ] base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool,base::TimeDelta) ( thread_controller_with_message_pump_impl.cc:657 )
[ 45 ] base::RunLoop::Run(base::Location const &) ( run_loop.cc:136 )
[ 46 ] content::BrowserMainLoop::RunMainMessageLoop() ( browser_main_loop.cc:1087 )
[ 47 ] RtlUnwind
[ 48 ] RtlUnwind
[ 49 ] content::BrowserMainLoop::RunMainMessageLoop() ( browser_main_loop.cc:1085 )
[ 50 ] content::BrowserMainRunnerImpl::Run() ( browser_main_runner_impl.cc:160 )
[ 51 ] content::BrowserMain(content::MainFunctionParams) ( browser_main.cc:34 )
[ 52 ] content::RunBrowserProcessMain(content::MainFunctionParams,content::ContentMainDelegate *) ( content_main_runner_impl.cc:721 )
[ 53 ] RtlUnwind
[ 54 ] RtlUnwind
[ 55 ] partition_alloc::PartitionRoot::SetSortActiveSlotSpansEnabled(bool) ( partition_root.cc:1889 )
[ 56 ] base::allocator::PartitionAllocSupport::ReconfigureAfterTaskRunnerInit(std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char> > const &) ( partition_alloc_support.cc:1469 )
[ 57 ] content::ContentMainRunnerImpl::RunBrowser(content::MainFunctionParams,bool) ( content_main_runner_impl.cc:1302 )
[ 58 ] std::__Cr::__compressed_pair_elem<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char> >::__rep,0,0>::__compressed_pair_elem(std::__Cr::__value_init_tag) ( compressed_pair.h:49 )
[ 59 ] std::__Cr::__compressed_pair<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char> >::__rep,std::__Cr::allocator<char> >::__compressed_pair(std::__Cr::__value_init_tag &&,std::__Cr::__default_init_tag &&) ( compressed_pair.h:119 )
[ 60 ] std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char> >::basic_string() ( string:898 )
[ 61 ] UTF16ToUTF8(std::__Cr::basic_string_view<char16_t,std::__Cr::char_traits<char16_t> >) ( utf_string_conversions.cc:248 )
[ 62 ] WideToUTF8(std::__Cr::basic_string_view<wchar_t,std::__Cr::char_traits<wchar_t> >) ( utf_string_conversions.cc:330 )
[ 63 ] base::CommandLine::GetSwitchValueASCII(std::__Cr::basic_string_view<char,std::__Cr::char_traits<char> >) ( command_line.cc:361 )
[ 64 ] content::ContentMainRunnerImpl::Run() ( content_main_runner_impl.cc:1154 )
[ 65 ] RunContentProcess(content::ContentMainParams,content::ContentMainRunner *) ( content_main.cc:332 )
[ 66 ] content::ContentMain(content::ContentMainParams) ( content_main.cc:345 )
[ 67 ] ChromeMain(HINSTANCE__ *,sandbox::SandboxInterfaceInfo *,__int64) ( chrome_main.cc:194 )
[ 68 ] MainDllLoader::Launch(HINSTANCE__ *,base::TimeTicks) ( main_dll_loader_win.cc:181 )
[ 69 ] wWinMain(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) ( chrome_exe_main_win.cc:350 )
[ 70 ] invoke_main() ( exe_common.inl:118 )
[ 71 ] __scrt_common_main_seh() ( exe_common.inl:288 )
[ 72 ] 0x7ffe06af257d
[ 73 ] RtlUserThreadStart
[ 74 ] 0x7ffe05af0f10
[ 75 ] GetPackageActivationSettings(unsigned short const *,enum PACKAGEACTIVATIONSETTINGS *)
GeetaSarvadnya commented 4 months ago

@srirambv I can't reproduce the issue could you provide detailed steps? please. I have followed steps below and I didn't get crash

  1. Clean profile 1.69.53
  2. Opened a bunch of tabs few tabs are pinned and added few tabs to group
  3. Create a new profile 2
  4. Opened a bunch of tabs few tabs are pinned and added few tabs to group
  5. Open brave://settings/help
  6. Brave updated to 1.69.61 without crash
  7. Close the browser
  8. Reopen the browser
  9. Browser opened without any crash
kjozwiak commented 4 months ago

@srirambv do you have split view enabled? Believe @bsclifton ran into the same crash via https://github.com/brave/brave-browser/issues/39442. Once @bsclifton disabled Split View from brave://flags, the crash stopped occurring.

iefremov commented 1 month ago

duplicate https://github.com/brave/brave-browser/issues/39442