New issue
Advanced search Search tips

Issue 712905 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug

Blocking:
issue 683729



Sign in to add a comment

output directories no longer get dbghelp.dll, leading to VS 2017 fastlink hangs

Project Member Reported by brucedaw...@chromium.org, Apr 18 2017

Issue description

Change crrev.com/2782603002 removed the _CopyDebugger function from build\vs_toolchain.py which means that dbghelp.dll is no longer copied to Chromium output directories. Ironically this was just three days after change https://chromium-review.googlesource.com/c/461385/ ensured that we copied the correct version of dbghelp.dll in order to avoid hangs when Chrome symbolizes call stacks. In particular, this command:

out\debug_component\base_unittests --gtest_filter=BindDeathTest.NullCallback --single-process-tests

hangs when built with VS 2017 and these gn args: "is_component_build = true is_debug = true target_cpu = "x86" enable_nacl = false is_win_fastlink = true"

Because we don't copy dbghelp.dll to the output directories this means we end up running the system version, which may be arbitrarily old and out of date.

The original bug filed against VS that led to using the latest dbghelp.dll was:
https://developercommunity.visualstudio.com/content/problem/36255/chromes-base-unittests-fails-with-vs-2017-due-to-s.html

So, any reason we can't bring back _CopyDebugger?

 

Comment 1 by jochen@chromium.org, Apr 19 2017

ah, sorry, didn't know about that.

I found out that there was already a script that copied the debuggers to $outdir/cdb/ and so I removed _CopyDebugger to not duplicate all binaries.

Do you only need dbghelp.dll or also other files?
I created a CL to fix it last night and it appears that I only need dbghelp.dll. I'll send that out for review soon. It just restores the old code, slightly tweaked because only the single file is needed.

The timing was amusing. But it actually worked well because at least I knew that dbghelp.dll *used* to be copied.

It suggests that we need a try bot that runs at least base_unittests with /debug:fastlink, although until we switch to VS 2017 this bug still wouldn't be caught.

Project Member

Comment 3 by bugdroid1@chromium.org, Apr 19 2017

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

commit 6db4113f95a5fd90ec2e0df495ba1982c651ccee
Author: brucedawson <brucedawson@chromium.org>
Date: Wed Apr 19 22:27:40 2017

Copy dbghelp.dll to output directory

Chrome's tests sometimes symbolize call stacks. In order to support new
PDB formats such as PDB's generated by VS 2017's updated /debug:fastlink
we need to use a recent version of dbghelp.dll. This change restores a
modified version of _CopyDebugger that was removed a few weeks ago, thus
avoiding a CPU busy hang in the system version of dbghelp.dll.

R=jochen@chromium.org
BUG= 712905 

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

[modify] https://crrev.com/6db4113f95a5fd90ec2e0df495ba1982c651ccee/build/vs_toolchain.py

Owner: brucedaw...@chromium.org
Status: Fixed (was: Untriaged)
The test above now passes without a hang.

Sign in to add a comment