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

Issue 606829 link

Starred by 4 users

Issue metadata

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



Sign in to add a comment

Compile failure on media/media_features.h (race involved?)

Project Member Reported by creis@chromium.org, Apr 26 2016

Issue description

https://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Mac/builds/9795
https://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Mac/builds/9795/steps/compile/logs/stdio

FAILED: /b/build/slave/cache/cipd/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/media/cast/sender/cast_sender.external_video_encoder.o.d -DV8_DEPRECATION_WARNINGS -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0 -DGOOGLE_CHROME_BUILD -DCR_CLANG_REVISION=267383-1 -DENABLE_RLZ -DUSE_LIBJPEG_TURBO=1 -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DUSE_PROPRIETARY_CODECS -DENABLE_PEPPER_CDMS -DENABLE_NOTIFICATIONS -DENABLE_TOPCHROME_MD=1 -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PDF=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_PROD_WALLET_SERVICE=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=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 -DPROTOBUF_USE_DLLS -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DUSE_LIBPCI=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DOFFICIAL_BUILD -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_FORTIFY_SOURCE=2 -Igen -I../.. -I../../third_party/khronos -I../../gpu -I../.. -I../../skia/config -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/opus/src/include -I../../third_party/libvpx/source/libvpx -isysroot /Applications/Xcode5.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -O2 -gdwarf-2 -fvisibility=hidden -Werror -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-selector-type-mismatch -Wpartial-availability -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-undefined-var-template -std=c++11 -stdlib=libc++ -fno-rtti -fno-exceptions -fvisibility-inlines-hidden -fno-threadsafe-statics -Xclang -load -Xclang /b/build/slave/google-chrome-rel-mac/build/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -Xclang -plugin-arg-find-bad-constructs -Xclang follow-macro-expansion -Xclang -plugin-arg-find-bad-constructs -Xclang check-implicit-copy-ctors -fcolor-diagnostics -fno-strict-aliasing -fno-standalone-debug  -c ../../media/cast/sender/external_video_encoder.cc -o obj/media/cast/sender/cast_sender.external_video_encoder.o
In file included from ../../media/cast/sender/external_video_encoder.cc:5:
In file included from ../../media/cast/sender/external_video_encoder.h:18:
In file included from ../../media/video/video_encode_accelerator.h:17:
In file included from ../../media/base/video_decoder_config.h:16:
../../media/base/video_codecs.h:11:10: fatal error: 'media/media_features.h' file not found
#include "media/media_features.h"
         ^
1 error generated.


Looks like the include was added in https://codereview.chromium.org/1677133003.  servolk@ said he found a missing dependency.

 
Project Member

Comment 1 by bugdroid1@chromium.org, Apr 26 2016

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

commit 6e77ec93bfb9b3e913bf5b980a9fea02ada20e7e
Author: servolk <servolk@chromium.org>
Date: Tue Apr 26 18:19:38 2016

Added media_features dependency for cast_sender target

The cast_sender target ends up including video_decoder_config.h, and
I've recently added 'include media_features.h' to that header. So now
targets that include video_decoder_config need an explicit dependency
on media_features target, to ensure media_features.h is generated and
can be included by those targets.

BUG= 606829 
TBR=miu,wolenetz
NOTRY=true
NOPRESUBMIT=true
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#389821}

[modify] https://crrev.com/6e77ec93bfb9b3e913bf5b980a9fea02ada20e7e/media/cast/BUILD.gn
[modify] https://crrev.com/6e77ec93bfb9b3e913bf5b980a9fea02ada20e7e/media/cast/cast.gyp

Comment 2 by creis@chromium.org, Apr 26 2016

Cc: m...@chromium.org wolenetz@chromium.org
Status: Started (was: Assigned)
Summary: Compile failure on media/media_features.h (race involved?) (was: Compile failure on Google Chrome Mac)
We hit a related error on the Win bot:
https://build.chromium.org/p/chromium/builders/Win/builds/42767

FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\slave\cache\cipd\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\media\gpu\ipc\common\media_gpu_ipc_common.gpu_video_accelerator_util.obj.rsp /c ..\..\media\gpu\ipc\common\gpu_video_accelerator_util.cc /Foobj\media\gpu\ipc\common\media_gpu_ipc_common.gpu_video_accelerator_util.obj /Fdobj\media\gpu\ipc\media_gpu_ipc_common.cc.pdb 
c:\b\build\slave\win\build\src\media\base\video_codecs.h(11): fatal error C1083: Cannot open include file: 'media/media_features.h': No such file or directory
FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\slave\cache\cipd\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\media\gpu\ipc\client\media_gpu_ipc_client.gpu_video_decode_accelerator_host.obj.rsp /c ..\..\media\gpu\ipc\client\gpu_video_decode_accelerator_host.cc /Foobj\media\gpu\ipc\client\media_gpu_ipc_client.gpu_video_decode_accelerator_host.obj /Fdobj\media\gpu\ipc\media_gpu_ipc_client.cc.pdb 
c:\b\build\slave\win\build\src\media\base\video_codecs.h(11): fatal error C1083: Cannot open include file: 'media/media_features.h': No such file or directory
FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\slave\cache\cipd\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\media\gpu\ipc\client\media_gpu_ipc_client.gpu_video_encode_accelerator_host.obj.rsp /c ..\..\media\gpu\ipc\client\gpu_video_encode_accelerator_host.cc /Foobj\media\gpu\ipc\client\media_gpu_ipc_client.gpu_video_encode_accelerator_host.obj /Fdobj\media\gpu\ipc\media_gpu_ipc_client.cc.pdb 
c:\b\build\slave\win\build\src\media\base\video_codecs.h(11): fatal error C1083: Cannot open include file: 'media/media_features.h': No such file or directory
FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\slave\cache\cipd\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\media\gpu\ipc\common\media_gpu_ipc_common.media_messages.obj.rsp /c ..\..\media\gpu\ipc\common\media_messages.cc /Foobj\media\gpu\ipc\common\media_gpu_ipc_common.media_messages.obj /Fdobj\media\gpu\ipc\media_gpu_ipc_common.cc.pdb 
c:\b\build\slave\win\build\src\media\base\video_codecs.h(11): fatal error C1083: Cannot open include file: 'media/media_features.h': No such file or directory
FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\slave\cache\cipd\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\media\gpu\ipc\common\media_gpu_ipc_common.media_param_traits.obj.rsp /c ..\..\media\gpu\ipc\common\media_param_traits.cc /Foobj\media\gpu\ipc\common\media_gpu_ipc_common.media_param_traits.obj /Fdobj\media\gpu\ipc\media_gpu_ipc_common.cc.pdb 
c:\b\build\slave\win\build\src\media\base\video_codecs.h(11): fatal error C1083: Cannot open include file: 'media/media_features.h': No such file or directory
FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\slave\cache\cipd\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\media\gpu\ipc\client\media_gpu_ipc_client.gpu_jpeg_decode_accelerator_host.obj.rsp /c ..\..\media\gpu\ipc\client\gpu_jpeg_decode_accelerator_host.cc /Foobj\media\gpu\ipc\client\media_gpu_ipc_client.gpu_jpeg_decode_accelerator_host.obj /Fdobj\media\gpu\ipc\media_gpu_ipc_client.cc.pdb 
c:\b\build\slave\win\build\src\media\base\video_codecs.h(11): fatal error C1083: Cannot open include file: 'media/media_features.h': No such file or directory
FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\slave\cache\cipd\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\media\gpu\ipc\common\media_gpu_ipc_common.create_video_encoder_params.obj.rsp /c ..\..\media\gpu\ipc\common\create_video_encoder_params.cc /Foobj\media\gpu\ipc\common\media_gpu_ipc_common.create_video_encoder_params.obj /Fdobj\media\gpu\ipc\media_gpu_ipc_common.cc.pdb 
c:\b\build\slave\win\build\src\media\base\video_codecs.h(11): fatal error C1083: Cannot open include file: 'media/media_features.h': No such file or directory
FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\slave\cache\cipd\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\media\gpu\ipc\common\media_gpu_ipc_common.media_message_generator.obj.rsp /c ..\..\media\gpu\ipc\common\media_message_generator.cc /Foobj\media\gpu\ipc\common\media_gpu_ipc_common.media_message_generator.obj /Fdobj\media\gpu\ipc\media_gpu_ipc_common.cc.pdb 
c:\b\build\slave\win\build\src\media\base\video_codecs.h(11): fatal error C1083: Cannot open include file: 'media/media_features.h': No such file or directory
ninja: build stopped: subcommand failed.

servolk@ has a CL for that as well:
https://codereview.chromium.org/1919323002/

Project Member

Comment 3 by bugdroid1@chromium.org, Apr 26 2016

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

commit 094a8272083fe95308dcd9f23ea008cb438df25d
Author: servolk <servolk@chromium.org>
Date: Tue Apr 26 18:45:13 2016

Added media_features dependency for media gpu targets

BUG= 606829 
TBR=miu,wolenetz
NOTRY=true
NOPRESUBMIT=true
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#389822}

