brave / brave-browser

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

Crash in adblock::filters::cosmetic::CosmeticFilter::parse #41067

Open AdobeFan16 opened 2 months ago

AdobeFan16 commented 2 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.168 Chromium: 128.0.6613.138 Operating System: Windows NT 10.0.18362

URL (if applicable) where crash occurred: https://translate.google.com

Can you reproduce this crash? I don't know

What steps will reproduce this crash? (If it's not reproducible, what were you doing just before the crash?) I was using Google Translate, until it crashed and I'm sick and tired of these unstoppable crashes

DO NOT CHANGE BELOW THIS LINE Crash ID: crash/59cf0800-9ce4-970c-0000-000000000000

iefremov commented 2 months ago
[ 00 ] __rust_alloc_error_handler(unsigned int,unsigned int) ( remap_alloc.cc:156 )
[ 01 ] 0x18a3d32d
[ 02 ] 0x18a3d317
[ 03 ] 0x1a2adf85
[ 04 ] adblock::filters::cosmetic::CosmeticFilter::parse(ref$<str$>,bool,adblock::resources::PermissionMask) ( cosmetic.rs:342 )
[ 05 ] parse_filter(ref$<str$>,bool,adblock::lists::ParseOptions) ( lists.rs:410 )
[ 06 ] adblock::lists::FilterSet::add_filter_list(ref$<str$>,adblock::lists::ParseOptions) ( lists.rs:234 )
[ 07 ] closure$0(adblock_cxx::filter_set::impl$1::add_filter_list_with_permissions::closure_env$0 *) ( filter_set.rs:44 )
[ 08 ] adblock_cxx::filter_set::FilterSet::add_filter_list_with_permissions(cxx::cxx_vector::CxxVector<u8> *,unsigned char) ( filter_set.rs:34 )
[ 09 ] __FilterSet__add_filter_list_with_permissions(adblock_cxx::filter_set::FilterSet *,cxx::cxx_vector::CxxVector<u8> *,unsigned char) ( lib.rs:21 )
[ 10 ] closure$0(adblock_cxx::ffi::_::__FilterSet__add_filter_list_with_permissions::closure_env$0) ( lib.rs:18 )
[ 11 ] prevent_unwind(ref$<str$>,adblock_cxx::ffi::_::__FilterSet__add_filter_list_with_permissions::closure_env$0) ( unwind.rs:23 )
[ 12 ] __FilterSet__add_filter_list_with_permissions(adblock_cxx::filter_set::FilterSet *,cxx::cxx_vector::CxxVector<u8> *,unsigned char,adblock_cxx::ffi::FilterListMetadataResult *) ( lib.rs:28 )
[ 13 ] adblock::FilterSet::add_filter_list_with_permissions(std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > const &,unsigned char) ( lib.rs.cc:1231 )
[ 14 ] brave_shields::`anonymous namespace'::AddDATBufferToFilterSet(unsigned char,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >,rust::cxxbridge1::Box<adblock::FilterSet> *) ( ad_block_custom_filters_provider.cc:23 )
[ 15 ] base::internal::DecayedFunctorTraits<void (*)(unsigned char, std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >, rust::cxxbridge1::Box<adblock::FilterSet> *),unsigned char &&,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > &&>::Invoke<void (*)(unsigned char, std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >, rust::cxxbridge1::Box<adblock::FilterSet> *),unsigned char,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >,rust::cxxbridge1::Box<adblock::FilterSet> *>((unsigned char,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >,rust::cxxbridge1::Box<adblock::FilterSet> *) &&,unsigned char &&,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > &&,rust::cxxbridge1::Box<adblock::FilterSet> * &&) ( bind_internal.h:671 )
[ 16 ] base::internal::InvokeHelper<0,base::internal::FunctorTraits<void (*&&)(unsigned char, std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >, rust::cxxbridge1::Box<adblock::FilterSet> *),unsigned char &&,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > &&>,void,0,1>::MakeItSo((unsigned char,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >,rust::cxxbridge1::Box<adblock::FilterSet> *) &&,std::__Cr::tuple<unsigned char,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > > &&,rust::cxxbridge1::Box<adblock::FilterSet> * &&) ( bind_internal.h:930 )
[ 17 ] base::internal::Invoker<base::internal::FunctorTraits<void (*&&)(unsigned char, std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >, rust::cxxbridge1::Box<adblock::FilterSet> *),unsigned char &&,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > &&>,base::internal::BindState<0,1,0,void (*)(unsigned char, std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >, rust::cxxbridge1::Box<adblock::FilterSet> *),unsigned char,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > >,void (rust::cxxbridge1::Box<adblock::FilterSet> *)>::RunImpl((unsigned char,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >,rust::cxxbridge1::Box<adblock::FilterSet> *) &&,std::__Cr::tuple<unsigned char,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > > &&,std::__Cr::integer_sequence<unsigned int,0,1>,rust::cxxbridge1::Box<adblock::FilterSet> * &&) ( bind_internal.h:1067 )
[ 18 ] base::internal::Invoker<base::internal::FunctorTraits<void (*&&)(unsigned char, std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >, rust::cxxbridge1::Box<adblock::FilterSet> *),unsigned char &&,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > &&>,base::internal::BindState<0,1,0,void (*)(unsigned char, std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> >, rust::cxxbridge1::Box<adblock::FilterSet> *),unsigned char,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > >,void (rust::cxxbridge1::Box<adblock::FilterSet> *)>::RunOnce(base::internal::BindStateBase *,rust::cxxbridge1::Box<adblock::FilterSet> *) ( bind_internal.h:980 )
[ 19 ] brave_shields::RunAllResults(std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >,rust::cxxbridge1::Box<adblock::FilterSet> *) ( ad_block_filters_provider_manager.cc:102 )
[ 20 ] base::internal::DecayedFunctorTraits<void (*)(std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >, rust::cxxbridge1::Box<adblock::FilterSet> *),std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > > &&>::Invoke<void (*)(std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >, rust::cxxbridge1::Box<adblock::FilterSet> *),std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >,rust::cxxbridge1::Box<adblock::FilterSet> *>((std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >,rust::cxxbridge1::Box<adblock::FilterSet> *) &&,std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > > &&,rust::cxxbridge1::Box<adblock::FilterSet> * &&) ( bind_internal.h:671 )
[ 21 ] base::internal::InvokeHelper<0,base::internal::FunctorTraits<void (*&&)(std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >, rust::cxxbridge1::Box<adblock::FilterSet> *),std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > > &&>,void,0>::MakeItSo((std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >,rust::cxxbridge1::Box<adblock::FilterSet> *) &&,std::__Cr::tuple<std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > > > &&,rust::cxxbridge1::Box<adblock::FilterSet> * &&) ( bind_internal.h:930 )
[ 22 ] base::internal::Invoker<base::internal::FunctorTraits<void (*&&)(std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >, rust::cxxbridge1::Box<adblock::FilterSet> *),std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > > &&>,base::internal::BindState<0,1,0,void (*)(std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >, rust::cxxbridge1::Box<adblock::FilterSet> *),std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > > >,void (rust::cxxbridge1::Box<adblock::FilterSet> *)>::RunImpl((std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >,rust::cxxbridge1::Box<adblock::FilterSet> *) &&,std::__Cr::tuple<std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > > > &&,std::__Cr::integer_sequence<unsigned int,0>,rust::cxxbridge1::Box<adblock::FilterSet> * &&) ( bind_internal.h:1067 )
[ 23 ] base::internal::Invoker<base::internal::FunctorTraits<void (*&&)(std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >, rust::cxxbridge1::Box<adblock::FilterSet> *),std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > > &&>,base::internal::BindState<0,1,0,void (*)(std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > >, rust::cxxbridge1::Box<adblock::FilterSet> *),std::__Cr::vector<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>,std::__Cr::allocator<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > > >,void (rust::cxxbridge1::Box<adblock::FilterSet> *)>::RunOnce(base::internal::BindStateBase *,rust::cxxbridge1::Box<adblock::FilterSet> *) ( bind_internal.h:980 )
[ 24 ] base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>::Run(rust::cxxbridge1::Box<adblock::FilterSet> *) ( callback.h:156 )
[ 25 ] brave_shields::AdBlockService::SourceProviderObserver::OnFilterSetCallbackLoaded::<lambda_0>::operator()(base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)>) ( ad_block_service.cc:82 )
[ 26 ] base::internal::DecayedFunctorTraits<`lambda at ..\..\brave\components\brave_shields\content\browser\ad_block_service.cc:79:11',base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> &&>::Invoke(brave_shields::AdBlockService::SourceProviderObserver::OnFilterSetCallbackLoaded::<lambda_0> &&,base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> &&) ( bind_internal.h:656 )
[ 27 ] base::internal::InvokeHelper<0,base::internal::FunctorTraits<`lambda at ..\..\brave\components\brave_shields\content\browser\ad_block_service.cc:79:11' &&,base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> &&>,std::__Cr::unique_ptr<rust::cxxbridge1::Box<adblock::FilterSet>,std::__Cr::default_delete<rust::cxxbridge1::Box<adblock::FilterSet> > >,0>::MakeItSo(brave_shields::AdBlockService::SourceProviderObserver::OnFilterSetCallbackLoaded::<lambda_0> &&,std::__Cr::tuple<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > &&) ( bind_internal.h:930 )
[ 28 ] base::internal::Invoker<base::internal::FunctorTraits<`lambda at ..\..\brave\components\brave_shields\content\browser\ad_block_service.cc:79:11' &&,base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> &&>,base::internal::BindState<0,0,0,`lambda at ..\..\brave\components\brave_shields\content\browser\ad_block_service.cc:79:11',base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> >,std::__Cr::unique_ptr<rust::cxxbridge1::Box<adblock::FilterSet>,std::__Cr::default_delete<rust::cxxbridge1::Box<adblock::FilterSet> > > ()>::RunImpl(brave_shields::AdBlockService::SourceProviderObserver::OnFilterSetCallbackLoaded::<lambda_0> &&,std::__Cr::tuple<base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> > &&,std::__Cr::integer_sequence<unsigned int,0>) ( bind_internal.h:1067 )
[ 29 ] base::internal::Invoker<base::internal::FunctorTraits<`lambda at ..\..\brave\components\brave_shields\content\browser\ad_block_service.cc:79:11' &&,base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> &&>,base::internal::BindState<0,0,0,`lambda at ..\..\brave\components\brave_shields\content\browser\ad_block_service.cc:79:11',base::OnceCallback<void (rust::cxxbridge1::Box<adblock::FilterSet> *)> >,std::__Cr::unique_ptr<rust::cxxbridge1::Box<adblock::FilterSet>,std::__Cr::default_delete<rust::cxxbridge1::Box<adblock::FilterSet> > > ()>::RunOnce(base::internal::BindStateBase *) ( bind_internal.h:980 )
[ 30 ] base::OnceCallback<std::__Cr::unique_ptr<rust::cxxbridge1::Box<adblock::FilterSet>,std::__Cr::default_delete<rust::cxxbridge1::Box<adblock::FilterSet> > > ()>::Run() ( callback.h:156 )
[ 31 ] base::internal::ReturnAsParamAdapter<std::__Cr::unique_ptr<rust::cxxbridge1::Box<adblock::FilterSet>,std::__Cr::default_delete<rust::cxxbridge1::Box<adblock::FilterSet> > > >(base::OnceCallback<std::__Cr::unique_ptr<rust::cxxbridge1::Box<adblock::FilterSet>,std::__Cr::default_delete<rust::cxxbridge1::Box<adblock::FilterSet> > > ()>,std::__Cr::unique_ptr<std::__Cr::unique_ptr<rust::cxxbridge1::Box<adblock::FilterSet>,std::__Cr::default_delete<rust::cxxbridge1::Box<adblock::FilterSet> > >,std::__Cr::default_delete<std::__Cr::unique_ptr<rust::cxxbridge1::Box<adblock::FilterSet>,std::__Cr::default_delete<rust::cxxbridge1::Box<adblock::FilterSet> > > > > *) ( post_task_and_reply_with_result_internal.h:23 )
[ 32 ] base::internal::DecayedFunctorTraits<void (*)(base::OnceCallback<int ()>, std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *),base::OnceCallback<int ()> &&,std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *&&>::Invoke((base::OnceCallback<int ()>,std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *) &&,base::OnceCallback<int ()> &&,std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > * &&) ( bind_internal.h:671 )
[ 33 ] base::internal::InvokeHelper<0,base::internal::FunctorTraits<void (*&&)(base::OnceCallback<int ()>, std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *),base::OnceCallback<int ()> &&,std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *&&>,void,0,1>::MakeItSo((base::OnceCallback<int ()>,std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *) &&,std::__Cr::tuple<base::OnceCallback<int ()>,base::internal::UnretainedWrapper<std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> >,base::unretained_traits::MayNotDangle,0> > &&) ( bind_internal.h:930 )
[ 34 ] base::internal::Invoker<base::internal::FunctorTraits<void (*&&)(base::OnceCallback<int ()>, std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *),base::OnceCallback<int ()> &&,std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *&&>,base::internal::BindState<0,1,0,void (*)(base::OnceCallback<int ()>, std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *),base::OnceCallback<int ()>,base::internal::UnretainedWrapper<std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> >,base::unretained_traits::MayNotDangle,0> >,void ()>::RunImpl((base::OnceCallback<int ()>,std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *) &&,std::__Cr::tuple<base::OnceCallback<int ()>,base::internal::UnretainedWrapper<std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> >,base::unretained_traits::MayNotDangle,0> > &&,std::__Cr::integer_sequence<unsigned int,0,1>) ( bind_internal.h:1067 )
[ 35 ] base::internal::Invoker<base::internal::FunctorTraits<void (*&&)(base::OnceCallback<int ()>, std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *),base::OnceCallback<int ()> &&,std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *&&>,base::internal::BindState<0,1,0,void (*)(base::OnceCallback<int ()>, std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> > *),base::OnceCallback<int ()>,base::internal::UnretainedWrapper<std::__Cr::unique_ptr<int,std::__Cr::default_delete<int> >,base::unretained_traits::MayNotDangle,0> >,void ()>::RunOnce(base::internal::BindStateBase *) ( bind_internal.h:980 )
[ 36 ] base::OnceCallback<void ()>::Run() ( callback.h:156 )
[ 37 ] base::internal::PostTaskAndReplyRelay::RunTaskAndPostReply(base::internal::PostTaskAndReplyRelay) ( post_task_and_reply_impl.h:45 )
[ 38 ] base::internal::DecayedFunctorTraits<void (*)(base::internal::PostTaskAndReplyRelay),base::internal::PostTaskAndReplyRelay &&>::Invoke<void (*)(base::internal::PostTaskAndReplyRelay),base::internal::PostTaskAndReplyRelay>((base::internal::PostTaskAndReplyRelay) &&,base::internal::PostTaskAndReplyRelay &&) ( bind_internal.h:671 )
[ 39 ] base::internal::InvokeHelper<0,base::internal::FunctorTraits<void (*&&)(base::internal::PostTaskAndReplyRelay),base::internal::PostTaskAndReplyRelay &&>,void,0>::MakeItSo((base::internal::PostTaskAndReplyRelay) &&,std::__Cr::tuple<base::internal::PostTaskAndReplyRelay> &&) ( bind_internal.h:930 )
[ 40 ] base::internal::Invoker<base::internal::FunctorTraits<void (*&&)(base::internal::PostTaskAndReplyRelay),base::internal::PostTaskAndReplyRelay &&>,base::internal::BindState<0,1,0,void (*)(base::internal::PostTaskAndReplyRelay),base::internal::PostTaskAndReplyRelay>,void ()>::RunImpl((base::internal::PostTaskAndReplyRelay) &&,std::__Cr::tuple<base::internal::PostTaskAndReplyRelay> &&,std::__Cr::integer_sequence<unsigned int,0>) ( bind_internal.h:1067 )
[ 41 ] base::internal::Invoker<base::internal::FunctorTraits<void (*&&)(base::internal::PostTaskAndReplyRelay),base::internal::PostTaskAndReplyRelay &&>,base::internal::BindState<0,1,0,void (*)(base::internal::PostTaskAndReplyRelay),base::internal::PostTaskAndReplyRelay>,void ()>::RunOnce(base::internal::BindStateBase *) ( bind_internal.h:980 )
[ 42 ] base::OnceCallback<void ()>::Run() ( callback.h:156 )
[ 43 ] base::TaskAnnotator::RunTaskImpl(base::PendingTask &) ( task_annotator.cc:203 )
[ 44 ] base::TaskAnnotator::RunTask(perfetto::StaticString,base::PendingTask &,base::internal::TaskTracker::RunTaskImpl::<lambda_0> &&) ( task_annotator.h:90 )
[ 45 ] base::internal::TaskTracker::RunTaskImpl(base::internal::Task &,base::TaskTraits const &,base::internal::TaskSource *,base::internal::SequenceToken const &) ( task_tracker.cc:679 )
[ 46 ] base::internal::TaskTracker::RunSkipOnShutdown(base::internal::Task &,base::TaskTraits const &,base::internal::TaskSource *,base::internal::SequenceToken const &) ( task_tracker.cc:664 )
[ 47 ] base::internal::TaskTracker::RunTask(base::internal::Task,base::internal::TaskSource *,base::TaskTraits const &) ( task_tracker.cc:525 )
[ 48 ] base::internal::TaskTracker::RunAndPopNextTask(base::internal::RegisteredTaskSource) ( task_tracker.cc:416 )
[ 49 ] base::internal::WorkerThread::RunWorker() ( worker_thread.cc:436 )
[ 50 ] base::internal::WorkerThread::RunPooledWorker() ( worker_thread.cc:322 )
[ 51 ] base::`anonymous namespace'::ThreadFunc(void *) ( platform_thread_win.cc:131 )
[ 52 ] 0x758c2369
[ 53 ] 0x7725e66b
[ 54 ] 0x7725e63f
iefremov commented 2 months ago

@antonok-edm @atuchin-m any ideas?

atuchin-m commented 2 months ago

We had crashes with add_filter_list_with_permissions. They usually end with partition_alloc::internal::OnNoMemory. Looks like at some point there crashes just replaced by this one.

https://share.backtrace.io/api/share/WlVXx24fJMDiaEsqayUx13O0

In conclusion, it looks like OnNoMemory on rust allocations was just transformed to __rust_alloc_error_handler

atuchin-m commented 2 months ago

cr127 crashes with add_filter_list_with_permissions : https://share.backtrace.io/api/share/ztKx3whkTuHjlwJix33rYGL3 The top frame is alway partition_alloc::internal::OnNoMemory or partition_alloc::TerminateBecauseOutOfMemory

cr128 crashes with add_filter_list_with_permissions : https://share.backtrace.io/api/share/WPpHOncx3x1oJjUCj2ILrHH0 usually stop with alloc::raw_vec::handle_error, sometimes on rt_error or partition_alloc::internal::PartitionMallocUnchecked

iefremov commented 2 months ago

i wonder if this could actually be something malformed in our lists (or external lists)

atuchin-m commented 2 months ago

Looks like https://chromium-review.googlesource.com/c/chromium/src/+/5582550

atuchin-m commented 2 months ago

The new behavior looks more correct. It gives the Rust code an ability to handle alloc errors: https://doc.rust-lang.org/beta/src/alloc/raw_vec.rs.html#782-790

BTW, I really doubt that all OOMs just disappeared, it should have been replaced by other crashes or dumps.