Many informational builders has exception on BuildPackage Stage |
|||||||
Issue descriptionThe 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?
,
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@@@
,
Jan 31 2017
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.
,
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?
,
Jan 31 2017
@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 :)
,
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.
,
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.
,
Jan 31 2017
@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.
,
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.
,
Feb 1 2017
the change https://chromium-review.googlesource.com/#/c/435483/ has landed to fix this, but the bug hasn't auto updated.
,
Apr 17 2017
,
May 30 2017
,
Aug 1 2017
,
Aug 3 2017
Closing. Please reopen it if its not fixed. Thanks! |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by derat@chromium.org
, Jan 31 2017