[modify] https://crrev.com/094a8272083fe95308dcd9f23ea008cb438df25d/media/gpu/ipc/client/BUILD.gn
[modify] https://crrev.com/094a8272083fe95308dcd9f23ea008cb438df25d/media/gpu/ipc/media_ipc.gyp

Comment 4 by creis@chromium.org, Apr 26 2016

Cc: dskiba@chromium.org brettw@chromium.org
Status: Fixed (was: Started)
Seems ok for now-- thanks for the quick fix!

Just to connect the dots, looks like this came up before with https://codereview.chromium.org/1907003002, which was reverted for causing a similar compile error in https://build.chromium.org/p/chromium/builders/Win/builds/42636.  (See issue 605700.)

c:\b\build\slave\win\build\src\media\base\video_codecs.h(11): fatal error C1083: Cannot open include file: 'media/media_features.h': No such file or directory

I'm guessing it ties back to the generated file (media_features.h) and some kind of race during compile, similar to what dskiba@ hit in https://codereview.chromium.org/1839503002/ with base/debug/debugging_flags.h.

Comment 5 by dskiba@chromium.org, Apr 26 2016

More details on my case: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/ykepYWpA5rg

I.e. debugging_flags.h is generated only when base target is built, but GYP won't build it as part of building dependent static libraries (because we're not linking static libraries, so why build?). A possible fix is to make base a hard_dependency, so that it's always built. 
Yeah, we are hitting the same issue here. media_features.h was not generated when some targets were build due to an indirect dependency on 'media_feature' target through the base 'media' target. I wasn't aware of the hard_dependency flag, so for now I've solved it by adding an explicit dependency on 'media_feature' for all affected targets (that happen to include media_feature.h). I guess I could try to set hard_dependency: 1 on the GYP media target and then we can revert some of those changes. Although I wonder what's the status of GYP build - is it close to being deprecated? Or is it still actively maintained? For how long?
Sorry, of course I meant setting hard_dependency: 1 for media_feature target (the one that generates the media_features.h header).

Comment 8 by m...@chromium.org, May 2 2016

Status: Started (was: Fixed)
Re-opening. The change that modified the media/cast build files was probably not the right way to fix this: The dependency on video_decoder_config.h was indirect (i.e., nothing in media/cast code directly depends on it). It would be more appropriate to fix the DEPS in the build targets for media/video/video_encode_accelerator.h, which has the direct dependency.
Labels: -Pri-2 Pri-1
This is happening on ChromeOS now - the last 5 builds have failed.

https://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20ChromeOS

Increasing the bug priority to Pri 1.
miu@ could you please clarify what you meant in comment #8? Perhaps I don't understand something, but the DEPS file contains a list of directories (and not GYP/GN targets), so we can't add media_features in there, since it's a GYP/GN target name and there's no corresponding directory. Plus there's already '+media' in media/cast/DEPS. So I don't think that would solve anything.
Also the media/video/video_encode_accelerator.h header is media.gyp:media target, that already has an explicit dependency on media_features, and yet we still see those occasional failures. So I think the real problem here is that we really need the media_feature GYP target to be marked with hard_dependency: 1, as I've mentioned in comment #7. I think this will ensure that the header file gets generated before any possible uses.
I think miu meant 'deps' the GYP value, not the DEPS files. You can also ensure there is a path of hard deps instead.
Ok, but if we are talking about the 'deps' GYP value, then there is already a  dependency path from the failing target to media_features. For example for the latest failures linked in comment #9 above the build failure happened in gpu_jpeg_decode_accelerator.cc, which is in media/gpu/ipc/media_ipc.gyp:media_gpu_ipc_service target. That target has a dependency on 'media.gyp:media' and 'media.gyp:media' depends on 'media.gyp:media_features' target. When you said 'a path of hard deps' - did you mean that every target in this dependency chain should be marked as 'hard_dependency': 1? Or should it be sufficient to mark just the media.gyp:media_features as hard_dependency? I think this should be sufficient, could you take a look:
https://codereview.chromium.org/1969493002/
In GYP hard dependencies aren't transitive. The entire path between the target generating the header and all targets using it must be marked hard. If the dependency is direct, the fact that the generated header target is already marked hard is sufficient.
So you are saying that 'media.gyp:media' target should also be hard_dependency:1? Ok, I'll update my CL in a moment.
Project Member

Comment 15 by bugdroid1@chromium.org, May 11 2016

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

commit 1652fefd7f5c0d7da557d26a0a107ed2acc25c31
Author: servolk <servolk@chromium.org>
Date: Wed May 11 20:38:30 2016

Set hard_dependency for media and media_features gyp targets

