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

Issue 909020 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 28
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Linker errors when building jpeg_decode_accelerator_unittest for CrOS in media_gpu_v4l2

Project Member Reported by bpastene@chromium.org, Nov 27

Issue description

Bot: https://luci-milo.appspot.com/p/chromium/builders/luci.chromium.ci/chromeos-kevin-rel-hw-tests

Currently failing w/ linker errors:
../../media/gpu/v4l2/generic_v4l2_device.cc:508: error: undefined reference to 'media_gpu_v4l2::InitializeStubs(...)'
clang-8: error: linker command failed with exit code 1 (use -v to see invocation)
from:
https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8928691139361229632/+/steps/compile/0/stdout

The change https://chromium-review.googlesource.com/c/1348042 shows up in the first failing build's blamelist, so is most likely the culprit. Note that this is prob going to block the PFQ when it picks up the change, so the sooner this is resolved the better.
 
Status: Assigned (was: Unconfirmed)
You can revert it
Interesting. I get a similar but different error building for kevin in Simple Chrome locally:

../../media/gpu/v4l2/generic_v4l2_device.cc:39:10: fatal error: 'media/gpu/v4l2/v4l2_stubs.h' file not found
#include "media/gpu/v4l2/v4l2_stubs.h"

Reverting that CL (e14ed8784837da724260359cb4a31b3bf29a7e55) fixes my local build.

Cc: dstaessens@chromium.org hiroh@chromium.org
 Issue 909075  has been merged into this issue.
Status: Fixed (was: Assigned)
Bot's happy again. Thanks for the revert steven.
Cc: bhthompson@chromium.org
The revert went in yesterday at 16:04 PST as https://crrev.com/c/1352039.

It looks like it's not present in the 3624 branch that was used for last night's PFQ run, so tons of builders failed (and are still failing). I'll merge it, but I'm curious why it's not already there. Why aren't daily PFQ runs lined up with Chrome branches?
Merged as https://crrev.com/c/1351762.
I am not sure why that CL did not make it in to https://chromium.googlesource.com/chromium/src/+log/72.0.3623.0..72.0.3624.0?n=10000# as it appears to have landed well in time, the 3624 cut was at 8pm, 4 hours after landing, so that is a bit of a mystery.

The Chrome PFQ picks up the highest version it can find, so it is effectively lined up with the Chrome branches, as soon as 3624 was available it tried to use it, and if 3624.X exists it will try that. 
Looking at that diff, the last real change was @ Tue Nov 27 15:58:24 2018 (PST). The revert landed @ Tue Nov 27 16:03:17 2018 (PST).

IIRC, the Chrome branch is cut at 8 PM, but it uses a "recent stable build". I don't recall the exact algorithm for that, possibly the last revision to succeed on all "important" chromium builders? You would need to talk to a Chrome TPM about that.




Cc: mmoss@chromium.org
The cron that creates the branches in chrome is: https://luci-milo.appspot.com/buildbot/official.infra.cron/chrome-branch/

You can see last night's branching run at https://luci-milo.appspot.com/buildbot/official.infra.cron/chrome-branch/893

> I don't recall the exact algorithm for that, possibly the last revision to succeed on all "important" chromium builders?

That looks to be the step called "calculate_branch_revisions.best_revision" (which points to the rev you mentioned ~5 min before the one we wanted included). The logic behind that step appears to be a script at:
https://chrome-internal.googlesource.com/chrome/tools/release/scripts/+/master/recipes/recipe_modules/release/resources/best_revision.py

So yeah, some failing test on some main chromium bot probably prevented that script from picking a rev any later than the one it did. (+mmoss in case I got any of that wrong)
Yeah, that's pretty much it. Generally the script will pick something within about 2 hours, but there is no hard cut-off; it completely depends on what's going on with the tree and the subset of critical builders. So if some of those builders were failing, or if the tree was closed for a chunk of time such that no newer commits had landed and worked through all those builders yet, then it's going to choose an older revision.
And if you really care, you can see in the logging output that your commit was marked "INCOMPLETE" because it hadn't yet been built on:

(u'179ebaeeaa56a0f4c5e2a601ecab1b3e912273f1', ['chromium.chromiumos/chromeos-amd64-generic-rel'])

You can also see many other commits were flagged for that same builder, so perhaps it had fallen behind from an earlier outage or failure.
Thanks for all the details!
Now, if only I could reproduce this error locally to be able to reland
oprypin@ - If you build on Linux for Chrome OS using Simple Chrome (go/simplechrome) with board=kevin you should be able to reproduce the build failure.


The CL set an incorrect path to generate files into.

I'm pretty sure that the linker error happens only when there are old files lingering in the correct path, and with a clean build the more obvious include error happens.

Reland in https://chromium-review.googlesource.com/c/chromium/src/+/1356703/1..4
Project Member

Comment 17 by bugdroid1@chromium.org, Dec 3

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

commit e9b35972e43acb7df051bd4ee7c47ed6c9519d16
Author: Oleh Prypin <oprypin@chromium.org>
Date: Mon Dec 03 22:52:58 2018

Reland "Make a GN template for generate_stubs.py"

This is a reland of e14ed8784837da724260359cb4a31b3bf29a7e55
With correct output path to v4l2/v4l2_stubs.{h,cc}

Original change's description:
> Make a GN template for generate_stubs.py
>
> Make it produce a source_set which can be depended on rather than directly including sources into the parent target.
>
> Bug: chromium:682122
> Change-Id: I7ad9f94459f187481e656e3513eabb3e2a6f92a1
> Reviewed-on: https://chromium-review.googlesource.com/c/1348042
> Reviewed-by: Dan Sanders <sandersd@chromium.org>
> Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Oleh Prypin <oprypin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#611117}

Bug: chromium:682122,  chromium:909020 
Change-Id: I1d34d5bb0dc9f4f72a444e9463669793c3f5a171
Reviewed-on: https://chromium-review.googlesource.com/c/1356703
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Commit-Queue: Oleh Prypin <oprypin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613300}
[modify] https://crrev.com/e9b35972e43acb7df051bd4ee7c47ed6c9519d16/media/audio/BUILD.gn
[modify] https://crrev.com/e9b35972e43acb7df051bd4ee7c47ed6c9519d16/media/gpu/BUILD.gn
[modify] https://crrev.com/e9b35972e43acb7df051bd4ee7c47ed6c9519d16/media/gpu/vaapi/BUILD.gn
[add] https://crrev.com/e9b35972e43acb7df051bd4ee7c47ed6c9519d16/tools/generate_stubs/rules.gni

Sign in to add a comment