Open stephendonner opened 7 months ago
@stephendonner is there a crash ID on brave://crashes?
@stephendonner is there a crash ID on brave://crashes?
Yup, sorry!
25ff0400-b651-8c0b-0000-000000000000
[ 00 ] partition_alloc::internal::OnNoMemoryInternal(unsigned long) ( oom.cc:57 )
[ 01 ] partition_alloc::TerminateBecauseOutOfMemory(unsigned long) ( oom.cc:64 )
[ 02 ] partition_alloc::internal::OnNoMemory(unsigned long) ( oom.cc:74 )
[ 03 ] partition_alloc::PartitionRoot::OutOfMemory(unsigned long) ( partition_root.cc:836 )
[ 04 ] partition_alloc::internal::(anonymous namespace)::PartitionOutOfMemoryMappingFailure(partition_alloc::PartitionRoot*, unsigned long) ( partition_bucket.cc:63 )
[ 05 ] partition_alloc::internal::(anonymous namespace)::PartitionDirectMap(partition_alloc::PartitionRoot*, partition_alloc::internal::AllocFlags, unsigned long, unsigned long) ( partition_bucket.cc:288 )
[ 06 ] partition_alloc::internal::PartitionBucket::SlowPathAlloc(partition_alloc::PartitionRoot*, partition_alloc::internal::AllocFlags, unsigned long, unsigned long, partition_alloc::internal::SlotSpanMetadata**, bool*) ( partition_bucket.cc:1341 )
[ 07 ] void* partition_alloc::PartitionRoot::AllocInternalNoHooks<(partition_alloc::internal::AllocFlags)16>(unsigned long, unsigned long) ( partition_root.h:1298 )
[ 08 ] void* partition_alloc::PartitionRoot::AllocInternal<(partition_alloc::internal::AllocFlags)16>(unsigned long, unsigned long, char const*) ( partition_root.h:2111 )
[ 09 ] void* partition_alloc::PartitionRoot::ReallocInline<(partition_alloc::internal::AllocFlags)16, (partition_alloc::internal::FreeFlags)0>(void*, unsigned long, char const*) ( partition_root.h:2492 )
[ 10 ] void* partition_alloc::PartitionRoot::Realloc<(partition_alloc::internal::AllocFlags)16, (partition_alloc::internal::FreeFlags)0>(void*, unsigned long, char const*) ( partition_root.h:534 )
[ 11 ] base::allocator::dispatcher::internal::DispatcherImpl<base::PoissonAllocationSampler>::ReallocFn(allocator_shim::AllocatorDispatch const*, void*, unsigned long, void*) ( dispatcher_internal.h:180 )
[ 12 ] ShimRealloc ( shim_alloc_functions.h:134 )
[ 13 ] allocator_shim::(anonymous namespace)::MallocZoneRealloc(_malloc_zone_t*, void*, unsigned long) ( allocator_shim_override_apple_default_zone.h:161 )
[ 14 ] malloc_zone_realloc
[ 15 ] realloc
[ 16 ] alloc::alloc::Global::grow_impl ( alloc.rs:136 )
[ 17 ] <alloc::alloc::Global as core::alloc::Allocator>::grow ( alloc.rs:266 )
[ 18 ] alloc::raw_vec::finish_grow ( raw_vec.rs:492 )
[ 19 ] alloc::raw_vec::RawVec<T,A>::grow_amortized ( raw_vec.rs:414 )
[ 20 ] alloc::raw_vec::RawVec<T,A>::reserve::do_reserve_and_handle ( raw_vec.rs:289 )
[ 21 ] alloc::raw_vec::RawVec<T,A>::reserve ( raw_vec.rs:293 )
[ 22 ] alloc::vec::Vec<T,A>::reserve ( mod.rs:909 )
[ 23 ] alloc::vec::Vec<T,A>::append_elements ( mod.rs:1997 )
[ 24 ] alloc::vec::Vec<T,A>::append ( mod.rs:1987 )
[ 25 ] adblock::lists::FilterSet::add_filters ( lists.rs:241 )
[ 26 ] adblock::lists::FilterSet::add_filter_list ( lists.rs:234 )
[ 27 ] adblock_cxx::filter_set::FilterSet::add_filter_list_with_permissions::{{closure}} ( filter_set.rs:35 )
[ 28 ] adblock_cxx::filter_set::FilterSet::add_filter_list_with_permissions ( filter_set.rs:34 )
[ 29 ] adblock::FilterSet::add_filter_list(std::__Cr::vector<unsigned char, std::__Cr::allocator<unsigned char>> const&) ( filter_set.rs:26 )
[ 30 ] brave_shields::(anonymous namespace)::AddDATBufferToFilterSet(base::OnceCallback<void (adblock::FilterListMetadata const&)>, std::__Cr::vector<unsigned char, std::__Cr::allocator<unsigned char>>, rust::cxxbridge1::Box<adblock::FilterSet>*) ( ad_block_subscription_filters_provider.cc:28 )
[ 31 ] void base::internal::FunctorTraits<void (*)(base::OnceCallback<void (adblock::FilterListMetadata const&)>, std::__Cr::vector<unsigned char, std::__Cr::allocator<unsigned char>>, rust::cxxbridge1::Box<adblock::FilterSet>*)>::Invoke<void (*)(base::OnceCallback<void (adblock::FilterListMetadata const&)>, std::__Cr::vector<unsigned char, std::__Cr::allocator<unsigned char>>, rust::cxxbridge1::Box<adblock::FilterSet>*), base::OnceCallback<void (adblock::FilterListMetadata const&)>, std::__Cr::vector<unsigned char, std::__Cr::allocator<unsigned char>>, rust::cxxbridge1::Box<adblock::FilterSet>*>(void (*&&)(base::OnceCallback<void (adblock::FilterListMetadata const&)>, std::__Cr::vector<unsigned char, std::__Cr::allocator<unsigned char>>, rust::cxxbridge1::Box<adblock::FilterSet>*), base::OnceCallback<void (adblock::FilterListMetadata const&)>&&, std::__Cr::vector<unsigned char, std::__Cr::allocator<unsigned char>>&&, rust::cxxbridge1::Box<adblock::FilterSet>*&&) ( bind_internal.h:641 )
Description
Crashes (OOM) from allocating too much memory, trying to read large filter lists
Steps to Reproduce
https://filterlists.com/
brave://settings/shields/filters
https://tgc.cloud/downloads/hosts.txt
into theCustom filter list
textfield and saveActual result:
Tends to crash (OOM, looks like it allocates too much)
Expected result:
Shouldn't crash
Reproduces how often:
Brave version (brave://version info)
Version/Channel Information:
Other Additional Information:
Miscellaneous Information:
cc @antonok-edm @pes10k @AlexeyBarabash @brave/qa-team @rebron