The media_features gyp target generates a header that is included by
many other files indirectly through media/base/video_codecs.h, so
both the main media target and media_features target must be marked
as hard_dependency: 1, to ensure the media_features.h header is
generated before being used anywhere.

BUG= 606829 

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

[modify] https://crrev.com/1652fefd7f5c0d7da557d26a0a107ed2acc25c31/media/media.gyp

Project Member

Comment 16 by bugdroid1@chromium.org, May 11 2016

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

commit a50532323e28dc6f912c5655b20f2a7ece389b1c
Author: ananta <ananta@chromium.org>
Date: Wed May 11 21:35:11 2016

Revert of Set hard_dependency for media and media_features gyp targets (patchset #2 id:20001 of https://codereview.chromium.org/1969493002/ )

Reason for revert:
Appears to cause Windows builds to fail.
https://build.chromium.org/p/chromium/builders/Win/builds/43308

Please fix and reland

Original issue's description:
> Set hard_dependency for media and media_features gyp targets
>
> The media_features gyp target generates a header that is included by
> many other files indirectly through media/base/video_codecs.h, so
> both the main media target and media_features target must be marked
> as hard_dependency: 1, to ensure the media_features.h header is
> generated before being used anywhere.
>
> BUG= 606829 
>
> Committed: https://crrev.com/1652fefd7f5c0d7da557d26a0a107ed2acc25c31
> Cr-Commit-Position: refs/heads/master@{#393049}

TBR=wolenetz@chromium.org,brettw@chromium.org,dpranke@chromium.org,servolk@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 606829 

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

[modify] https://crrev.com/a50532323e28dc6f912c5655b20f2a7ece389b1c/media/media.gyp

Cc: jrumm...@chromium.org servolk@chromium.org dpranke@chromium.org dalecur...@chromium.org
 Issue 608574  has been merged into this issue.
 Issue 609244  has been merged into this issue.
Project Member

Comment 19 by bugdroid1@chromium.org, May 12 2016

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

commit 2c872f31329bb434f00b5cba3e61664ec3970ddc
Author: tapted <tapted@chromium.org>
Date: Thu May 12 04:59:31 2016

Set hard_dependency for media and media_features gyp targets

The media_features gyp target generates a header that is included by
many other files indirectly through media/base/video_codecs.h, so
both the main media target and media_features target must be marked
as hard_dependency: 1, to ensure the media_features.h header is
generated before being used anywhere.

patch originally from http://crrev.com/1969493002#ps20001

Added export_dependent_settings += [ media_features ]. +TBR to fix
waterfall breakage.

BUG= 606829 
TBR=servolk@chromium.org,brettw@chromium.org

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

[modify] https://crrev.com/2c872f31329bb434f00b5cba3e61664ec3970ddc/media/media.gyp

Owner: tapted@chromium.org
Poking through some failures on https://build.chromium.org/p/chromium/builders/Win?numbuilds=200 I think the media/media_features.h particular compile flake is fixed with that CL.

But there are likely others, very similar:

FAILED: obj/chrome/installer/setup/setup_lib.installer_crash_reporting.obj 
c:\b\build\slave\win\build\src\components\crash\content\app\crashpad.h(15): fatalerror C1083: Cannot open include file: 'third_party/kasko/kasko_features.h': No such file or directory
 in
https://build.chromium.org/p/chromium/builders/Win/builds/43412
https://build.chromium.org/p/chromium/builders/Win/builds/43379
https://build.chromium.org/p/chromium/builders/Win/builds/43370


[5220/33268] CXX obj\ui\app_list\presenter\test\app_list_presenter_test_support.app_list_presenter_impl_test_api.obj
c:\b\build\slave\win\build\src\ui\views\view.h(22): fatalerror C1083: Cannot open include file: 'ui/accessibility/ax_enums.h': No such file or directory
 in
https://build.chromium.org/p/chromium/builders/Win/builds/43405
https://build.chromium.org/p/chromium/builders/Win/builds/43403
https://build.chromium.org/p/chromium/builders/Win/builds/43386
https://build.chromium.org/p/chromium/builders/Win/builds/43385
https://build.chromium.org/p/chromium/builders/Win/builds/43375

Comment 21 by st...@chromium.org, May 16 2016

FYI: https://bugs.chromium.org/p/chromium/issues/detail?id=611319 tracks the "third_party/kasko/kasko_features.h" one.
Status: Fixed (was: Started)
yup, in fact we had our own crbug race :p

Just Found:
kasko_features.h ->  Issue 611319 
ax_enums.h ->  Issue 611898 

So closing this fixed.

Sign in to add a comment