Issue metadata
Sign in to add a comment
|
select_to_speak exists build error on SimpleChromeWorkflow step for veyron_jerry |
||||||||||||||||||||||||
Issue descriptionNot sure why this happened on only this one PFQ builder. A file already exists when it goes to make a directory with the same name. https://uberchromegw.corp.google.com/i/chromeos/builders/veyron_jerry-chromium-pfq/builds/260/steps/SimpleChromeWorkflow/logs/stdio [1197/31561] ACTION //chrome/browser/resources/chromeos/select_to_speak:select_to_speak_copied_files(//build/toolchain/cros:target) FAILED: obj/chrome/browser/resources/chromeos/select_to_speak/select_to_speak_copied_files_copy.stamp python ../../chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py -m copy --stampfile obj/chrome/browser/resources/chromeos/select_to_speak/select_to_speak_copied_files_copy.stamp -d resources/chromeos/select_to_speak -w ../../chrome/browser/resources/chromeos/select_to_speak: -w ../../chrome/third_party/chromevox/third_party/closure-library/closure/goog:closure ../../chrome/browser/resources/chromeos/select_to_speak/background.js Traceback (most recent call last): File "../../chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py", line 378, in <module> main() File "../../chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py", line 361, in main LinkOrCopyFiles(bundle.GetSources(), options.dest_dir) File "../../chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py", line 247, in LinkOrCopyFiles os.path.join(dest_dir, source.GetOutPath())) File "../../chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py", line 237, in LinkOrCopyOneFile os.makedirs(os.path.dirname(dst)) File "/usr/lib/python2.7/os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 17] File exists: 'resources/chromeos/select_to_speak'
,
Oct 14 2016
Wrote a simple patch https://codereview.chromium.org/2421613003/
,
Oct 14 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c3fd7a5f37395debb368939ef8cf3eeba32fc140 commit c3fd7a5f37395debb368939ef8cf3eeba32fc140 Author: kinaba <kinaba@chromium.org> Date: Fri Oct 14 07:33:28 2016 chromevox: Fix a racy failure in directory creation in jsbundler.py. Previous implementation can fail if other concurrent task created the directory between path.exists and makedirs. BUG= 655750 TEST=Manually build select_to_speak with ninja -j10 many times. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation Review-Url: https://codereview.chromium.org/2421613003 Cr-Commit-Position: refs/heads/master@{#425268} [modify] https://crrev.com/c3fd7a5f37395debb368939ef8cf3eeba32fc140/chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py
,
Oct 14 2016
,
Nov 11 2016
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by kinaba@chromium.org
, Oct 14 2016The makedirs is guarded by os.path.exists: if not os.path.exists(os.path.dirname(dst)): os.makedirs(os.path.dirname(dst)) (https://cs.chromium.org/chromium/src/chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py?q=chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py&sq=package:chromium&dr&l=235) Presumably a concurrently run task (select_to_speak_guest_manifest) created the directory between the two lines? [1189/31561] STAMP obj/chrome/browser/resources/chromeos/select_to_speak/select_to_speak_guest_manifest.inputdeps.stamp [1190/31561] STAMP obj/chrome/browser/resources/chromeos/select_to_speak/select_to_speak_copied_files.inputdeps.stamp ... ... [1197/31561] ACTION //chrome/browser/resources/chromeos/select_to_speak:select_to_speak_copied_files(//build/toolchain/cros:target) FAILED: obj/chrome/browser/resources/chromeos/select_to_speak/select_to_speak_copied_files_copy.stamp python ../../chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py -m copy --stampfile obj/chrome/browser/resources/chromeos/select_to_speak/select_to_speak_copied_files_copy.stamp -d resources/chromeos/select_to_speak -w ../../chrome/browser/resources/chromeos/select_to_speak: -w ../../chrome/third_party/chromevox/third_party/closure-library/closure/goog:closure ../../chrome/browser/resources/chromeos/select_to_speak/background.js Traceback (most recent call last): File "../../chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py", line 378, in <module> main() File "../../chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py", line 361, in main LinkOrCopyFiles(bundle.GetSources(), options.dest_dir) File "../../chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py", line 247, in LinkOrCopyFiles os.path.join(dest_dir, source.GetOutPath())) File "../../chrome/browser/resources/chromeos/chromevox/tools/jsbundler.py", line 237, in LinkOrCopyOneFile os.makedirs(os.path.dirname(dst)) File "/usr/lib/python2.7/os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 17] File exists: 'resources/chromeos/select_to_speak' [1198/31561] STAMP obj/chrome/browser/resources/chromeos/select_to_speak/select_to_speak_manifest.inputdeps.stamp ... ... [1202/31561] ACTION //chrome/browser/resources/chromeos/select_to_speak:select_to_speak_guest_manifest(//build/toolchain/cros:target)