New issue
Advanced search Search tips

Issue 717380 link

Starred by 1 user

Issue metadata

Status: Fixed
Merged: issue 698140
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 653916



Sign in to add a comment

Flaky BLOCK_SHUTDOWN Task Posted After Shutdown for Multiple Tests

Project Member Reported by robliao@chromium.org, May 2 2017

Issue description

Bot:
Linux ChromiumOS Tests (dbg)(1)
https://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%28dbg%29%281%29

Failing Run:
https://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%28dbg%29%281%29/builds/25521

Reverted:
https://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%28dbg%29%281%29/builds/25529
No failures after 25521.

Test Cases Failed: browser_tests
CaptivePortalWindowTest.OnRedirected
SupervisedUserCreationTest.PRE_PRE_CheckPodForSupervisedUser

Associated Stack:
[20734:20911:0501/132016.366839:FATAL:task_tracker.cc(398)] Check failed: !shutdown_event_->IsSignaled().
#0 0x7faea1ffebfb base::debug::StackTrace::StackTrace()
#1 0x7faea1ffd93c base::debug::StackTrace::StackTrace()
#2 0x7faea2069497 logging::LogMessage::~LogMessage()
#3 0x7faea21a7481 base::internal::TaskTracker::BeforePostTask()
#4 0x7faea21a7238 base::internal::TaskTracker::WillPostTask()
#5 0x7faea2192f5f base::internal::SchedulerSingleThreadTaskRunnerManager::SchedulerSingleThreadTaskRunner::PostDelayedTask()
#6 0x7faea218186d base::TaskRunner::PostTask()
#7 0x7faea201555a base::FileDescriptorWatcher::Controller::Watcher::OnFileCanReadWithoutBlocking()
#8 0x7faea20a5781 base::MessagePumpLibevent::FileDescriptorWatcher::OnFileCanReadWithoutBlocking()
#9 0x7faea20a6831 base::MessagePumpLibevent::OnLibeventNotification()
#10 0x7faea22e50ae event_process_active
#11 0x7faea22e46f7 event_base_loop
#12 0x7faea20a6b20 base::MessagePumpLibevent::Run()
#13 0x7faea208e052 base::MessageLoop::RunHandler()
#14 0x7faea212fea4 base::RunLoop::Run()
#15 0x7faea21cce72 base::Thread::Run()
#16 0x7faea21cd663 base::Thread::ThreadMain()
#17 0x7faea21b5d3a base::(anonymous namespace)::ThreadFunc()
#18 0x7faea2457184 start_thread
#19 0x7fae8621037d clone

Received signal 6
#0 0x7faea1ffebfb base::debug::StackTrace::StackTrace()
#1 0x7faea1ffd93c base::debug::StackTrace::StackTrace()
#2 0x7faea1ffe70f base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7faea245f330 <unknown>
#4 0x7fae8614cc37 gsignal
#5 0x7fae86150028 abort
#6 0x7faea1ffbac6 base::debug::(anonymous namespace)::DebugBreak()
#7 0x7faea1ffbaa8 base::debug::BreakDebugger()
#8 0x7faea2069912 logging::LogMessage::~LogMessage()
#9 0x7faea21a7481 base::internal::TaskTracker::BeforePostTask()
#10 0x7faea21a7238 base::internal::TaskTracker::WillPostTask()
#11 0x7faea2192f5f base::internal::SchedulerSingleThreadTaskRunnerManager::SchedulerSingleThreadTaskRunner::PostDelayedTask()
#12 0x7faea218186d base::TaskRunner::PostTask()
#13 0x7faea201555a base::FileDescriptorWatcher::Controller::Watcher::OnFileCanReadWithoutBlocking()
#14 0x7faea20a5781 base::MessagePumpLibevent::FileDescriptorWatcher::OnFileCanReadWithoutBlocking()
#15 0x7faea20a6831 base::MessagePumpLibevent::OnLibeventNotification()
#16 0x7faea22e50ae event_process_active
#17 0x7faea22e46f7 event_base_loop
#18 0x7faea20a6b20 base::MessagePumpLibevent::Run()
#19 0x7faea208e052 base::MessageLoop::RunHandler()
#20 0x7faea212fea4 base::RunLoop::Run()
#21 0x7faea21cce72 base::Thread::Run()
#22 0x7faea21cd663 base::Thread::ThreadMain()
#23 0x7faea21b5d3a base::(anonymous namespace)::ThreadFunc()
#24 0x7faea2457184 start_thread
#25 0x7fae8621037d clone
  r8: fffffffffffffec8  r9: 00007fae7b151750 r10: 0000000000000008 r11: 0000000000000202
 r12: 0000000000000000 r13: 0000000000000000 r14: 00007fae7b1559c0 r15: 00007fae7b155700
  di: 00000000000050fe  si: 00000000000051af  bp: 00007fae7b152130  bx: 0000000000000000
  dx: 0000000000000006  ax: 0000000000000000  cx: ffffffffffffffff  sp: 00007fae7b151ff8
  ip: 00007fae8614cc37 efl: 0000000000000202 cgf: 0000000000000033 erf: 0000000000000000
 trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
 
Description: Show this description
Mergedinto: 698140
Status: Duplicate (was: Started)
Status: Started (was: Duplicate)
Unmerging as stopping the service thread turns out to require a lot more work than expected.
Project Member

Comment 4 by bugdroid1@chromium.org, May 4 2017

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

commit f10490bd9e23a11a75977d6c53e2571248a61900
Author: robliao <robliao@chromium.org>
Date: Thu May 04 20:53:37 2017

Exempt the Service Thread from BLOCK_SHUTDOWN DCHECKs

In production, FileDescriptorWatchers can be leaky and post
BLOCK_SHUTDOWN tasks in response to their notification.

Stopping the service thread requires some non-trivial task lifetime
fixes to do it correctly, so this was deemed the next best quick fix
for redirection.

BUG= 717380 

Review-Url: https://codereview.chromium.org/2857103005
Cr-Commit-Position: refs/heads/master@{#469461}

[modify] https://crrev.com/f10490bd9e23a11a75977d6c53e2571248a61900/base/task_scheduler/task_scheduler_impl.cc
[modify] https://crrev.com/f10490bd9e23a11a75977d6c53e2571248a61900/base/task_scheduler/task_scheduler_impl_unittest.cc
[modify] https://crrev.com/f10490bd9e23a11a75977d6c53e2571248a61900/base/task_scheduler/task_tracker.cc
[modify] https://crrev.com/f10490bd9e23a11a75977d6c53e2571248a61900/base/task_scheduler/task_tracker.h
[modify] https://crrev.com/f10490bd9e23a11a75977d6c53e2571248a61900/base/task_scheduler/task_tracker_posix.cc
[modify] https://crrev.com/f10490bd9e23a11a75977d6c53e2571248a61900/base/task_scheduler/task_tracker_posix.h
[modify] https://crrev.com/f10490bd9e23a11a75977d6c53e2571248a61900/base/threading/thread.cc
[modify] https://crrev.com/f10490bd9e23a11a75977d6c53e2571248a61900/base/threading/thread.h

Status: Fixed (was: Started)
There's still a TODO referencing this bug in base/threading/thread.h, BTW.

Sign in to add a comment