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

Issue 796685 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Assertion failure inside SoftwareImageDecodeCache::DoDecodeImage

Project Member Reported by kbr@chromium.org, Dec 20 2017

Issue description

Caused by this CL:
https://chromium-review.googlesource.com/828053

Failures seen here, on Linux Intel:
https://ci.chromium.org/buildbot/chromium.gpu.fyi/Linux%20Release%20Swarmed%20%28Intel%20HD%20630%29/80

Apologies that this bot isn't yet part of the tryservers; we're just about to add it to some of the configurations, so this would have been caught before reaching the tree.

The failure is:

[1:4:1220/124440.325210:FATAL:thread_restrictions.cc(138)] Check failed: false. LazyInstance/Singleton is not allowed to be used on this thread.  Most likely it's because this thread is not joinable (or the current task is running with TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN semantics), so AtExitManager may have deleted the object on shutdown, leading to a potential shutdown crash. If you need to use the object from this context, it'll have to be updated to use Leaky traits.
#0 0x55ac9019953c base::debug::StackTrace::StackTrace()
#1 0x55ac901b91ec logging::LogMessage::~LogMessage()
#2 0x55ac9022a566 base::ThreadRestrictions::AssertSingletonAllowed()
#3 0x55ac908a712f gfx::ColorSpace::ToSkColorSpace()
#4 0x55ac913ed321 cc::SoftwareImageDecodeCache::DoDecodeImage()
#5 0x55ac913ec608 cc::SoftwareImageDecodeCache::DecodeImageIfNecessary()
#6 0x55ac913ec066 cc::SoftwareImageDecodeCache::DecodeImageInTask()
#7 0x55ac913f118a cc::(anonymous namespace)::SoftwareImageDecodeTaskImpl::RunOnWorkerThread()
#8 0x55ac913b0d4c cc::ImageController::ProcessNextImageDecodeOnWorkerThread()
#9 0x55ac9019ab3a base::debug::TaskAnnotator::RunTask()
#10 0x55ac90217a28 base::internal::TaskTracker::RunOrSkipTask()
#11 0x55ac9021863b base::internal::TaskTrackerPosix::RunOrSkipTask()
#12 0x55ac90216bfa base::internal::TaskTracker::RunNextTask()
#13 0x55ac90213e96 base::internal::SchedulerWorker::Thread::ThreadMain()
#14 0x55ac9022088f base::(anonymous namespace)::ThreadFunc()
#15 0x7fc5ea0e26da start_thread
#16 0x7fc5e4008d7f clone

I'm reverting https://chromium-review.googlesource.com/828053 because there's definitely some problem in this patch that happens to manifest only on this bot.

 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 20 2017

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

commit 27db1b323153ae956d0702030809fb46d762225e
Author: Kenneth Russell <kbr@chromium.org>
Date: Wed Dec 20 21:29:58 2017

Revert "cc/images: Introduce ProcessingType enum to SW image decode cache."

This reverts commit 4970ca501aa1c76afa68ebce75cd6584a9c47c2a.

Reason for revert: assertion failures on Linux Intel; http://crbug.com/796685 .

Original change's description:
> cc/images: Introduce ProcessingType enum to SW image decode cache.
> 
> This patch cleans up the ImageDecodeCacheKey in software:
> - Eliminates filter quality as it's only used to see if we're none
>   or low. Instead, introduce a bool that explicitly states this.
> - Eliminate two bools: can_use_original_size_decode and should_subrect.
>   Instead replace this with an explicit enum with three possible states.
> 
> R=​ericrk@chromium.org, khushalsagar@chromium.org
> 
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
> Change-Id: Ibc7ef089ea7cdbc2b744ae3bf808fc4de142030e
> Reviewed-on: https://chromium-review.googlesource.com/828053
> Commit-Queue: vmpstr <vmpstr@chromium.org>
> Reviewed-by: Khushal <khushalsagar@chromium.org>
> Reviewed-by: Eric Karl <ericrk@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#525406}

BUG=796685
TBR=vmpstr@chromium.org,khushalsagar@chromium.org,ericrk@chromium.org

Change-Id: Ib9a355837435d163e27fc8c0d1f531fd1aaa3148
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/837841
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525464}
[modify] https://crrev.com/27db1b323153ae956d0702030809fb46d762225e/cc/tiles/software_image_decode_cache.cc
[modify] https://crrev.com/27db1b323153ae956d0702030809fb46d762225e/cc/tiles/software_image_decode_cache.h
[modify] https://crrev.com/27db1b323153ae956d0702030809fb46d762225e/cc/tiles/software_image_decode_cache_unittest.cc

Cc: kbr@chromium.org vmp...@chromium.org
 Issue 796683  has been merged into this issue.

Comment 3 by kbr@chromium.org, Dec 20 2017

Labels: -Pri-1 Pri-2
Downgrading to P2 now that the revert is in. Please tell me if you have any trouble figuring out why it was firing. Hopefully by the time you're ready to reland, the Linux Intel bot will be part of linux_optional_gpu_tests_rel.

Comment 4 by vmp...@chromium.org, Dec 20 2017

Status: Started (was: Assigned)
Thanks for the quick revert. I'll see if I can figure out how to reproduce this locally, as it doesn't really seem like it's an Intel specific assertion.

Comment 5 by vmp...@chromium.org, Dec 20 2017

+ccameron. It seems that the issue is that we're using a singleton that eventually gets accessed on one of the threads. I think Chris has a fix.

Is there any magic incantation we can use to summon trybots that would use this bot? (before it's a part of linux_optional_gpu_tests_rel)

Comment 6 by vmp...@chromium.org, Dec 20 2017

Cc: ccameron@chromium.org
Project Member

Comment 7 by bugdroid1@chromium.org, Dec 21 2017

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

commit a9b81c0b13a8f695a22fb8c08062df3686ae13b2
Author: Christopher Cameron <ccameron@chromium.org>
Date: Thu Dec 21 00:23:54 2017

Use Leaky instead of DestructorAtExit

These need to be accessed on worker threads.

Bug: 796685
Change-Id: I033aabee50cd0f1f09d35eff307c9a8bf962caca
Reviewed-on: https://chromium-review.googlesource.com/837657
Reviewed-by: vmpstr <vmpstr@chromium.org>
Commit-Queue: ccameron <ccameron@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525531}
[modify] https://crrev.com/a9b81c0b13a8f695a22fb8c08062df3686ae13b2/ui/gfx/color_space.cc
[modify] https://crrev.com/a9b81c0b13a8f695a22fb8c08062df3686ae13b2/ui/gfx/icc_profile.cc

Comment 8 by kbr@chromium.org, Dec 21 2017

Owner: ccameron@chromium.org
Sorry, Vlad, I was wrong -- it was in fact this CL:
https://chromium-review.googlesource.com/834996

Re-landing yours.

Project Member

Comment 10 by bugdroid1@chromium.org, Dec 21 2017

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

commit 0fc736e40aeecab87e649a97bc4d6fd038085ca7
Author: Kenneth Russell <kbr@chromium.org>
Date: Thu Dec 21 01:14:48 2017

Reland "cc/images: Introduce ProcessingType enum to SW image decode cache."

This reverts commit 27db1b323153ae956d0702030809fb46d762225e.

Reason for revert: wasn't the cause of http://crbug.com/796685 .

Original change's description:
> Revert "cc/images: Introduce ProcessingType enum to SW image decode cache."
> 
> This reverts commit 4970ca501aa1c76afa68ebce75cd6584a9c47c2a.
> 
> Reason for revert: assertion failures on Linux Intel; http://crbug.com/796685 .
> 
> Original change's description:
> > cc/images: Introduce ProcessingType enum to SW image decode cache.
> > 
> > This patch cleans up the ImageDecodeCacheKey in software:
> > - Eliminates filter quality as it's only used to see if we're none
> >   or low. Instead, introduce a bool that explicitly states this.
> > - Eliminate two bools: can_use_original_size_decode and should_subrect.
> >   Instead replace this with an explicit enum with three possible states.
> > 
> > R=​ericrk@chromium.org, khushalsagar@chromium.org
> > 
> > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
> > Change-Id: Ibc7ef089ea7cdbc2b744ae3bf808fc4de142030e
> > Reviewed-on: https://chromium-review.googlesource.com/828053
> > Commit-Queue: vmpstr <vmpstr@chromium.org>
> > Reviewed-by: Khushal <khushalsagar@chromium.org>
> > Reviewed-by: Eric Karl <ericrk@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#525406}
> 
> BUG=796685
> TBR=vmpstr@chromium.org,khushalsagar@chromium.org,ericrk@chromium.org
> 
> Change-Id: Ib9a355837435d163e27fc8c0d1f531fd1aaa3148
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
> Reviewed-on: https://chromium-review.googlesource.com/837841
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#525464}

TBR=vmpstr@chromium.org,kbr@chromium.org,khushalsagar@chromium.org,ericrk@chromium.org

Change-Id: Ifc812d23692231241e4acc0a8fe2944f41f5a72b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 796685
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/838421
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525548}
[modify] https://crrev.com/0fc736e40aeecab87e649a97bc4d6fd038085ca7/cc/tiles/software_image_decode_cache.cc
[modify] https://crrev.com/0fc736e40aeecab87e649a97bc4d6fd038085ca7/cc/tiles/software_image_decode_cache.h
[modify] https://crrev.com/0fc736e40aeecab87e649a97bc4d6fd038085ca7/cc/tiles/software_image_decode_cache_unittest.cc

Comment 11 by kbr@chromium.org, Dec 21 2017

Sorry for slow reply. It's possible to trigger jobs on Swarming against these bots but it's pretty painful. I'll add them to the optional GPU trybots ASAP.

Sign in to add a comment