Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when custom filter list is missing or empty for Windows users #32301

Closed
bsclifton opened this issue Aug 16, 2023 · 11 comments · Fixed by brave/brave-core#19462
Closed

Crash when custom filter list is missing or empty for Windows users #32301

bsclifton opened this issue Aug 16, 2023 · 11 comments · Fixed by brave/brave-core#19462

Comments

@bsclifton
Copy link
Member

bsclifton commented Aug 16, 2023

Description

There are some folks reporting an issue on the release version of Brave on Windows

Basically, they experience a crash on startup. These are being reported to Backtrace and are viewable here:
https://brave.sp.backtrace.io/p/brave/explore?filters=JTVCJTVCJTIyX2RlbGV0ZWQlMjIlMkMlMjJlcXVhbCUyMiUyQyUyMjAlMjIlNUQlNUQ%3D&aggregations=((callstack%2Chead))&fingerprint=152f4fe65c86ba434d7a8d7436e8e8df88e90d0cdb3229d9d6422ca5cf1e03be&

Steps to Reproduce / Test plan

  1. Visit brave://settings/shields/filters
  2. Under Add custom filter lists paste in https://antonok.com/tmp/empty.txt
  3. Click Add
  4. Crash ☹️

Brave version (brave://version info)

Seems to be 1.57.47 on Windows

@bsclifton
Copy link
Member Author

bsclifton commented Aug 16, 2023

@bsclifton
Copy link
Member Author

Example callstack:

[ 00 ] panic_nounwind_fmt(core::fmt::Arguments,core::panic::location::Location *) ( panicking.rs:82 )
[ 01 ] panic_nounwind(ref$<str$>) ( panicking.rs:126 )
[ 02 ] core::slice::raw::from_raw_parts<u8>(unsigned char *,unsigned __int64) ( iter.rs:128 )
[ 03 ] adblock_ffi::read_list_metadata(signed char *,unsigned __int64) ( lib.rs:129 )
[ 04 ] adblock::FilterListMetadata::FilterListMetadata(char const *,unsigned __int64) ( wrapper.cc:53 )
[ 05 ] brave_shields::AdBlockSubscriptionFiltersProvider::OnDATFileDataReady(base::OnceCallback<void (bool, const std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > &)>,std::__Cr::vector<unsigned char,std::__Cr::allocator<unsigned char> > const &) ( ad_block_subscription_filters_provider.cc:40 )
[ 06 ] base::internal::InvokeHelper<1,void,0,1>::MakeItSo((base::OnceCallback<void (bool)>,media::VideoDecodeStatsDB *) &&,std::__Cr::tuple<base::WeakPtr<media::InMemoryVideoDecodeStatsDBImpl>,base::OnceCallback<void (bool)> > &&,media::VideoDecodeStatsDB * &&) ( bind_internal.h:953 )
[ 07 ] base::internal::Invoker<base::internal::BindState<void (media::InMemoryVideoDecodeStatsDBImpl::*)(base::OnceCallback<void (bool)>, media::VideoDecodeStatsDB *),base::WeakPtr<media::InMemoryVideoDecodeStatsDBImpl>,base::OnceCallback<void (bool)> >,void (media::VideoDecodeStatsDB *)>::RunImpl((base::OnceCallback<void (bool)>,media::VideoDecodeStatsDB *) &&,std::__Cr::tuple<base::WeakPtr<media::InMemoryVideoDecodeStatsDBImpl>,base::OnceCallback<void (bool)> > &&,std::__Cr::integer_sequence<unsigned long long,0,1>,media::VideoDecodeStatsDB * &&) ( bind_internal.h:1025 )
[ 08 ] base::internal::Invoker<base::internal::BindState<void (media::InMemoryVideoDecodeStatsDBImpl::*)(base::OnceCallback<void (bool)>, media::VideoDecodeStatsDB *),base::WeakPtr<media::InMemoryVideoDecodeStatsDBImpl>,base::OnceCallback<void (bool)> >,void (media::VideoDecodeStatsDB *)>::RunOnce(base::internal::BindStateBase *,media::VideoDecodeStatsDB *) ( bind_internal.h:980 )
[ 09 ] base::OnceCallback<void (const base::FilePath &)>::Run(base::FilePath const &) ( callback.h:152 )
[ 10 ] base::internal::ReplyAdapter<base::FilePath,const base::FilePath &>(base::OnceCallback<void (const base::FilePath &)>,std::__Cr::unique_ptr<base::FilePath,std::__Cr::default_delete<base::FilePath> > *) ( post_task_and_reply_with_result_internal.h:29 )
[ 11 ] base::internal::FunctorTraits<void (*)(base::OnceCallback<void (network::AttributionVerificationMediator::CryptographersAndBlindedMessages)>, std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> > *),void>::Invoke((base::OnceCallback<void (network::AttributionVerificationMediator::CryptographersAndBlindedMessages)>,std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> > *) &&,base::OnceCallback<void (network::AttributionVerificationMediator::CryptographersAndBlindedMessages)> &&,std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> > * &&) ( bind_internal.h:636 )
[ 12 ] base::internal::InvokeHelper<0,void,0,1>::MakeItSo((base::OnceCallback<void (network::AttributionVerificationMediator::CryptographersAndBlindedMessages)>,std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> > *) &&,std::__Cr::tuple<base::OnceCallback<void (network::AttributionVerificationMediator::CryptographersAndBlindedMessages)>,base::internal::OwnedWrapper<std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> >,std::__Cr::default_delete<std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> > > > > &&) ( bind_internal.h:925 )
[ 13 ] base::internal::Invoker<base::internal::BindState<void (*)(base::OnceCallback<void (network::AttributionVerificationMediator::CryptographersAndBlindedMessages)>, std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> > *),base::OnceCallback<void (network::AttributionVerificationMediator::CryptographersAndBlindedMessages)>,base::internal::OwnedWrapper<std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> >,std::__Cr::default_delete<std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> > > > >,void ()>::RunImpl((base::OnceCallback<void (network::AttributionVerificationMediator::CryptographersAndBlindedMessages)>,std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> > *) &&,std::__Cr::tuple<base::OnceCallback<void (network::AttributionVerificationMediator::CryptographersAndBlindedMessages)>,base::internal::OwnedWrapper<std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> >,std::__Cr::default_delete<std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> > > > > &&,std::__Cr::integer_sequence<unsigned long long,0,1>) ( bind_internal.h:1025 )
[ 14 ] base::internal::Invoker<base::internal::BindState<void (*)(base::OnceCallback<void (network::AttributionVerificationMediator::CryptographersAndBlindedMessages)>, std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> > *),base::OnceCallback<void (network::AttributionVerificationMediator::CryptographersAndBlindedMessages)>,base::internal::OwnedWrapper<std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> >,std::__Cr::default_delete<std::__Cr::unique_ptr<network::AttributionVerificationMediator::CryptographersAndBlindedMessages,std::__Cr::default_delete<network::AttributionVerificationMediator::CryptographersAndBlindedMessages> > > > >,void ()>::RunOnce(base::internal::BindStateBase *) ( bind_internal.h:976 )
[ 15 ] base::OnceCallback<void ()>::Run() ( callback.h:152 )
[ 16 ] base::`anonymous namespace'::PostTaskAndReplyRelay::RunReply(base::`anonymous namespace'::PostTaskAndReplyRelay) ( post_task_and_reply_impl.cc:124 )
[ 17 ] base::internal::FunctorTraits<void (*)(base::(anonymous namespace)::PostTaskAndReplyRelay),void>::Invoke((base::`anonymous namespace'::PostTaskAndReplyRelay) &&,base::`anonymous namespace'::PostTaskAndReplyRelay &&) ( bind_internal.h:636 )
[ 18 ] base::internal::InvokeHelper<0,void,0>::MakeItSo((base::`anonymous namespace'::PostTaskAndReplyRelay) &&,std::__Cr::tuple<base::(anonymous namespace)::PostTaskAndReplyRelay> &&) ( bind_internal.h:925 )
[ 19 ] base::internal::Invoker<base::internal::BindState<void (*)(base::(anonymous namespace)::PostTaskAndReplyRelay),base::(anonymous namespace)::PostTaskAndReplyRelay>,void ()>::RunImpl((base::`anonymous namespace'::PostTaskAndReplyRelay) &&,std::__Cr::tuple<base::(anonymous namespace)::PostTaskAndReplyRelay> &&,std::__Cr::integer_sequence<unsigned long long,0>) ( bind_internal.h:1025 )
[ 20 ] base::internal::Invoker<base::internal::BindState<void (*)(base::(anonymous namespace)::PostTaskAndReplyRelay),base::(anonymous namespace)::PostTaskAndReplyRelay>,void ()>::RunOnce(base::internal::BindStateBase *) ( bind_internal.h:976 )
[ 21 ] base::OnceCallback<void ()>::Run() ( callback.h:152 )
[ 22 ] base::TaskAnnotator::RunTaskImpl(base::PendingTask &) ( task_annotator.cc:186 )
[ 23 ] base::TaskAnnotator::RunTask(perfetto::StaticString,base::PendingTask &,base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl::<lambda_0> &&) ( task_annotator.h:88 )
[ 24 ] base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow *) ( thread_controller_with_message_pump_impl.cc:486 )
[ 25 ] base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() ( thread_controller_with_message_pump_impl.cc:351 )
[ 26 ] base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoIdleWork() ( thread_controller_with_message_pump_impl.cc:563 )
[ 27 ] base::MessagePumpForUI::DoRunLoop() ( message_pump_win.cc:212 )
[ 28 ] base::MessagePumpWin::Run(base::MessagePump::Delegate *) ( message_pump_win.cc:78 )
[ 29 ] base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool,base::TimeDelta) ( thread_controller_with_message_pump_impl.cc:654 )
[ 30 ] base::RunLoop::Run(base::Location const &) ( run_loop.cc:136 )
[ 31 ] base::RunLoop::RunLoop(base::RunLoop::Type) ( run_loop.cc:92 )
[ 32 ] content::BrowserMainLoop::RunMainMessageLoop() ( browser_main_loop.cc:1069 )
[ 33 ] content::BrowserMainRunnerImpl::Run() ( browser_main_runner_impl.cc:159 )
[ 34 ] content::BrowserMain(content::MainFunctionParams) ( browser_main.cc:34 )
[ 35 ] RunBrowserProcessMain(content::MainFunctionParams,content::ContentMainDelegate *) ( content_main_runner_impl.cc:685 )
[ 36 ] content::ContentMainRunnerImpl::RunBrowser(content::MainFunctionParams,bool) ( content_main_runner_impl.cc:1266 )
[ 37 ] content::ContentMainRunnerImpl::Run() ( content_main_runner_impl.cc:1116 )
[ 38 ] RunContentProcess(content::ContentMainParams,content::ContentMainRunner *) ( content_main.cc:326 )
[ 39 ] content::ContentMain(content::ContentMainParams) ( content_main.cc:343 )
[ 40 ] ChromeMain(HINSTANCE__ *,sandbox::SandboxInterfaceInfo *,__int64) ( chrome_main.cc:189 )
[ 41 ] MainDllLoader::Launch(HINSTANCE__ *,base::TimeTicks) ( main_dll_loader_win.cc:166 )
[ 42 ] wWinMain(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) ( chrome_exe_main_win.cc:390 )
[ 43 ] invoke_main() ( exe_common.inl:118 )
[ 44 ] __scrt_common_main_seh() ( exe_common.inl:288 )
[ 45 ] BaseThreadInitThunk
[ 46 ] 0x7ffa2766aa68
[ 47 ] 0x7ffa24bcbd30

@kjozwiak
Copy link
Member

We'll label QA/Yes or QA/No once we have more information if the above is reproducible.

@jn-jairo
Copy link

I use Ubuntu 20.04.6 LTS and after updating to version 1.57.47 it doesn't start, I just get a blank screen, I had to downgrade to version 1.56.20.

@rebron rebron added the priority/P1 A very extremely bad problem. We might push a hotfix for it. label Aug 16, 2023
@rebron rebron added this to To do in Crashes via automation Aug 16, 2023
@bsclifton bsclifton changed the title Crash when opening Brave for some users Crash when filter list is empty for Windows users Aug 16, 2023
@bsclifton bsclifton changed the title Crash when filter list is empty for Windows users Crash when custom filter list is missing or empty for Windows users Aug 16, 2023
@bsclifton
Copy link
Member Author

@jn-jairo that seems to be a different issue than this - but seems really bad

Can you create a new issue and provide your details there? (Ubuntu 20.04.6 LTS / what architecture?)

@jn-jairo
Copy link

@jn-jairo that seems to be a different issue than this - but seems really bad

Can you create a new issue and provide your details there? (Ubuntu 20.04.6 LTS / what architecture?)

#32318

@kjozwiak
Copy link
Member

kjozwiak commented Aug 17, 2023

Closing as brave/brave-core#19462 was uplifted into 1.57.x via brave/brave-core#19724 and will be released tomorrow in a 1.57.x HF. The above requires 1.57.49 or higher for 1.57.x verification 👍

@GeetaSarvadnya
Copy link
Collaborator

GeetaSarvadnya commented Aug 17, 2023

Verification PASSED on

Brave | 1.57.49 Chromium: 116.0.5845.96 (Official Build) (64-bit)
-- | --
Revision | 8d78ad7e96630cfcd3ab4165cf0fd421d3c4f068
OS | Windows 10 Version 22H2 (Build 19045.3324)
Clean profile_PASSED
  1. Clean profile Install 1.57.49
  2. Visit brave://settings/shields/filters
  3. Under Add custom filter lists paste in https://antonok.com/tmp/empty.txt
  4. Click Add
  5. Confirmed that brave is NOT crashes and filter list added successfully
Upgrade profile_PASSED
  1. Clean profile 1.57.47
  2. Enable rewards
  3. Import bookmarks, extensions, passwords
  4. Edit the default global shield settings
  5. Update the default settings for Search engine and social media settings
  6. Disable the java scripts for twitter.com via shield
  7. Enable sync
  8. Upgrade the profile to 1.57.49
  9. Confirmed that cookies, history, extensions, password, bookmarks, sync chain are retained in an upgraded profile
  10. Follow the test plan from Crash when custom filter list is missing or empty for Windows users #32301 (comment)
  11. Confirmed that brave is NOT crashes and filter list added successfully

Verification PASSED on

Brave | 1.57.49 Chromium: 116.0.5845.96 (Official Build) (64-bit)
-- | --
Revision | 8d78ad7e96630cfcd3ab4165cf0fd421d3c4f068
OS | Windows 11 Version 22H2 (Build 22621.2134)

  • Reproduced the issue on 1.57.47
Clean profile_PASSED
  1. Clean profile Install 1.57.49
  2. Visit brave://settings/shields/filters
  3. Under Add custom filter lists paste in https://antonok.com/tmp/empty.txt
  4. Click Add
  5. Confirmed that brave is NOT crashes and filter list added successfully
Upgrade profile_PASSED
  1. Clean profile 1.57.47
  2. Enable rewards
  3. Import bookmarks, extensions, passwords
  4. Edit the default global shield settings
  5. Update the default settings for Search engine and social media settings
  6. Disable the java scripts for twitter.com via shield
  7. Enable sync
  8. Enable Braver VPN via brave://flags
  9. Block the web elements on any web pages
  10. Logged into few websites
  11. Upgrade the profile to 1.57.49
  12. Confirmed that cookies, history, extensions, password, bookmarks, sync chain are retained in an upgraded profile
  13. Confirmed that blocked elements and updates settings are retained in an upgraded profile
  14. Confirmed that sites are still logged in state after the upgrade
  15. Follow the test plan from Crash when custom filter list is missing or empty for Windows users #32301 (comment)
  16. Confirmed that brave is NOT crashes and filter list added successfully

@MadhaviSeelam
Copy link
Collaborator

MadhaviSeelam commented Aug 17, 2023

Verification PASSED using

Brave | 1.57.49 Chromium: 116.0.5845.96 (Official Build) (64-bit)
-- | --
Revision | 8d78ad7e96630cfcd3ab4165cf0fd421d3c4f068
OS | Windows 11 Version 22H2 (Build 22621.2134)

Reproduced the issue in 1.57.47 Chromium: 116.0.5845.96 using STR from #32301 (comment)

Uploaded Crash Report ID: | caa90100-0e1b-930a-0000-000000000000

Case 1: New Install

  1. Install 1.57.49
  2. launched Brave
  3. created additional profile and imported bookmarks
  4. enabled #brave-vpn flag in brave://flags
  5. added an extension via chrome.google.com/webstore
  6. added few custom filter lists in brave://settings/shields/filters including
  7. closed Brave and relaunched

Confirmed custom filter lists are added successfully and Brave is relaunched without crashes

image

Case 2: Upgrade

  1. Install 1.57.47
  2. launched Brave
  3. imported chrome profiles via onboarding
  4. added few custom filters lists via brave://settings/shields/filters
  5. enabled sync
  6. updated the default settings for Search engine and social media settings
  7. disabled the java scripts for cnn.com via Shields panel
  8. enable Braver VPN via brave://flags
  9. logged into few websites
  10. upgrade to the profile to 1.57.49
  11. confirmed that cookies, history, extensions, password, bookmarks, sync chain are retained in an upgraded profile
  12. Confirmed that blocked elements and updates settings are retained in an upgraded profile
  13. Confirmed that sites are still login after the upgrade
  14. confirmed custom filter lists are shown in brave://settings/shields/filters
  15. opened brave://settings/shields/filters and added following successfully
  16. closed and relaunched Brave

Confirmed custom filter lists are added successfully and Brave is relaunched without crashes

image

@LaurenWags
Copy link
Member

LaurenWags commented Aug 22, 2023

Verified with

Brave | 1.57.52 Chromium: 116.0.5845.96 (Official Build) (x86_64)
-- | --
Revision | 1f876d1266f048189d3cc887cfa5208508ac8194
OS | macOS Version 13.5 (Build 22G74)

Per information above, issue appears to be Windows only. Attempted to reproduce with 1.57.47 on macOS and issue did not reproduce, no crash observed when following the steps from #32301 (comment).

Screenshot 2023-08-22 at 10 15 16 AM
Case 1: New Install - PASSED
  1. Install 1.57.52
  2. launched Brave
  3. created additional profile and imported bookmarks
  4. added an extension via chrome.google.com/webstore
  5. added few custom filter lists in brave://settings/shields/filters including
  6. closed Brave and relaunched

Confirmed custom filter lists are added successfully and Brave is relaunched without crashes

Screenshot 2023-08-22 at 9 58 28 AM
Case 2: Upgrade - PASSED
  1. Install 1.57.47
  2. launched Brave
  3. imported bookmarks HTML file
  4. added few custom filters lists via brave://settings/shields/filters
  5. enabled sync
  6. updated the default settings for Search engine and social media settings
  7. disabled the java scripts for cnn.com via Shields panel
  8. logged into few websites
  9. upgrade to the profile to 1.57.52 via test channel
  10. confirmed that cookies, history, extensions, password, bookmarks, sync chain are retained in an upgraded profile
  11. Confirmed that blocked elements and updates settings are retained in an upgraded profile
  12. Confirmed that sites are still login after the upgrade
  13. confirmed custom filter lists are shown in brave://settings/shields/filters
  14. opened brave://settings/shields/filters and added following successfully
  15. closed and relaunched Brave

Confirmed custom filter lists are added successfully and Brave is relaunched without crashes

Screenshot 2023-08-22 at 1 23 47 PM

@LaurenWags
Copy link
Member

LaurenWags commented Aug 22, 2023

Verified with

Brave	1.57.52 Chromium: 116.0.5845.96 (Official Build) (64-bit) 
Revision	1f876d1266f048189d3cc887cfa5208508ac8194
OS	Linux

Per information above, issue appears to be Windows only. Attempted to reproduce with 1.57.47 on macOS and issue did not reproduce, no crash observed when following the steps from #32301 (comment).

Screenshot 2023-08-22 at 3 46 55 PM
Case 1: New Install - PASSED
  1. Install 1.57.52
  2. launched Brave
  3. created additional profile and added some bookmarks to each profile
  4. added an extension via chrome.google.com/webstore to default profile
  5. added few custom filter lists in brave://settings/shields/filters including
  6. closed Brave and relaunched

Confirmed custom filter lists are added successfully and Brave is relaunched without crashes

Screenshot 2023-08-22 at 3 42 19 PM
Case 2: Upgrade - PASSED
  1. Install 1.57.47
  2. launched Brave
  3. added a few bookmarks
  4. added few custom filters lists via brave://settings/shields/filters
  5. enabled sync
  6. updated the default settings for Search engine and social media settings
  7. disabled the java scripts for cnn.com via Shields panel
  8. logged into few websites
  9. upgrade to the profile to 1.57.52
  10. confirmed that cookies, history, password, bookmarks, sync chain are retained in an upgraded profile
  11. Confirmed that blocked elements and updates settings are retained in an upgraded profile
  12. Confirmed that sites are still login after the upgrade
  13. confirmed custom filter lists are shown in brave://settings/shields/filters
  14. opened brave://settings/shields/filters and added following successfully
  15. closed and relaunched Brave

Confirmed custom filter lists are added successfully and Brave is relaunched without crashes

Screenshot 2023-08-22 at 4 07 23 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment