Closed Bug 897611 Opened 11 years ago Closed 11 years ago

Update to external/gtest breaks the build on b2g-manifest@master

Categories

(Firefox OS Graveyard :: GonkIntegration, defect)

ARM
Gonk (Firefox OS)
defect
Not set
blocker

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: RyanVM, Unassigned)

Details

Attachments

(2 files)

An as of yet unknown change to one of the B2G repositories is causing all device image builds to fail per the log below. All trees are closed until the cause is found and fixed.

https://tbpl.mozilla.org/php/getParsedLog.php?id=25673507&tree=Birch

10:49:05     INFO -  ============================================
10:49:08     INFO -  Checking build tools versions...
10:49:08     INFO -  ************************************************************
10:49:08     INFO -  You are attempting to build with the incorrect version
10:49:08     INFO -  of java.
10:49:08     INFO -  Your version is: Fake java 1.6.0 revisiion.
10:49:08     INFO -  The correct version is: Java SE 1.6.
10:49:08     INFO -  Please follow the machine setup instructions at
10:49:08     INFO -      http://source.android.com/source/download.html
10:49:08     INFO -  ************************************************************
10:49:10     INFO -  which: no cmake in (/builds/slave/b2g_bir_leo_dep-00000000000000/build/build/fake-jdk-tools/bin:/usr/local/bin:/usr/lib64/ccache:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/cltbld/bin:/builds/slave/b2g_bir_leo_dep-00000000000000/build/compare-locales/scripts:/builds/slave/b2g_bir_leo_dep-00000000000000/build/out/host/linux-x86/bin:/builds/slave/b2g_bir_leo_dep-00000000000000/build/prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin:/builds/slave/b2g_bir_leo_dep-00000000000000/build/development/emulator/qtools:/builds/slave/b2g_bir_leo_dep-00000000000000/build/prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin:/builds/slave/b2g_bir_leo_dep-00000000000000/build/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin)
10:49:10     INFO -  CMake not found, will not compile apitrace
10:49:11     INFO -  build/core/base_rules.mk:82: *** Module name: gtest-death-test_test_host
10:49:11     INFO -  build/core/base_rules.mk:83: *** Makefile location: external/gtest/test
10:49:11     INFO -  build/core/base_rules.mk:84: *
10:49:11     INFO -  build/core/base_rules.mk:85: * Each module must use a LOCAL_MODULE_TAGS in its
10:49:11     INFO -  build/core/base_rules.mk:86: * Android.mk. Possible tags declared by a module:
10:49:11     INFO -  build/core/base_rules.mk:87: *
10:49:11     INFO -  build/core/base_rules.mk:88: *     optional, debug, eng, tests, samples
10:49:11     INFO -  build/core/base_rules.mk:89: *
10:49:11     INFO -  build/core/base_rules.mk:90: * If the module is expected to be in all builds
10:49:11     INFO -  build/core/base_rules.mk:91: * of a product, then it should use the
10:49:11     INFO -  build/core/base_rules.mk:92: * "optional" tag:
10:49:11     INFO -  build/core/base_rules.mk:93: *
10:49:11     INFO -  build/core/base_rules.mk:94: *    Add "LOCAL_MODULE_TAGS := optional" in the
10:49:11     INFO -  build/core/base_rules.mk:95: *    Android.mk for the affected module, and add
10:49:11     INFO -  build/core/base_rules.mk:96: *    the LOCAL_MODULE value for that component
10:49:11     INFO -  build/core/base_rules.mk:97: *    into the PRODUCT_PACKAGES section of product
10:49:11     INFO -  build/core/base_rules.mk:98: *    makefile(s) where it's necessary, if
10:49:11     INFO -  build/core/base_rules.mk:99: *    appropriate.
10:49:11     INFO -  build/core/base_rules.mk:100: *
10:49:11     INFO -  build/core/base_rules.mk:101: * If the component should be in EVERY build of ALL
10:49:11     INFO -  build/core/base_rules.mk:102: * products, then add its LOCAL_MODULE value to the
10:49:11     INFO -  build/core/base_rules.mk:103: * PRODUCT_PACKAGES section of
10:49:11     INFO -  build/core/base_rules.mk:104: * build/target/product/core.mk
10:49:11     INFO -  build/core/base_rules.mk:105: *
10:49:11    ERROR -  build/core/base_rules.mk:106: *** user tag detected on new module - user tags are only supported on legacy modules.  Stop.
On a separate note, I believe we should have post-mortem about this.
I believe that there should be a b2g_on_duty schedule for people that could help us figure out when external repos cause problems like this.
(In reply to Armen Zambrano G. [:armenzg] (Release Enginerring) (EDT/UTC-4) from comment #1)
> On a separate note, I believe we should have post-mortem about this.
> I believe that there should be a b2g_on_duty schedule for people that could
> help us figure out when external repos cause problems like this.

cc'ing also the other sheriffs to this bug
Thats some exciting breakage here. Ccing some wizards for help.
jhford had armenzg modify base_rules.mk to output the offending module.

12:42:50     INFO -  build/core/base_rules.mk:99: *    appropriate.
12:42:50     INFO -  build/core/base_rules.mk:100: *
12:42:50     INFO -  build/core/base_rules.mk:101: * If the component should be in EVERY build of ALL
12:42:50     INFO -  build/core/base_rules.mk:102: * products, then add its LOCAL_MODULE value to the
12:42:50     INFO -  build/core/base_rules.mk:103: * PRODUCT_PACKAGES section of
12:42:50     INFO -  build/core/base_rules.mk:104: * build/target/product/core.mk
12:42:50     INFO -  build/core/base_rules.mk:105: *
12:42:50     INFO -  build/core/base_rules.mk:106: * OFFENDING MODULE: gtest-death-test_test_host
12:42:50    ERROR -  build/core/base_rules.mk:107: *** user tag detected on new module - user tags are only supported on legacy modules.  Stop.
12:42:50     INFO -  real       0m5.239s
12:42:50     INFO -  user       0m3.019s
12:42:50     INFO -  sys        0m0.907s
12:42:50     INFO -  
12:42:50     INFO -  > Build failed! <
12:42:50     INFO -  Build with |./build.sh -j1| for better messages
12:42:50     INFO -  If all else fails, use |rm -rf objdir-gecko| to clobber gecko and |rm -rf out| to clobber everything else.
12:42:50    ERROR - Return code: 2
Component: Release Engineering: Automation (General) → Builds
Product: mozilla.org → Boot2Gecko
QA Contact: catlee
Version: other → unspecified
It seems that the "latest" in the external/gtest repo corresponds to branch android-4.3_r0.9

In my 1.1 tree, it's frozen at M8974AAAAANLYA31050129

If I checkout M8974AAAAANLYA31050129 then my master build doesn't hang.

I think we need to freeze external/gtest in the master manifest
Since we
Summary: Unknown B2G update causing device image build failures on all trees → Update to external/gtest breaks the build on b2g-manifest@master
Attached patch fix.diffSplinter Review
So we pointed gtest at aosp-new/master because the CAF mirror of gtest had an invalid reference for the <default> branch.  I discussed this with CAF, but the reference was never fixed, so we kept the hardcode.

I've removed the hardcode, with gtest now using the branch from <default>.

With the revision removed, we get:

$ git branch -a --contains $(git rev-parse HEAD) | grep ics_chocolate_rb4.2
  remotes/caf/ics_chocolate_rb4.2
  remotes/m/master -> caf/ics_chocolate_rb4.2

I am validating that the default revision is a valid reference for non-caf remotes
Attachment #780576 - Flags: review?(fabrice)
Attachment #780576 - Flags: review?(fabrice) → review+
commit a7016335a7629500e671512d5d0d5cf7775fa250
Author: John Ford <john@johnford.info>
Date:   Wed Jul 24 14:09:21 2013 -0700

    bug 897611 - remove hardcodes to aosp-new/master from gtest project nodes now that the default branch references work r=fabrice


I've tested all the remotes that I can test locally.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Builds retriggered on inbound, birch, and fx-team. If they're still going 20 minutes for now, I'll be willing to call this fixed.
Trees reopened at 14:47 PT. Thanks everyone!
So my emulator build is failing with the new manifest (gtest fails).

When I cd into external/gtest after running config.sh, it tells me that I'm on this branch:
AU_LINUX_GECKO_ICS_STRAWBERRY.01.01.00.019.171

Going back to M8974AAAAANLYA31050129 works.
I'm still getting this error, after running:

* rm -rf out objdir-gecko
* BRANCH=master ./config.sh nexus-s
* git pull
* ./repo sync
* ./build.sh

Any clues?
(In reply to Panos Astithas [:past] from comment #12)
> I'm still getting this error, after running:
> 
> * rm -rf out objdir-gecko
> * BRANCH=master ./config.sh nexus-s
> * git pull
> * ./repo sync
> * ./build.sh
> 
> Any clues?

Verify that you have the latest manifest.

cd external/gtest
git rev-parse HEAD

should show:
8c212ebe53bb2baab3575f03069016f1fb11e449

Try: rm -rf out

and rebuild.
I talked with jhford last night, and we decided to update the git hash used to be 8c212ebe53bb2baab3575f03069016f1fb11e449 which is what leo and hamachi are using in 1.1, and which is about 2 commits newer than the rest of the platforms for 1.1.

With external/gtest set to 8cx212... then my builds were working locally and the build servers seem to be happy as well.
Attached patch nexus-s.patchSplinter Review
Nexus S needs the same treatment and with this patch it builds again for me. I didn't touch Nexus S 4G, Galaxy  Nexus, Galaxy S II, Peak or Keon, since I couldn't test them, but I presume they would have to be modified accordingly.

Pull request: https://github.com/mozilla-b2g/b2g-manifest/pull/89
Attachment #781596 - Flags: review?(dhylands)
Comment on attachment 781596 [details] [diff] [review]
nexus-s.patch

Review of attachment 781596 [details] [diff] [review]:
-----------------------------------------------------------------

I already merged it.
Attachment #781596 - Flags: review?(dhylands) → review+
(In reply to Armen Zambrano G. [:armenzg] (Release Enginerring) (EDT/UTC-4) from comment #1)
> On a separate note, I believe we should have post-mortem about this.
> I believe that there should be a b2g_on_duty schedule for people that could
> help us figure out when external repos cause problems like this.

Ideally we'd have everything in the manifest (ie more than just gaia in https://hg.mozilla.org/projects/birch/file/5027fa1fe733/b2g/config/gaia.json), since the same thing occurred again today in bug 895299.

Filed bug 899969 for this.
dhylands: Can you take a look at merging my pull req to apply this same fix for SGS2? I'm working on Camera features in Gaia that I'd like to test out on an SGS2 I have available (since it has the hardware I need for testing).

https://github.com/mozilla-b2g/b2g-manifest/pull/118
Flags: needinfo?(dhylands)
(In reply to jdarcangelo from comment #19)
> dhylands: Can you take a look at merging my pull req to apply this same fix
> for SGS2? I'm working on Camera features in Gaia that I'd like to test out
> on an SGS2 I have available (since it has the hardware I need for testing).
> 
> https://github.com/mozilla-b2g/b2g-manifest/pull/118

ok - I went ahead and merged it:
https://github.com/mozilla-b2g/b2g-manifest/commit/7de06c2d9f1d4c12060ee9105d9511fd9a5ad211
Flags: needinfo?(dhylands)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: