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

Issue 687014 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Feb 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Many informational builders has exception on BuildPackage Stage

Project Member Reported by x...@chromium.org, Jan 31 2017

Issue description

The exception started show on many informational builders this afternoon (for example: https://uberchromegw.corp.google.com/i/chromeos.chrome/builders/cyan-tot-chrome-pfq-informational/builds/1627, https://uberchromegw.corp.google.com/i/chromeos.chrome/builders/lumpy-tot-chrome-pfq-informational/builds/21305), a few of them also make it to PFQ (e.g., https://uberchromegw.corp.google.com/i/chromeos/builders/falco-chrome-pfq/builds/5268), 

Although almost all the informational builders are affected by this failure, it still shows the status as "Successfully passed". I think it might be worthy to find what's going on there. 


Selected error message:
Fetched chromeos-base/chromeos-dev-root-0.0.1-r3 in 36.95s
Started chromeos-base/chromeos-dev-root-0.0.1-r3 (logged in /tmp/chromeos-dev-root-0.0.1-r3-bZP5K5)
=== Start output for job autotest-deps-glbench-0.0.1-r7577 (0m34.2s) ===
autotest-deps-glbench-0.0.1-r7577: ERROR:root:[stderr] In file included from trianglesetuptest.cc:7:
autotest-deps-glbench-0.0.1-r7577: ERROR:root:[stderr] In file included from ./main.h:14:
autotest-deps-glbench-0.0.1-r7577: ERROR:root:[stderr] In file included from /build/tricky/usr/include/EGL/egl.h:39:
autotest-deps-glbench-0.0.1-r7577: ERROR:root:[stderr] /build/tricky/usr/include/EGL/eglplatform.h:99:10: fatal error: 'X11/Xlib.h' file not found
autotest-deps-glbench-0.0.1-r7577: ERROR:root:[stderr] #include <X11/Xlib.h>
autotest-deps-glbench-0.0.1-r7577: ERROR:root:[stderr]          ^~~~~~~~~~~~


The X11 seems recently got removed as a dependency in https://chromium-review.googlesource.com/#/c/422474/ and https://chromium-review.googlesource.com/#/c/419794/. derat@, could you help take a look at this issue? 
 

Comment 1 by derat@chromium.org, Jan 31 2017

Cc: ihf@chromium.org marc...@chromium.org
Hmm.

----

#elif defined(__unix__)

/* X11 (tentative)  */
#include <X11/Xlib.h>
#include <X11/Xutil.h>

typedef Display *EGLNativeDisplayType;
typedef Pixmap   EGLNativePixmapType;
typedef Window   EGLNativeWindowType;

#else

----

What's the status of glbench? Building X11 code seems... not that useful.

Comment 2 by ihf@chromium.org, Jan 31 2017

That seems to be a build fluke where glbench is configured wrong on the first compile. The second attempt builds (without X11).

WARNING: The following packages failed once or more,
but succeeded upon retry. This might indicate incorrect
dependencies.
  chromeos-base/autotest-deps-glbench-0.0.1-r7576
@@@STEP_WARNINGS@@@
Cc: vapier@chromium.org
Building X11 in this case makes sense, the reason is that one of the egl headers (eglplatform.h) depends on Xlib.h. We cannot really change this header because it is written by khronos, and we import new updates from time to time. So we have to satisfy the dependency. Also this isn't directly related to glbench, glbench just happens to pull opengles-headers.

The dependency chain is as follows:
glbench (which needs opengles headers) -> opengles-headers (which as explained before needs Xlib.h for reasons we don't control) -> libX11 (including the Xlib.h header)

Now if you look at the build log, the first time it builds, opengles-headers is built before glbench, and that is correct. However libX11 is not built before opengles-headers despite the dependency being present in the ebuild. That is the part which is incorrect.

I tried locally without a parallel build, and opengles-headers properly pulls in libX11 so the dependency in the opengles-headers ebuild is properly expressed. However something else is blocking it and I am not sure what. It could be the parallel build stuff.

Comment 4 by derat@chromium.org, Jan 31 2017

It'd be nice if we didn't build libX11. Can we find a way to do that, like changing some ebuilds to not build EGL?
@4: no matter what we do, we will always require EGL. EGL is the window system integration layer for OpenGLES, and Chrome requires it. We could conceivably replace the full libX11 build with a package that only installs the X11 headers to cut down on dependencies and build time.

However we should probably figure out why dependencies are not working first, before changing anything more :)

Comment 6 by vapier@chromium.org, Jan 31 2017

the problem i think is the binary aspects.  those builds used a binpkg of opengles-headers which means DEPEND can be correctly ignored.

i think we need to add libX11 to opengles-headers' RDEPEND with a comment explaining why.  it shouldn't cause a problem in the end as nothing lists opengles-headers in RDEPEND ...

splitting libX11 into headers/libs wouldn't help this particular issue.

Comment 7 by x...@chromium.org, Jan 31 2017

Just an update on this bug: This exception goes away from the information builders one by one. Now all the informational builders don't have this exception on their BuildPackage stage anymore. Not sure if we still need to keep this issue open.
@6: ok, we'll add it to RDEPEND then.

Side note: splitting libX11 into headers/libs is a tangential discussion which would allow us to cut down some build dependencies. There are 66 packages which get pulled by libX11, so reducing the dependencies here could be interesting.

Comment 9 by vapier@chromium.org, Jan 31 2017

considering how much upstream X.org has split headers into (xxx)proto packages, doesn't *seem* like it'd be too hard for this either, but maybe it would ;).  if X.org doesn't split, then it's extremely unlikely that Gentoo would.  but at this point in the CrOS no-X cycle, i don't think doing it ourselves in chromiumos-overlay would be too onerous.
Status: Fixed (was: Assigned)
the change https://chromium-review.googlesource.com/#/c/435483/ has landed to fix this, but the bug hasn't auto updated.

Comment 11 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59

Comment 12 by dchan@google.com, May 30 2017

Labels: VerifyIn-60
Labels: VerifyIn-61
Status: Verified (was: Fixed)
Closing. Please reopen it if its not fixed. Thanks!

Sign in to add a comment