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

Issue 671842 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

iOS build failures due to missing base:: namespace prefix in gaia_auth_fetcher_ios_unittest.mm

Project Member Reported by carlosk@chromium.org, Dec 6 2016

Issue description

This caused a tree closure and was somehow triggered by a revert that I made to fix an unrelated set of test failures. Will add more info in a moment.
 
Cc: eugene...@chromium.org
Build error log:

FAILED: obj/ios/chrome/browser/signin/unit_tests/gaia_auth_fetcher_ios_unittest.o 
/b/build/slave/cache/cipd/goma/gomacc clang++ -MMD -MF obj/ios/chrome/browser/signin/unit_tests/gaia_auth_fetcher_ios_unittest.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=288545-1 -DCR_XCODE_VERSION=0800 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -DUNIT_TEST -I../.. -Igen -I../../third_party/libwebp -I../../testing/gtest/include -I../../third_party/ced/src -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../testing/gmock_custom -I../../testing/gmock/include -I../../third_party/ocmock -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fcolor-diagnostics -arch armv7 -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value -O0 -gdwarf-2 -isysroot /Applications/Xcode8.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk -stdlib=libc++ -miphoneos-version-min=9.0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -fno-threadsafe-statics -fvisibility-inlines-hidden -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=c++11 -fobjc-call-cxx-cdtors -Wobjc-missing-property-synthesis -fno-rtti -fno-exceptions -c ../../ios/chrome/browser/signin/gaia_auth_fetcher_ios_unittest.mm -o obj/ios/chrome/browser/signin/unit_tests/gaia_auth_fetcher_ios_unittest.o
../../ios/chrome/browser/signin/gaia_auth_fetcher_ios_unittest.mm:39:3: error: no template named 'scoped_nsobject'; did you mean 'base::scoped_nsobject'?
  scoped_nsobject<id> mock_web_view_;
  ^~~~~~~~~~~~~~~
  base::scoped_nsobject
../../base/mac/scoped_nsobject.h:147:7: note: 'base::scoped_nsobject' declared here
class scoped_nsobject : public scoped_nsprotocol<NST*> {
      ^
1 error generated.


My revert that somehow triggered this error: https://codereview.chromium.org/2557433005/

There must be some sort change in #include's that triggered this build failure that affected many iOS builders:
- https://uberchromegw.corp.google.com/i/chromium.mac/builders/ios-device-xcode-clang/builds/2638
- https://uberchromegw.corp.google.com/i/chromium.mac/builders/ios-simulator-xcode-clang/builds/2614
- https://uberchromegw.corp.google.com/i/chromium.mac/builders/ios-device/builds/32783
- https://uberchromegw.corp.google.com/i/chromium.mac/builders/ios-simulator/builds/10060


My fix CL that is in the CQ right now: https://codereview.chromium.org/2555063002
Project Member

Comment 2 by bugdroid1@chromium.org, Dec 7 2016

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

commit c65594c7b4f150e8a2854991a82bcdc19eb8c47a
Author: carlosk <carlosk@chromium.org>
Date: Wed Dec 07 00:14:41 2016

Fix missing namespace for scoped_nsobject.

Added missing base:: namespace prefix.

BUG= 671842 
TBR=noyau@chromium.org,eugenebut@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2555063002
Cr-Commit-Position: refs/heads/master@{#436771}

[modify] https://crrev.com/c65594c7b4f150e8a2854991a82bcdc19eb8c47a/ios/chrome/browser/signin/gaia_auth_fetcher_ios_unittest.mm

Status: Fixed (was: Assigned)
As this was my first time committing (not reverting) with a closed tree I had to stop the regular commit I started with, add the skip-all-the-things labels to the CL and re-commit.

The whole process took longer than I wanted but the build error is now fixed and the tree is open again.
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 7 2016

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

commit 32931ecdb47da39fc0083da68d341807b09e52a8
Author: rohitrao <rohitrao@chromium.org>
Date: Wed Dec 07 13:24:21 2016

[ios] Adds unittests that were inadvertently not compiled or run.

BUG= 671842 

Review-Url: https://codereview.chromium.org/2550183003
Cr-Commit-Position: refs/heads/master@{#436931}

[modify] https://crrev.com/32931ecdb47da39fc0083da68d341807b09e52a8/ios/chrome/BUILD.gn

Cc: rohitrao@chromium.org
rohitrao@: does this fix the issue of the iOS builder not having catched this problem earlier (before my apparently unrelated CL landed)?
I believe so.  My guess is that the bots didn't catch this initially because they compile the gn_all target, and this target was accidentally left out of the unittests binary, so it was never compiled.

I still don't really understand why your revert triggered this compile error, if the bots didn't complain at the time that it landed.
> I still don't really understand why your revert triggered this compile error, if the bots didn't complain at the time that it landed.

Hum... I thought the order of commits would explain this but indeed it doesn't make sense to me:

- master@{#436588} "Replacing CreateWKWebView by BuildWKWebView.": changes gaia_auth_fetcher_ios_unittest.mm with the missing name space and somehow does not trigger an iOS rebuild.

- master@{#436732} "Fix a pair of ResourceLoader cancellation/error bugs.": caused layout_tests to fail bringing my attention to it.

- master@{#436769} "Revert of Fix a pair of ResourceLoader cancellation/error bugs.": my revert that triggers a iOS rebuild and surfaces the compilation error.

- master@{#436771} "Fix missing namespace for scoped_nsobject.": my fix to the compilation error that triggers an iOS rebuild.


I also skimmed over the changes in the interval between #436732 and #436769 (git log --oneline  1d5e2e3^..c65594c) and did not find anything that seemed to change build trigger behavior.

Sign in to add a comment