New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 837492 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

DCHECK caused by chromeos::smb_client::TempFileManager::TempFileManager()

Project Member Reported by slangley@chromium.org, Apr 27 2018

Issue description

[166205:166205:0427/135243.432935:FATAL:thread_restrictions.cc(29)] Check failed: !g_blocking_disallowed.Get().Get(). Function marked as blocking was called from a scope that disallows blocking! If this task is running inside the TaskScheduler, it needs to have MayBlock() in its TaskTraits. Otherwise, consider making this blocking work asynchronous or, as a last resort, you may use ScopedAllowBlocking in a narrow scope.
#0 0x7f6a2b7d6f4d base::debug::StackTrace::StackTrace()
#1 0x7f6a2b506d7c base::debug::StackTrace::StackTrace()
#2 0x7f6a2b57325d logging::LogMessage::~LogMessage()
#3 0x7f6a2b6fef6b base::AssertBlockingAllowed()
#4 0x7f6a2b7e67e5 base::CreateTemporaryDirInDirImpl()
#5 0x7f6a2b7e6ed7 base::CreateNewTempDirectory()
#6 0x7f6a2b5501fe base::ScopedTempDir::CreateUniqueTempDir()
#7 0x55fab6f365eb chromeos::smb_client::TempFileManager::TempFileManager()
#8 0x55fab6f3161c chromeos::smb_client::SmbService::SmbService()
#9 0x55fab6f33e38 chromeos::smb_client::SmbServiceFactory::BuildServiceInstanceFor()
#10 0x7f6a1c9e27cc BrowserContextKeyedServiceFactory::BuildServiceInstanceFor()
#11 0x7f6a1e6a97b7 KeyedServiceFactory::GetServiceForContext()
#12 0x7f6a1e6aaac2 KeyedServiceFactory::CreateServiceNow()
#13 0x7f6a1e6a5a92 DependencyManager::CreateContextServices()
#14 0x7f6a1c9df0d0 BrowserContextDependencyManager::DoCreateBrowserContextServices()
#15 0x7f6a1c9def9f BrowserContextDependencyManager::CreateBrowserContextServices()
#16 0x55fab7ea13df ProfileImpl::OnLocaleReady()
#17 0x55fab48ec9ed _ZN4base8internal13FunctorTraitsIMN18OAuth2TokenService7FetcherEFvvEvE6InvokeIS5_PS3_JEEEvT_OT0_DpOT1_
#18 0x55fab48ec934 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN18OAuth2TokenService7FetcherEFvvEJPS5_EEEvOT_DpOT0_
#19 0x55fab7ea8f75 _ZN4base8internal7InvokerINS0_9BindStateIM11ProfileImplFvvEJNS0_17UnretainedWrapperIS3_EEEEEFvvEE7RunImplIRKS5_RKNSt3__15tupleIJS7_EEEJLm0EEEEvOT_OT0_NSE_16integer_sequenceImJXspT1_EEEE
#20 0x55fab7ea8ebc _ZN4base8internal7InvokerINS0_9BindStateIM11ProfileImplFvvEJNS0_17UnretainedWrapperIS3_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#21 0x55fab49238fd _ZNKR4base17RepeatingCallbackIFvvEE3RunEv
#22 0x55fab6b4ee8d chromeos::UserSessionManager::RunCallbackOnLocaleLoaded()
#23 0x55fab6b56ee0 _ZN4base8internal13FunctorTraitsIPFvRKNS_17RepeatingCallbackIFvvEEEPN8chromeos18InputEventsBlockerERKNS7_11locale_util20LanguageSwitchResultEEvE6InvokeIRKSF_JS6_S9_SD_EEEvOT_DpOT0_
#24 0x55fab6b56e7d _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvRKNS_17RepeatingCallbackIFvvEEEPN8chromeos18InputEventsBlockerERKNS9_11locale_util20LanguageSwitchResultEEJS8_SB_SF_EEEvOT_DpOT0_
#25 0x55fab6b56e25 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvvEEEPN8chromeos18InputEventsBlockerERKNS8_11locale_util20LanguageSwitchResultEEJS5_NS0_12OwnedWrapperIS9_EEEEEFvSE_EE7RunImplIRKSG_RKNSt3__15tupleIJS5_SI_EEEJLm0ELm1EEEEvOT_OT0_NSP_16integer_sequenceImJXspT1_EEEESE_
#26 0x55fab6b56d24 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_17RepeatingCallbackIFvvEEEPN8chromeos18InputEventsBlockerERKNS8_11locale_util20LanguageSwitchResultEEJS5_NS0_12OwnedWrapperIS9_EEEEEFvSE_EE3RunEPNS0_13BindStateBaseESE_
#27 0x55fab49deded _ZNKR4base17RepeatingCallbackIFvRKNSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEEE3RunESC_
#28 0x55fab67751e4 chromeos::(anonymous namespace)::FinishSwitchLanguage()
#29 0x55fab6775d14 _ZN4base8internal13FunctorTraitsIPFvNSt3__110unique_ptrIN8chromeos12_GLOBAL__N_118SwitchLanguageDataENS2_14default_deleteIS6_EEEEEvE6InvokeIRKSB_JS9_EEEvOT_DpOT0_
#30 0x55fab6775b7d _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvNSt3__110unique_ptrIN8chromeos12_GLOBAL__N_118SwitchLanguageDataENS4_14default_deleteIS8_EEEEEJSB_EEEvOT_DpOT0_
#31 0x55fab6775a90 _ZN4base8internal7InvokerINS0_9BindStateIPFvNSt3__110unique_ptrIN8chromeos12_GLOBAL__N_118SwitchLanguageDataENS3_14default_deleteIS7_EEEEEJNS0_13PassedWrapperISA_EEEEEFvvEE7RunImplIRKSC_RKNS3_5tupleIJSE_EEEJLm0EEEEvOT_OT0_NS3_16integer_sequenceImJXspT1_EEEE
#32 0x55fab67759bc _ZN4base8internal7InvokerINS0_9BindStateIPFvNSt3__110unique_ptrIN8chromeos12_GLOBAL__N_118SwitchLanguageDataENS3_14default_deleteIS7_EEEEEJNS0_13PassedWrapperISA_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#33 0x7f6a2b4b7ec1 _ZNO4base12OnceCallbackIFvvEE3RunEv
#34 0x7f6a2b6f006e base::(anonymous namespace)::PostTaskAndReplyRelay::RunReply()
#35 0x7f6a2b6f03b0 _ZN4base8internal13FunctorTraitsIPFvNS_12_GLOBAL__N_121PostTaskAndReplyRelayEEvE6InvokeIS5_JS3_EEEvOT_DpOT0_
#36 0x7f6a2b6f031d _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIPFvNS_12_GLOBAL__N_121PostTaskAndReplyRelayEEJS5_EEEvOT_DpOT0_
#37 0x7f6a2b6f02e0 _ZN4base8internal7InvokerINS0_9BindStateIPFvNS_12_GLOBAL__N_121PostTaskAndReplyRelayEEJS4_EEEFvvEE7RunImplIS6_NSt3__15tupleIJS4_EEEJLm0EEEEvOT_OT0_NSB_16integer_sequenceImJXspT1_EEEE
#38 0x7f6a2b6f0239 _ZN4base8internal7InvokerINS0_9BindStateIPFvNS_12_GLOBAL__N_121PostTaskAndReplyRelayEEJS4_EEEFvvEE7RunOnceEPNS0_13BindStateBaseE
#39 0x7f6a2b4b7ec1 _ZNO4base12OnceCallbackIFvvEE3RunEv
#40 0x7f6a2b50817a base::debug::TaskAnnotator::RunTask()
#41 0x7f6a2b59486a base::internal::IncomingTaskQueue::RunTask()
#42 0x7f6a2b59cec1 base::MessageLoop::RunTask()
#43 0x7f6a2b59d115 base::MessageLoop::DeferOrRunPendingTask()
#44 0x7f6a2b59d3d3 base::MessageLoop::DoWork()
#45 0x7f6a2b80cb1b base::MessagePumpLibevent::Run()
#46 0x7f6a2b59c7ae base::MessageLoop::Run()
#47 0x7f6a2b645f02 base::RunLoop::Run()
#48 0x55fab771499c ChromeBrowserMainParts::MainMessageLoopRun()
#49 0x7f6a2425090a content::BrowserMainLoop::RunMainMessageLoopParts()
#50 0x7f6a24258360 content::BrowserMainRunnerImpl::Run()
#51 0x7f6a24244ac3 content::BrowserMain()
#52 0x7f6a26181d7e content::RunNamedProcessTypeMain()
#53 0x7f6a2618542a content::ContentMainRunnerImpl::Run()
#54 0x7f6a26178c05 content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#55 0x7f6a2bd86583 service_manager::Main()
#56 0x7f6a2617ed5b content::ContentMain()
#57 0x55fab47abcf0 ChromeMain
#58 0x55fab47abc02 main
#59 0x7f6a079ba2b1 __libc_start_main
#60 0x55fab47abada _start

 
Status: Assigned (was: Untriaged)
Also caught that.
Steps to repro:
1. Build chromeos build on linux
2. Login with a gaia account.

cat out/Default/args.gn 
# Build arguments go here. Examples:
#   is_component_build = true
#   is_debug = false
symbol_level = 0
is_component_build = true
enable_nacl = false
use_goma = true
target_os = "chromeos"
is_official_build = false
is_chrome_branded = false
is_debug = false
remove_webcore_debug_symbols = true
dcheck_always_on = true

Allen, could you please take a look?

Allen found the problem yesterday. We will temporarily scope the call to prevent the DCHECK while refactoring to make this piece of the code happen on demand asynchronously.
Cc: allenvic@chromium.org
 Issue 838946  has been merged into this issue.
Project Member

Comment 4 by bugdroid1@chromium.org, May 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d6e03f2b8ae7ac22a65dffcbebe979ec5eea5339

commit d6e03f2b8ae7ac22a65dffcbebe979ec5eea5339
Author: Allen Vicencio <allenvic@chromium.org>
Date: Wed May 02 22:08:29 2018

Fix for DCHECK on SmbService initialization

This removes the initialization of TempFileManager in SmbService.
With this change, Mount will be in a broken state and will be fixed in a
future CL.

Bug:  837492 
Change-Id: I07689fd5a19e2bf56aac5d2f6cd9085d2352dcad
Reviewed-on: https://chromium-review.googlesource.com/1040678
Commit-Queue: Allen Vicencio <allenvic@chromium.org>
Commit-Queue: Zentaro Kavanagh <zentaro@chromium.org>
Reviewed-by: Zentaro Kavanagh <zentaro@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555570}
[modify] https://crrev.com/d6e03f2b8ae7ac22a65dffcbebe979ec5eea5339/chrome/browser/chromeos/smb_client/smb_service.cc
[modify] https://crrev.com/d6e03f2b8ae7ac22a65dffcbebe979ec5eea5339/chrome/browser/chromeos/smb_client/smb_service.h

