luci / luci-py

LUCI in python
Apache License 2.0
81 stars 36 forks source link

isolate.py is confused by hardlinks on OSX #51

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Repro:
1. have a build step hardlink a test data file into out/Release
2. put out/Release/ file into .isolate
Occurred on https://codereview.chromium.org/108143007/

Expected:
Works.

Actual:
(for browser_tests)
Traceback (most recent call last):
  File "../tools/swarming_client/isolate.py", line 2097, in main
    return dispatcher.execute(OptionParserIsolate(version=__version__), argv)
  File "/Volumes/data/b/build/slave/mac/build/src/tools/swarming_client/third_party/depot_tools/subcommand.py", line 242, in execute
    return command(parser, args[1:])
  File "../tools/swarming_client/isolate.py", line 1634, in CMDarchive
    options, os.getcwd(), options.subdir, False)
  File "../tools/swarming_client/isolate.py", line 1535, in load_complete_state
    cwd, isolate, options.variables, options.ignore_broken_items)
  File "../tools/swarming_client/isolate.py", line 1388, in load_isolate
    ignore_broken_items)
  File "../tools/swarming_client/isolate.py", line 77, in expand_directories_and_symlinks
    indir, relfile, blacklist, follow_symlinks))
  File "/Volumes/data/b/build/slave/mac/build/src/tools/swarming_client/isolateserver.py", line 1301, in expand_directory_and_symlink
    follow_symlinks))
  File "/Volumes/data/b/build/slave/mac/build/src/tools/swarming_client/isolateserver.py", line 1301, in expand_directory_and_symlink
    follow_symlinks))
  File "/Volumes/data/b/build/slave/mac/build/src/tools/swarming_client/isolateserver.py", line 1301, in expand_directory_and_symlink
    follow_symlinks))
  File "/Volumes/data/b/build/slave/mac/build/src/tools/swarming_client/isolateserver.py", line 1256, in expand_directory_and_symlink
    native_filepath = file_path.get_native_path_case(filepath)
  File "/Volumes/data/b/build/slave/mac/build/src/tools/swarming_client/utils/file_path.py", line 274, in get_native_path_case
    assert symlink, (path, base, symlink, rest, resolved)
AssertionError: 
(u'/Volumes/data/b/build/slave/mac/build/src/chrome/test/data/nacl/postmessage_r
edir/pm_redir_test.html', 
u'/Volumes/data/b/build/slave/mac/build/src/chrome/test/data/nacl/postmessage_re
dir/pm_redir_test.html', None, None, 
u'/Volumes/data/b/build/slave/mac/build/src/out/Release/nacl_test_data/pnacl/pm_
redir_test.html')

A temporary workaround is to disable this assert on OSX until this bug is 
figured out.

Original issue reported on code.google.com by maruel@chromium.org on 7 Jan 2014 at 8:27

GoogleCodeExporter commented 9 years ago
Will look at it a bit later.

Original comment by maruel@chromium.org on 16 Jun 2014 at 6:52

GoogleCodeExporter commented 9 years ago
I said a bit later.

Original comment by maruel@chromium.org on 2 Dec 2014 at 7:51