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

Issue 626033 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 1
Type: Bug



Sign in to add a comment

ios-device-gn uses the wrong goma dir

Project Member Reported by sdefresne@chromium.org, Jul 6 2016

Issue description

There are lots of build failing because of the following installation error on the bot:

/usr/bin/python /b/build/goma/goma_ctl.py restart
/usr/bin/python: can't open file '/b/build/goma/goma_ctl.py': [Errno 2] No such file or directory

/usr/bin/python /b/build/goma/goma_ctl.py jsonstatus /tmp/tmp9GHlQf.json
/usr/bin/python: can't open file '/b/build/goma/goma_ctl.py': [Errno 2] No such file or directory
error while sending ts mon json_file=/tmp/tmp9GHlQf.json: No JSON object could be decoded

/usr/bin/python /b/build/goma/goma_ctl.py stop
/usr/bin/python: can't open file '/b/build/goma/goma_ctl.py': [Errno 2] No such file or directory
No compiler_proxy-subproc.INFO to upload
No compiler_proxy.INFO to upload

/usr/bin/python /opt/infra-python/run.py infra.tools.send_monitoring_event --event-mon-run-type prod --build-event-type BUILD --event-mon-timestamp-kind POINT --event-logrequest-path /b/build/slave/ios-device-gn/.recipe_runtime/tmpouCkrO/build_data/log_request_proto --build-event-goma-error GOMA_ERROR_UNKNOWN
<Thread(Thread-1, started 123145306509312)> ProcessRead: proc.stdout finished.
<Thread(Thread-1, started 123145306509312)> ProcessRead: cleaning up.
<Thread(Thread-3, started daemon 123145310715904)> TimedFlush: Finished
Traceback (most recent call last):
  File "/b/build/scripts/slave/compile.py", line 553, in <module>
<Thread(Thread-1, started 123145306509312)> ProcessRead: finished.
error: failed to start goma; fallback has been disabled
    sys.exit(real_main())
  File "/b/build/scripts/slave/compile.py", line 549, in real_main
    return main_ninja(options, args)
  File "/b/build/scripts/slave/compile.py", line 353, in main_ninja
    goma_ready, goma_cloudtail = goma_setup(options, env)
  File "/b/build/scripts/slave/compile.py", line 213, in goma_setup
    raise Exception('failed to start goma')
Exception: failed to start goma


See for example https://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-gn/builds/31816/steps/compile%20%282%29/logs/stdio. It may be related to a particular machine.
 
sheyang, sergiyb: I've cc-ed you as your trooper on call today. Can you triage?
Labels: -Pri-1 Pri-2
The following ios-device-gn builds on build541-m4 are green now. Not sure what changed. Updating priority to P-2 and keep watching.
Mergedinto: 625286
Status: Duplicate (was: Untriaged)
Status: Untri (was: Duplicate)
Cc: phajdan@google.com
Components: Infra>Client>iOS Infra>CQ
Status: Untriaged (was: Untri)
I believe this is a legitimate issue.

ios/try recipe implicitly gets ensure_goma through chromium.run_mb:

    if use_goma:
      goma_dir = self.c.compile_py.goma_dir
      if not goma_dir:
        # This method defaults to use_goma=True, which doesn't necessarily
        # match build-side configuration. However, MB is configured
        # src-side, and so it might be actually using goma.
        self.ensure_goma()
        goma_dir = self.c.compile_py.goma_dir

In fact, I've confirmed MB gets the proper path to CIPD goma.

Then the path gets overwritten later in ios.build :

    use_goma = (self.compiler == 'ninja' and
                ('use_goma=1' in gyp_defines or 'use_goma=true' in gn_args))
    if use_goma:
      if 'without patch' not in suffix:
        # TODO( crbug.com/603641 ):
        # Configs aren't deapplied, so we only want to apply these
        # configs once. Really, we should refactor this so that we're
        # not applying configs at all in build(), but rather do it
        # in an earlier step.
        self.m.chromium.apply_config('ninja')
        self.m.chromium.apply_config('default_compiler')
        self.m.chromium.apply_config('goma')

I defer to Sana for adjusting ios/try and ios recipe module. We're somewhat lucky here that /b/build/goma happens to still exist on most bots. But the issue is real.

Comment 6 by kbr@chromium.org, Jul 7 2016

Cc: kbr@chromium.org cwallez@chromium.org
Another example:
https://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-gn/builds/32671

Just happened on build541-m4 . 

Comment 7 by kbr@chromium.org, Jul 7 2016

Labels: -Pri-2 Pri-1
Raising to P1 as this affects the CQ.

Cc: smut@chromium.org
Summary: ios-device-gn uses the wrong goma dir (was: ios-device-gn bot is flaky)
+smut
Owner: dpranke@chromium.org
Status: Assigned (was: Untriaged)
I've been working on this as part of  bug 626005  , and had been puzzled by the first part of what phajdan wrote in comment #5, but I didn't connect it to the second part of the comment (which makes sense).

I'll take this and get it fixed.
Issue 625286 has been merged into this issue.
Project Member

Comment 12 by bugdroid1@chromium.org, Jul 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build.git/+/d4098d2dd3fb9ab846e3f31702afcb0843a4f4ac

commit d4098d2dd3fb9ab846e3f31702afcb0843a4f4ac
Author: dpranke <dpranke@chromium.org>
Date: Thu Jul 07 23:15:37 2016

Fix configuration of goma in iOS recipes.

The way we were configuring the chromium module so that goma
would work in compiles didn't work correctly after we switched
the location of goma on the machine; the 'goma' config no longer
gives the right directory, and the `ensure_goma` step wasn't
being called reliably and consistently.

This CL reworks things so that we call ensure_goma consistently
when needed during the read_build_config() step of the ios
recipes, rather than during the build() step.

This CL also fixes an issue where if the GYP_DEFINES were specified
as a list of strings in the build config rather than a dict, things
wouldn't work right. We need this fix so that we can use goma
even with GYP, in a way that is consistent between GYP and GN.

R=smut@chromium.org
BUG= 626033 

Review-Url: https://codereview.chromium.org/2133483002

[modify] https://crrev.com/d4098d2dd3fb9ab846e3f31702afcb0843a4f4ac/scripts/slave/recipe_modules/ios/api.py
[modify] https://crrev.com/d4098d2dd3fb9ab846e3f31702afcb0843a4f4ac/scripts/slave/recipes/ios/try.expected/gn.json
[add] https://crrev.com/d4098d2dd3fb9ab846e3f31702afcb0843a4f4ac/scripts/slave/recipes/ios/try.expected/gyp_goma.json
[modify] https://crrev.com/d4098d2dd3fb9ab846e3f31702afcb0843a4f4ac/scripts/slave/recipes/ios/try.py
[modify] https://crrev.com/d4098d2dd3fb9ab846e3f31702afcb0843a4f4ac/scripts/slave/recipes/ios/unified_builder_tester.expected/goma.json
[modify] https://crrev.com/d4098d2dd3fb9ab846e3f31702afcb0843a4f4ac/scripts/slave/recipes/webrtc/ios.expected/basic.json
[modify] https://crrev.com/d4098d2dd3fb9ab846e3f31702afcb0843a4f4ac/scripts/slave/recipes/webrtc/ios.expected/no_tests.json
[modify] https://crrev.com/d4098d2dd3fb9ab846e3f31702afcb0843a4f4ac/scripts/slave/recipes/webrtc/ios.expected/trybot.json

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 7 2016

Status: Fixed (was: Assigned)
I believe this is now fixed.
Project Member

Comment 15 by bugdroid1@chromium.org, Jul 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra.git/+/f1d779004fc7aefc230f4027aaf4655fe896982c

commit f1d779004fc7aefc230f4027aaf4655fe896982c
Author: recipe-roller <recipe-roller@chromium.org>
Date: Fri Jul 08 02:06:32 2016

Roll recipe dependencies (trivial).

This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug
(or complain)

build:
  https://crrev.com/d4098d2dd3fb9ab846e3f31702afcb0843a4f4ac Fix configuration of goma in iOS recipes. (dpranke@chromium.org)
  https://crrev.com/01aec8c9c900d1a5ab3df82142ffc74db16c76cf Roll recipe dependencies (trivial). (recipe-roller@chromium.org)
depot_tools:
  https://crrev.com/bf47014c1a87c15629c9cd6fd9b94b669d498a00 Added '.m' pattern to git cl format files to be covered. (zengster@google.com)

R=dpranke@chromium.org,smut@chromium.org,zengster@google.com,recipe-roller@chromium.org,martiniss@chromium.org,phajdan.jr@chromium.org
BUG= 626033 

TBR=martiniss@chromium.org,phajdan.jr@chromium.org

Review-Url: https://codereview.chromium.org/2135473002

[modify] https://crrev.com/f1d779004fc7aefc230f4027aaf4655fe896982c/infra/config/recipes.cfg

Cc: -serg...@chromium.org
EMEA Troopers only provide support for P0 issues. Please just use Infra-Troopers label and set priority accordingly: http://g.co/bugatrooper.

Sign in to add a comment