New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 746975 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Aug 8
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug

Blocking:
issue 869850



Sign in to add a comment

ClangToTAndroidASan red after 6.0.0, 8.0.0 version jump

Project Member Reported by thakis@chromium.org, Jul 20 2017

Issue description

https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fchromium.fyi%2FClangToTAndroidASan%2F5705%2F%2B%2Frecipes%2Fsteps%2Fbase_unittests%2F0%2Fstdout

Traceback (most recent call last):
  File "/b/c/builder/ClangToTAndroidASan/src/build/android/test_runner.py", line 965, in main
    return RunTestsCommand(args)
  File "/b/c/builder/ClangToTAndroidASan/src/build/android/test_runner.py", line 715, in RunTestsCommand
    return RunTestsInPlatformMode(args)
  File "/b/c/builder/ClangToTAndroidASan/src/build/android/test_runner.py", line 821, in RunTestsInPlatformMode
    with json_writer, logcats_uploader, env, test_instance, test_run:
  File "/b/c/builder/ClangToTAndroidASan/src/build/android/pylib/base/test_run.py", line 39, in __enter__
    self.SetUp()
  File "/b/c/builder/ClangToTAndroidASan/src/build/android/pylib/local/device/local_device_gtest_run.py", line 323, in SetUp
    self._test_instance.GetDataDependencies())
  File "/b/c/builder/ClangToTAndroidASan/src/third_party/catapult/devil/devil/utils/parallelizer.py", line 263, in pMap
    r.pFinish(None)
  File "/b/c/builder/ClangToTAndroidASan/src/third_party/catapult/devil/devil/utils/parallelizer.py", line 135, in pFinish
    self._objs.JoinAll()
  File "/b/c/builder/ClangToTAndroidASan/src/third_party/catapult/devil/devil/utils/reraiser_thread.py", line 186, in JoinAll
    self._JoinAll(watcher, timeout)
  File "/b/c/builder/ClangToTAndroidASan/src/third_party/catapult/devil/devil/utils/reraiser_thread.py", line 158, in _JoinAll
    thread.ReraiseIfException()
  File "/b/c/builder/ClangToTAndroidASan/src/third_party/catapult/devil/devil/utils/reraiser_thread.py", line 81, in run
    self._ret = self._func(*self._args, **self._kwargs)
  File "/b/c/builder/ClangToTAndroidASan/src/build/android/pylib/local/device/local_device_environment.py", line 59, in wrapper
    return f(dev, *args, **kwargs)
  File "/b/c/builder/ClangToTAndroidASan/src/third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators.py", line 52, in traced_function
    return func(*args, **kwargs)
  File "/b/c/builder/ClangToTAndroidASan/src/build/android/pylib/local/device/local_device_gtest_run.py", line 319, in individual_device_set_up
    step()
  File "/b/c/builder/ClangToTAndroidASan/src/build/android/pylib/local/device/local_device_gtest_run.py", line 300, in init_tool_and_start_servers
    tool.CopyFiles(dev)
  File "/b/c/builder/ClangToTAndroidASan/src/build/android/pylib/valgrind_tools.py", line 49, in CopyFiles
    assert len(libs) == 1
AssertionError


I'm guessing the bot now has both the 5.0 and the 6.0 asan libraries flying around (one stale, the other not), and that confuses the test runner script which expects just one but probably uses a glob or something.

Yup, here: https://cs.chromium.org/chromium/src/build/android/pylib/valgrind_tools.py?q=build/android/pylib/valgrind_tools.p&sq=package:chromium&l=45

That probably shouldn't use a glob but get the version either from the gn var or from update.py, if it's possible to plumb that true somehow.


eugenis added the glob in https://codereview.chromium.org/254503005
 

Comment 1 by h...@chromium.org, Jul 20 2017

Sorry, I won't be able to get to this today.

Comment 2 by h...@chromium.org, Jul 21 2017

Cc: -euge...@chromium.org
Owner: euge...@chromium.org
Status: Assigned (was: Untriaged)
eugenis: Could you take a look at this.

The fix is probably to make the script call "update.py --print-clang-version", but I don't know how to test it.

Comment 3 by h...@chromium.org, Jul 21 2017

I've removed third_party/llvm-build/Release+Asserts/lib/clang/5.0.0 from the bot in the meantime.
 Issue 871210  has been merged into this issue.
Summary: ClangToTAndroidASan red after 6.0.0, 8.0.0 version jump (was: ClangToTAndroidASan red after 6.0.0 version jump)
Cc: r...@chromium.org
(i always get confused by our rotation thing switching the current sheriff only after 9am pacific on mondays)
Blocking: 869850
Perhaps the Android build should copy the runtime into the out/ dir and make that part of the isolate instead.

But we should also fix update.py to not leave the build with two lib dirs. Fixing that here: https://chromium-review.googlesource.com/c/chromium/src/+/1163662
Project Member

Comment 9 by bugdroid1@chromium.org, Aug 6

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

commit 6482c2a065bc7ad07fa0ab7baa464a2cd8a28e58
Author: Hans Wennborg <hans@chromium.org>
Date: Mon Aug 06 14:55:29 2018

clang update.py: Remove old lib dir after version bump

Bug:  746975 ,  869850 
Change-Id: Ic8c2b3be2b20dd07494a25641dee2634322dad14
Reviewed-on: https://chromium-review.googlesource.com/1163662
Commit-Queue: Hans Wennborg <hans@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580867}
[modify] https://crrev.com/6482c2a065bc7ad07fa0ab7baa464a2cd8a28e58/tools/clang/scripts/update.py

The jury is still out. The first build that has my change is still compiling: https://luci-milo.appspot.com/buildbot/chromium.clang/ToTAndroidASan/941

runhooks did print "Removing old lib dir: /b/c/b/ToTAndroidASan/src/third_party/llvm-build/Release+Asserts/lib/clang/7.0.0" so hopefully it worked.
That bot takes 12 hours to compile. That seems too long. It's configured as an ASan+Debug bot, which is odd. It's generally not recommended to run ASan without running optimizations, since the combination ends up being quite slow. The debug bot takes 7.5hrs to compile, and release 2.3hrs. I'll file a bug to fix this, since it looks pretty old.
Huh, nevermind, I guess the android asan dbg bot still does run here:
https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Android%20ASAN%20%28dbg%29

And I guess we should keep ours configured to match, even if it is slow, until we re-evaluate running ASan in debug mode.
Status: Fixed (was: Assigned)
base_unittests passed on https://luci-milo.appspot.com/buildbot/chromium.clang/ToTAndroidASan/941

Let's call this fixed.
Should we have a separate bug for making android not depend on the llvm version at test time (by copying the libs to the out dir at build time, like we do on linux)?
I suppose. I don't know if anyone is keen on working on that though.
Am I ever keen on doing that!
Filed issue 872278 for the follow-up

Sign in to add a comment