GPU process won't boot on ToT |
||||||
Issue descriptionChrome Version: ToT at 4832979ab80769a47bcd70b3a5510d9b523f2b06 OS: Linux What steps will reproduce the problem? (1) Build at ToT (2) Run What is the expected result? Expect the GPU process to boot. What happens instead? [12403:12403:0321/101311.406191:ERROR:gl_surface_glx.cc(87)] glXGetFBConfigs failed. [12403:12403:0321/101311.406313:ERROR:gl_surface_glx.cc(128)] glXCreateWindow failed [12403:12403:0321/101311.406340:ERROR:gl_surface_glx.cc(442)] CreateDummyWindow(g_display) failed [12403:12403:0321/101311.406356:ERROR:gl_initializer_x11.cc(156)] GLSurfaceGLX::InitializeOneOff failed. [12403:12403:0321/101311.413585:ERROR:gpu_child_thread.cc(309)] Exiting GPU process due to errors during initialization [12337:12376:0321/101311.414313:ERROR:browser_gpu_channel_host_factory.cc(126)] Failed to create channel. I've been struggling with this problem since yesterday and seeing very strange behavior on my workstation, where occasionally it wasn't just my build that was broken. At this point though it's only my build that's hosed. Just did a (mostly) full rebuild; going to try a full one now. Component Release build on Trusty. I switched from a 24" to a 30" monitor last week and think that that changed my desktop configuration somehow. The system still thinks DISPLAY is :0. Could anyone help me figure out what's going wrong?
,
Mar 21 2017
crrev.com/458016 is the first bad revision for me in component build (non component works fine). piman@ is confirming
,
Mar 21 2017
Confirmed, bisected to that CL.
,
Mar 21 2017
,
Mar 21 2017
I checked, and it only affects Release+components builds. Debug+components or Release+no-components appear to work correctly.
,
Mar 21 2017
,
Mar 21 2017
investigation so far: with crrev.com/458016 in, and keeping protobuf_globals as a component, but making protobuf_lite back into a component, things work again. So it seems like protobuf_lite still contains something strange when statically linked.
,
Mar 22 2017
More data: it looks like third_party/protobuf/src/google/protobuf/arena.cc/h is to blame. If I move everything from third_party/protobuf/src/google/protobuf/stubs into a component, and leave all the rest of protobuf_lite in the static lib, it fails. If I move arena.cc/h from the static lib into the component, it works. In particular, arena.cc depends on PROTOBUF_USE_DLLS in its implementation, so I suspect that's what causing a behavior change.
,
Mar 22 2017
Ok, I think it's just that google::protobuf::Arena::thread_cache_ is a global, and so it needs to go into the protobuf_globals component so that it's shared across multiple instantiations of the code.
,
Mar 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/57c80c99d9f3355e5dc1829d0ac2eeffe7cd26b6 commit 57c80c99d9f3355e5dc1829d0ac2eeffe7cd26b6 Author: thomasanderson <thomasanderson@google.com> Date: Wed Mar 22 07:51:24 2017 Protobuf: Move thread-local global data to globals.cc This CL is a followup to https://codereview.chromium.org/2756543002/ which moved all variables in .data and .bss into globals.cc. However, I overlooked thread-local variables in .tdata and .tbss. This CL moves those too. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_dbg_ng;master.tryserver.chromium.mac:mac_chromium_dbg_ng;master.tryserver.chromium.win:win_chromium_dbg_ng R=pkasting@chromium.org CC=piman@chromium.org BUG= 703706 Review-Url: https://codereview.chromium.org/2759423004 Cr-Commit-Position: refs/heads/master@{#458677} [modify] https://crrev.com/57c80c99d9f3355e5dc1829d0ac2eeffe7cd26b6/third_party/protobuf/BUILD.gn [modify] https://crrev.com/57c80c99d9f3355e5dc1829d0ac2eeffe7cd26b6/third_party/protobuf/README.chromium [modify] https://crrev.com/57c80c99d9f3355e5dc1829d0ac2eeffe7cd26b6/third_party/protobuf/patches/0012-extract-globals.patch [modify] https://crrev.com/57c80c99d9f3355e5dc1829d0ac2eeffe7cd26b6/third_party/protobuf/src/google/protobuf/arena.cc [modify] https://crrev.com/57c80c99d9f3355e5dc1829d0ac2eeffe7cd26b6/third_party/protobuf/src/google/protobuf/arena.h [modify] https://crrev.com/57c80c99d9f3355e5dc1829d0ac2eeffe7cd26b6/third_party/protobuf/src/google/protobuf/globals.cc
,
Mar 22 2017
Thank you piman@ for the debugging, it was a big help! This should be fixed after the change in c#12 |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by cwallez@chromium.org
, Mar 21 2017Status: Available (was: Untriaged)