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

Issue 622365 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Jun 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 0
Type: Bug



Sign in to add a comment

Missing permission_status.mojom.h on Chrome OS (flakey?)

Project Member Reported by steve...@chromium.org, Jun 22 2016

Issue description

We started seeing errors like the one below on some PFQ builders, e.g.:

https://uberchromegw.corp.google.com/i/chromeos.chrome/builders/x86-alex-tot-chrome-pfq-informational/builds/20409

https://uberchromegw.corp.google.com/i/chromeos.chrome/builders/tricky-tot-chrome-pfq-informational/builds/1214

https://uberchromegw.corp.google.com/i/chromeos.chrome/builders/veyron_minnie-cheets-tot-chrome-pfq-cheets-informational/builds/248


On most builders the error went away, but on some (e.g. tricky-tot-chrome-pfq-informational) the problem persists.


chromeos-chrome-53.0.2776.0_alpha-r1: [10107/25461] CXX obj/components/visitedlink/common/visitedlink_common.visitedlink_message_generator.o
chromeos-chrome-53.0.2776.0_alpha-r1: FAILED: obj/components/visitedlink/common/visitedlink_common.visitedlink_message_generator.o 
chromeos-chrome-53.0.2776.0_alpha-r1: x86_64-cros-linux-gnu-g++ -B/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.25.51-gold -MMD -MF obj/components/visitedlink/common/visitedlink_common.visitedlink_message_generator.o.d -DV8_DEPRECATION_WARNINGS -D_FILE_OFFSET_BITS=64 -DGOOGLE_CHROME_BUILD -DENABLE_RLZ -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_CRAS=1 -DUSE_OZONE=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DIMAGE_LOADER_EXTENSION=1 -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DUSE_PROPRIETARY_CODECS -DENABLE_PEPPER_CDMS -DENABLE_NOTIFICATIONS -DENABLE_WAYLAND_SERVER=1 -DUSE_UDEV -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PDF=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DENABLE_HANGOUT_SERVICES_EXTENSION=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DUSE_LIBPCI=1 -DUSE_NSS_CERTS=1 -DOS_CHROMEOS=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNO_UNWIND_TABLES -DOFFICIAL_BUILD -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_FORTIFY_SOURCE=2 -Igen -I../../../../../../../home/chrome-bot/chrome_root/src/third_party/khronos -I../../../../../../../home/chrome-bot/chrome_root/src/gpu -I../../../../../../../home/chrome-bot/chrome_root/src -I../../../../../../../home/chrome-bot/chrome_root/src/skia/config -Igen/angle -I../../../../../../../home/chrome-bot/chrome_root/src/third_party/WebKit/Source -I../../../../../../../home/chrome-bot/chrome_root/src/third_party/WebKit -Igen/third_party/WebKit -Werror -pthread -fno-strict-aliasing -Wall -Wno-extra -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -g -Wno-unused-local-typedefs -m64 -march=x86-64 --sysroot=/build/tricky -O2 -fno-ident -fdata-sections -ffunction-sections -fno-unwind-tables -fno-asynchronous-unwind-tables -g -pipe -pipe -pipe -march=corei7 -D__google_stl_debug_vector=1 -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -Wno-narrowing -Wno-literal-suffix  -c ../../../../../../../home/chrome-bot/chrome_root/src/components/visitedlink/common/visitedlink_message_generator.cc -o obj/components/visitedlink/common/visitedlink_common.visitedlink_message_generator.o
chromeos-chrome-53.0.2776.0_alpha-r1: In file included from ../../../../../../../home/chrome-bot/chrome_root/src/components/visitedlink/common/visitedlink_messages.h:12:0,
chromeos-chrome-53.0.2776.0_alpha-r1:                  from ../../../../../../../home/chrome-bot/chrome_root/src/components/visitedlink/common/visitedlink_message_generator.h:7,
chromeos-chrome-53.0.2776.0_alpha-r1:                  from ../../../../../../../home/chrome-bot/chrome_root/src/components/visitedlink/common/visitedlink_message_generator.cc:7:
chromeos-chrome-53.0.2776.0_alpha-r1: ../../../../../../../home/chrome-bot/chrome_root/src/content/public/common/common_param_traits_macros.h:25:92: fatal error: third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h: No such file or directory
chromeos-chrome-53.0.2776.0_alpha-r1:  #include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"



Importantly, we are still seeing this on this master PFQ builder: 
https://uberchromegw.corp.google.com/i/chromeos/builders/arm-generic-chromium-pfq

It seems like maybe we lost a dependency somewhere?

 
The first time I think we saw this was actually here, on Monday:

https://build.chromium.org/p/chromiumos.chromium/builders/x86-generic-tot-asan-informational/builds/10980

Cc: sky@chromium.org xhw...@chromium.org
+sky@ for visitedlink

+xhwang@ for "Move permission.mojom from WebKit/public/platform/ to components/"

The dependency chain for this is a bit tangled, but I suspect that visitedlink_common needs to depend on blink.gyp:blink (or at least blink.gyp:mojo_bindings).

Comment 3 by h...@chromium.org, Jun 22 2016

It looks like for the permission_status.mojom.h, at a minimum, we need to declare dependency on WebKit/public:mojo_bindings.

Comment 4 by h...@chromium.org, Jun 22 2016

Owner: sky@chromium.org
Status: Assigned (was: Untriaged)
re:#2 I believe we're already using the GN workflow now

