New issue
Advanced search Search tips

Issue 787073 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug



Sign in to add a comment

DCHECK failure in ThemeServiceWin::GetDefaultColor()

Project Member Reported by thestig@chromium.org, Nov 20 2017

Issue description

This is causing interactive_ui_tests failures for me on trybots, as mentioned in https://bugs.chromium.org/p/chromium/issues/detail?id=640996#c14 - Please try to fix this soon, as it is likely an easy fix and will help with the ongoing high amount of trybot flakiness.

Since bug 640996 seems to predate the code in question from r441254, I'm splitting it off into a separate bug:

UserDataDowngradeBrowserNoMSITest.Test failed for my CL try jobs too: https://logs.chromium.org/v/?s=chromium%2Fbb%2Ftryserver.chromium.win%2Fwin10_chromium_x64_rel_ng%2F30746%2F%2B%2Frecipes%2Fsteps%2Finteractive_ui_tests__with_patch__on_Windows-10-14393%2F0%2Flogs%2FUserDataDowngradeBrowserNoMSITest.Test%2F0

[7160:2116:1120/110458.018:FATAL:optional.h(204)] Check failed: !storage_.is_null_.
Backtrace:
	base::debug::StackTrace::StackTrace [0x00007FF766106144+36]
	logging::LogMessage::~LogMessage [0x00007FF76604C76E+94]
	base::Optional<int>::value [0x00007FF768338789+89]
	ThemeServiceWin::GetDefaultColor [0x00007FF769468632+162]
	ThemeService::GetColor [0x00007FF7677B5C66+198]

In ThemeServiceWin, |dwm_frame_color_| and |dwm_inactive_frame_color_| are the only base::Optional members. The only use of |dwm_frame_color_| in ThemeServiceWin::GetDefaultColor() is guarded with a check, so that leaves the use of |dwm_inactive_frame_color_| as the culprit for this failure.
 

Comment 1 by est...@chromium.org, Nov 20 2017

I have seen this too. I would call this a p0 since it is blocking progress in unrelated areas (via the CQ). Not sure if that's still the definition of a p0 though.
Maybe https://chromium-review.googlesource.com/780044 will do the trick.

Comment 3 by bsep@chromium.org, Nov 20 2017

#2: Yeah, that's probably it. I don't see another way for inactive_frame_color_from_registry_ to be true and dwm_inactive_frame_color_ to be null.
Cc: bsep@chromium.org
Owner: thestig@chromium.org
Status: Started (was: Untriaged)
CL out for review. Not sure how that uninitialized variable survived for so long without anyone noticing.
Project Member

Comment 5 by bugdroid1@chromium.org, Nov 21 2017

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

commit c6b55fc32b3b0ee699a0e451f12fcc0c2278eff1
Author: Lei Zhang <thestig@chromium.org>
Date: Tue Nov 21 01:39:58 2017

Initialize ThemeServiceWin::inactive_frame_color_from_registry_

BUG= 787073 

Change-Id: I92233b5471ec36b73db004ec01eb6feb17401769
Reviewed-on: https://chromium-review.googlesource.com/780044
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518044}
[modify] https://crrev.com/c6b55fc32b3b0ee699a0e451f12fcc0c2278eff1/chrome/browser/themes/theme_service_win.h

Comment 6 by bsep@chromium.org, Nov 21 2017

Thanks for the quick fix. I'm guessing it wasn't caught because the machine has to be in a state where the registry key SOFTWARE\Microsoft\Windows\DWM is invalid (so it doesn't immediately call OnDwmKeyUpdated). That's quite a bizarre state to be in... I wonder if it's some kind of physical disk failure?
Components: UI>Browser>Themes
Status: Fixed (was: Started)
bsep: Can you file a separate infra bug, if you suspect there are Windows machines in an odd state?

Sign in to add a comment