Status: Started (was: Assigned)
Note that the merged changed only stops the DCHECK from happening and doesn't fix the root problem, so this bug shouldn't be closed. 

A bit of background: The DCHECK was getting triggered since we were initializing TempFileManager's temp directory when SmbService gets initialized (which happens on the UI thread). I am working on a CL that will initialize TempFileManager asynchronously.
Project Member

Comment 6 by bugdroid1@chromium.org, May 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bdf0095711b039373cbdd8c70f16a9e488017157

commit bdf0095711b039373cbdd8c70f16a9e488017157
Author: Allen Vicencio <allenvic@chromium.org>
Date: Mon May 07 19:08:11 2018

Change initialization of TempFileManager to async in SmbService

Makes initialization of TempFileManager asynchronous in SmbService due
to ScopedTempDir needing a blocking thread to initialize the temporary
directory.

CQ-DEPEND=CL:1043000

Bug:  837492 
Change-Id: I91b2695c551267d18bca03fa9f0304eeb1aba95d
Reviewed-on: https://chromium-review.googlesource.com/1042950
Reviewed-by: Zentaro Kavanagh <zentaro@chromium.org>
Commit-Queue: Allen Vicencio <allenvic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556519}
[modify] https://crrev.com/bdf0095711b039373cbdd8c70f16a9e488017157/chrome/browser/chromeos/smb_client/smb_service.cc
[modify] https://crrev.com/bdf0095711b039373cbdd8c70f16a9e488017157/chrome/browser/chromeos/smb_client/smb_service.h

Project Member

Comment 7 by bugdroid1@chromium.org, May 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4bc42f6223d52c7e885761bd0b93f26763eb38b5

commit 4bc42f6223d52c7e885761bd0b93f26763eb38b5
Author: Allen Vicencio <allenvic@chromium.org>
Date: Mon May 07 19:56:32 2018

Change initialization of TempFileManager to async in SmbFileSystem

Makes initialization of TempFileManager asynchronous in SmbFileSystem
due to ScopedTempDir needing a blocking thread to initialize its temporary directory.

Bug:  837492 
Change-Id: I1d19ede7bb566017cbb532af4cdf463946d631aa
Reviewed-on: https://chromium-review.googlesource.com/1043000
Reviewed-by: Zentaro Kavanagh <zentaro@chromium.org>
Commit-Queue: Allen Vicencio <allenvic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556536}
[modify] https://crrev.com/4bc42f6223d52c7e885761bd0b93f26763eb38b5/chrome/browser/chromeos/smb_client/smb_file_system.cc
[modify] https://crrev.com/4bc42f6223d52c7e885761bd0b93f26763eb38b5/chrome/browser/chromeos/smb_client/smb_file_system.h

Status: Fixed (was: Started)

Sign in to add a comment