sky@ please comment if we should add "//third_party/WebKit/public:mojo_bindings" to the deps[] in components/visitedlink/common/BUILD.gn
We are not using GN inside the chroot yet. We're working on it... but for
now we need to make sure both still work.

Comment 6 by h...@chromium.org, Jun 22 2016

Re:#5 then I'm confused how it works for components/visitedlink because there is not a single .GYP file there.

Comment 8 by h...@chromium.org, Jun 22 2016

Cc: jam...@chromium.org thakis@chromium.org
CC thakis@, jamesr@ who may have some context on the dependency of blink mojo bindings.

Apparently visitedlink.gypi does have dependency on public/blink.gyp:blink, however this is not sufficient.

Comment 9 by thakis@chromium.org, Jun 22 2016

You probably need a hard_dependency somewhere.

Comment 10 by h...@chromium.org, Jun 22 2016

I have so far still not yet reproduced this problem with my local tricky official build.

I'm using the gyp workflow:
(1) first build chromeos-chrome from a clean build
(2) remove gen/third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h and obj/components/visitedlink/common/visitedlink_common.visitedlink_message_generator.o from the output directory
(3) run an incremental build

If there's a dependency problem I'd expect to see this to fail with "permission_status.mojom.h not found" error, but it always succeeds.
Labels: -Pri-0 Pri-1
If there is a dependency issue that might not fail if the failing target isn't also removed. I suspect there is a subtle build order / timing issue.

The incremental builders have all cycled green and the PFQ builders appear to have all successfully completed the BuildPackages stage, so maybe we are OK now? That said we should double check the dependencies and add one if it is missing.

Lowering to P1.

Since this is probably a GYP specific failure and since we are planning to switch to GN on Chrome OS in the chroot after we branch on Friday, we can probably live with this for a week, assuming we don't have a similar issue in GN.

Comment 14 by cn...@chromium.org, Jun 28 2016

Labels: -Pri-1 Pri-0
Update: The error is seemed again today at build_package stage: https://uberchromegw.corp.google.com/i/chromeos/builders/veyron_minnie-cheets-chrome-pfq/builds/356/steps/BuildPackages/logs/stdio

Comment 15 by sky@chromium.org, Jun 28 2016

I'm going to assume this is a static library build, if I'm wrong, please let me know.

The missing file is third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h
Which is generated by third_party/WebKit/public/blink.gyp:mojo_bindings_blink_mojom

The file being compiled is components/visitedlink/common/visitedlink_message_generator.cc . This file comes from components/visitedlink.gypi:visitedlink_common
which depends on
content/content.gyp:content_common
content_common has a dependency on ../third_party/WebKit/public/blink.gyp:mojo_bindings

The issue is that content.gyp doesn't export blink.gyp:mojo_bindings, so that visitedlink can start compiling before the generated files have been generated.

Comment 16 by sky@chromium.org, Jun 28 2016

Status: Started (was: Assigned)
Project Member

Comment 17 by bugdroid1@chromium.org, Jun 28 2016

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

commit 5f535f591cfafe8887d6a718eef1ef6124376637
Author: sky <sky@chromium.org>
Date: Tue Jun 28 20:39:54 2016

Fix dependency issue in content_common (gyp)

content/public/common/common_param_traits_macros.h includes a
generated header from blink.gyp:mojo_bindings. This means anyone that
depends upon content_common must also depend upon
blink.gyp:mojo_bindings, otherwise the header may not have been
generated and you get a compile error.

The gn build deals with this already by using public_deps.

BUG= 622365 
TEST=build only change
R=jam@chromium.org, japhet@chromium.org

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

[modify] https://crrev.com/5f535f591cfafe8887d6a718eef1ef6124376637/content/content_common.gypi
[modify] https://crrev.com/5f535f591cfafe8887d6a718eef1ef6124376637/third_party/WebKit/public/blink.gyp

Project Member

Comment 18 by bugdroid1@chromium.org, Jun 28 2016

Labels: merge-merged-2782
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b56c3456420169cb81c1b08c44372fa4e1c29325

commit b56c3456420169cb81c1b08c44372fa4e1c29325
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Tue Jun 28 20:53:05 2016

Fix dependency issue in content_common (gyp)

content/public/common/common_param_traits_macros.h includes a
generated header from blink.gyp:mojo_bindings. This means anyone that
depends upon content_common must also depend upon
blink.gyp:mojo_bindings, otherwise the header may not have been
generated and you get a compile error.

The gn build deals with this already by using public_deps.

BUG= 622365 
TEST=build only change
R=jam@chromium.org, japhet@chromium.org

Review-Url: https://codereview.chromium.org/2102183002
Cr-Commit-Position: refs/heads/master@{#402538}
(cherry picked from commit 5f535f591cfafe8887d6a718eef1ef6124376637)

Review URL: https://codereview.chromium.org/2107933002 .

Cr-Commit-Position: refs/branch-heads/2782@{#5}
Cr-Branched-From: 4f1d832918c5966df3cc8ac1d23c8c1544262cee-refs/heads/master@{#402386}

[modify] https://crrev.com/b56c3456420169cb81c1b08c44372fa4e1c29325/content/content_common.gypi
[modify] https://crrev.com/b56c3456420169cb81c1b08c44372fa4e1c29325/third_party/WebKit/public/blink.gyp

Comment 19 by sky@chromium.org, Jun 28 2016

Status: Fixed (was: Started)
Status: Verified (was: Fixed)
Bulk verified

Sign in to add a comment