Segfault in SingleEntryPropertiesGetterForDrive::StartParseFileInfo |
|||||||
Issue descriptionUse sai.team1 test account. Once file manager loads click on the team drive root, and wait. Will eventually segfault with Received signal 11 SEGV_MAPERR 000000000080 #0 0x7fbf33df274c base::debug::StackTrace::StackTrace() #1 0x7fbf33df2241 base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x7fbf26b4b0c0 <unknown> #3 0x55c70b0b82b7 extensions::(anonymous namespace)::SingleEntryPropertiesGetterForDrive::StartParseFileInfo() #4 0x55c70b0b7f8a extensions::(anonymous namespace)::SingleEntryPropertiesGetterForDrive::OnGetFileInfo() #5 0x55c70b0b81b1 _ZN4base8internal7InvokerINS0_9BindStateIMN10extensions12_GLOBAL__N_135SingleEntryPropertiesGetterForDriveEFvN5drive9FileErrorENSt3__110unique_ptrINS6_13ResourceEntryENS8_14default_deleteISA_EEEEEJNS_7WeakPtrIS5_EEEEEFvS7_SD_EE3RunEPNS0_13BindStateBaseES7_OSD_ #6 0x55c70b11a8d5 drive::(anonymous namespace)::RunGetResourceEntryCallback() #7 0x55c70b11f93a _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvN5drive9FileErrorENSt3__110unique_ptrINS4_13ResourceEntryENS6_14default_deleteIS8_EEEEEEESB_S5_EJSD_SB_EEEFvS5_EE7RunOnceEPNS0_13BindStateBaseES5_ #8 0x55c70a86e9e1 base::internal::ReplyAdapter<>() #9 0x55c70a6eef07 _ZN4base8internal7InvokerINS0_9BindStateIPFvNS_12OnceCallbackIFvNSt3__110unique_ptrINS_5ValueENS4_14default_deleteIS6_EEEEEEEPNS5_IS9_NS7_IS9_EEEEEJSB_NS0_12OwnedWrapperISD_EEEEEFvvEE7RunOnceEPNS0_13BindStateBaseE #10 0x7fbf33db9dfd base::(anonymous namespace)::PostTaskAndReplyRelay::RunReply() #11 0x7fbf33db9e9e _ZN4base8internal7InvokerINS0_9BindStateIPFvNS_12_GLOBAL__N_121PostTaskAndReplyRelayEEJS4_EEEFvvEE7RunOnceEPNS0_13BindStateBaseE #12 0x7fbf33d097a5 base::debug::TaskAnnotator::RunTask() #13 0x7fbf33d3471a base::MessageLoop::RunTask() #14 0x7fbf33d34c13 base::MessageLoop::DoWork() #15 0x7fbf33e13029 base::MessagePumpLibevent::Run() #16 0x7fbf33d341c4 base::MessageLoop::Run() #17 0x7fbf33d672e9 base::RunLoop::Run() #18 0x55c70b25c1ad ChromeBrowserMainParts::MainMessageLoopRun() #19 0x7fbf30de8d77 content::BrowserMainLoop::RunMainMessageLoopParts() #20 0x7fbf30deba76 content::BrowserMainRunnerImpl::Run() #21 0x7fbf30de4f09 content::BrowserMain() #22 0x7fbf3186247d content::ContentMainRunnerImpl::Run() #23 0x7fbf340aef85 service_manager::Main() #24 0x7fbf31860924 content::ContentMain() #25 0x55c70a684a63 ChromeMain #26 0x7fbf254862b1 __libc_start_main #27 0x55c70a6848da _start r8: 0000000000000000 r9: 00007fbf33e85858 r10: 00001d42cd56fe38 r11: 0000000000000246 r12: 00001d42d218e2b0 r13: 00001d42d22ef000 r14: 0000000000000000 r15: 0000000000000000 di: 0000000000000001 si: 0000000000000001 bp: 00007ffffb75b520 bx: 00001d42d1f8e690 dx: 0000000000000001 ax: 00001d42d2580220 cx: 00000000000004bb sp: 00007ffffb75b260 ip: 000055c70b0b82b7 efl: 0000000000010202 cgf: 002b000000000033 erf: 0000000000000004 trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000080 [end of stack trace] Calling _exit(1). Core file will not be generated.
,
Aug 17
,
Aug 17
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c60115f819a76824a2e56612fa7da7ae564d7a2c commit c60115f819a76824a2e56612fa7da7ae564d7a2c Author: Stuart Langley <slangley@google.com> Date: Fri Aug 17 06:13:11 2018 Do not call GetResourceEntryCallback multiple times. GetResourceEntryCallback is really on a once callback, and by processing multiple team drive entries in the loop we introduce a race condition that can cause a SIGSEGV in private_api_drive when the callback is fired multiple times. Followup work is to get the Deduplicated name for the team drive and store that as the path so that the lookup will only match once. Bug: 875140 Change-Id: I35e381aa82d7c34e200ddc44b085205115fadd86 Reviewed-on: https://chromium-review.googlesource.com/1179483 Reviewed-by: Sam McNally <sammc@chromium.org> Commit-Queue: Stuart Langley <slangley@chromium.org> Cr-Commit-Position: refs/heads/master@{#583974} [modify] https://crrev.com/c60115f819a76824a2e56612fa7da7ae564d7a2c/components/drive/chromeos/file_system.cc
,
Aug 17
,
Aug 18
This bug requires manual review: M69 has already been promoted to the beta branch, so this requires manual review Please contact the milestone owner if you have questions. Owners: amineer@(Android), kariahda@(iOS), cindyb@(ChromeOS), govind@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Aug 20
Merge approved, M69.
,
Aug 20
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/20f24b17644a7714c9faa5ebb0f144232ac92895 commit 20f24b17644a7714c9faa5ebb0f144232ac92895 Author: Stuart Langley <slangley@google.com> Date: Mon Aug 20 22:35:18 2018 Do not call GetResourceEntryCallback multiple times. GetResourceEntryCallback is really on a once callback, and by processing multiple team drive entries in the loop we introduce a race condition that can cause a SIGSEGV in private_api_drive when the callback is fired multiple times. Followup work is to get the Deduplicated name for the team drive and store that as the path so that the lookup will only match once. Bug: 875140 Change-Id: I35e381aa82d7c34e200ddc44b085205115fadd86 Reviewed-on: https://chromium-review.googlesource.com/1179483 Reviewed-by: Sam McNally <sammc@chromium.org> Commit-Queue: Stuart Langley <slangley@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#583974}(cherry picked from commit c60115f819a76824a2e56612fa7da7ae564d7a2c) Reviewed-on: https://chromium-review.googlesource.com/1182461 Reviewed-by: Stuart Langley <slangley@chromium.org> Cr-Commit-Position: refs/branch-heads/3497@{#729} Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753} [modify] https://crrev.com/20f24b17644a7714c9faa5ebb0f144232ac92895/components/drive/chromeos/file_system.cc
,
Aug 20
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by slangley@chromium.org
, Aug 17I added diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc index 7c28f863da6f..eb0cda808ff3 100644 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc @@ -387,6 +387,9 @@ class SingleEntryPropertiesGetterForDrive { void StartParseFileInfo(bool shared_with_me) { DCHECK_CURRENTLY_ON(BrowserThread::UI); + DCHECK(owner_resource_entry_); + DCHECK(properties_); + FillEntryPropertiesValueForDrive( *owner_resource_entry_, shared_with_me, properties_.get()); Now I see [79849:79849:0817/141111.294408:FATAL:private_api_drive.cc(391)] Check failed: properties_. #0 0x7f3b7d61a74c base::debug::StackTrace::StackTrace() #1 0x7f3b7d54e7db logging::LogMessage::~LogMessage() #2 0x55c31b70f32e extensions::(anonymous namespace)::SingleEntryPropertiesGetterForDrive::StartParseFileInfo() #3 0x55c31b70ef8a extensions::(anonymous namespace)::SingleEntryPropertiesGetterForDrive::OnGetFileInfo()