Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(352)

Issue 88303004: win ninja: Speculative fix for pdb locking errors (Closed)

Created:
7 years ago by scottmg
Modified:
7 years ago
Reviewers:
Nico
CC:
gyp-developer_googlegroups.com
Visibility:
Public.

Description

win ninja: Speculative fix for pdb locking errors There's longstanding occasional errors where the compiler complains that the pdb is locked. This isn't really a condition that should be exposed to the build system, and no one has been able to come up with a reliable repro. Retrying causes the build to succeed. In chromium, two targets that often fail this way are 'net' and 'libphonenumber_without_metadata'. These targets are distinctive in that they build early in the build, contain at least one .c file, and use pch for their .cc files. The locking error seems to manifest with the compile step for the obj associated with creating the .pdb, so the hypothesis is that the .c compilation is colliding with the creation of the pdb that the precompile does. This race should be handled by mspdbsrv, but for appears to be buggy for whatever reason. (This bug has been filed on connect.microsoft.com, but without a repro it's not very likely that action will be taken.) In order to avoid this, have the .c and .cc files use separate .pdb files. This is otherwise unnecessary, but shouldn't cause any material drawback either. R=thakis@chromium.org BUG=chromium:142362 Committed: https://code.google.com/p/gyp/source/detail?r=1800

Patch Set 1 #

Patch Set 2 : update test #

Total comments: 3

Patch Set 3 : add comment pointing to explanatory one #

Unified diffs Side-by-side diffs Delta from patch set Stats (+17 lines, -8 lines) Patch
M pylib/gyp/generator/ninja.py View 1 2 2 chunks +16 lines, -7 lines 0 comments Download
M test/win/gyptest-cl-pdbname.py View 1 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 8 (0 generated)
scottmg
7 years ago (2013-11-26 20:03:33 UTC) #1
Nico
Nice! Can this theory be converted into a somewhat reliable repro case? Bug link for ...
7 years ago (2013-11-27 00:11:52 UTC) #2
Nico
https://codereview.chromium.org/88303004/diff/20001/pylib/gyp/generator/ninja.py File pylib/gyp/generator/ninja.py (right): https://codereview.chromium.org/88303004/diff/20001/pylib/gyp/generator/ninja.py#newcode817 pylib/gyp/generator/ninja.py:817: pdbpath_c = pdbpath_cc = self.msvs_settings.GetCompilerPdbName( Comment why there are ...
7 years ago (2013-11-27 00:13:19 UTC) #3
scottmg
On 2013/11/27 00:11:52, Nico wrote: > Nice! Can this theory be converted into a somewhat ...
7 years ago (2013-11-27 00:29:53 UTC) #4
scottmg
https://codereview.chromium.org/88303004/diff/20001/pylib/gyp/generator/ninja.py File pylib/gyp/generator/ninja.py (right): https://codereview.chromium.org/88303004/diff/20001/pylib/gyp/generator/ninja.py#newcode1807 pylib/gyp/generator/ninja.py:1807: # By making the rules target separate pdb files ...
7 years ago (2013-11-27 00:32:31 UTC) #5
Nico
Thanks, lgtm. Definitley worth a try, but if it's hard to turn this into a ...
7 years ago (2013-11-27 00:48:43 UTC) #6
scottmg
On 2013/11/27 00:48:43, Nico wrote: > Thanks, lgtm. Definitley worth a try, but if it's ...
7 years ago (2013-11-27 00:57:04 UTC) #7
scottmg
7 years ago (2013-11-27 00:58:14 UTC) #8
Message was sent while issue was closed.
Committed patchset #3 manually as r1800.

Powered by Google App Engine
This is Rietveld 408576698