Hello Matthew Jacobs, Todd Lipcon,
I'd like you to do a code review. Please visit
http://gerrit.cloudera.org:8080/5857
to review the following change.
Change subject: thirdparty: patch cmake to avoid select() when reading from
subprocess pipes
......................................................................
thirdparty: patch cmake to avoid select() when reading from subprocess pipes
There's an odd cmake bug [1] that causes it to hang from time to time. So
far we've only seen it manifest during Impala's native toolchain build
(which includes Kudu) on SLES 12 SP0 build machines. I myself wasn't able to
reproduce it using the same AMI. Nor has it manifested in any other build
environments (including SLES 12 SP1), to our knowledge.
The workaround is to disable the use of select() when reading from
subprocess' pipes. I'm not thrilled by this; it means cmake will poll those
pipes for data, adding to its overall time. On my laptop, the unpatched cmake
takes 10s to process the Kudu source tree and 15s with this patch. That's
not much compared to the time spent in make/ninja (even with a hot ccache),
but anecdotally it feels like it hurts the "interactivity" of the build.
An alternative would be to disable select() only for SLES 12 SP0, but given
that the bug appears to be in the kernel's implementation of select(),
detection of just that environment would be challenging and fragile.
1. https://gitlab.kitware.com/cmake/cmake/issues/15873
Change-Id: I33596a36c1f974078140360cb62b01f58211b44c
---
M thirdparty/download-thirdparty.sh
A thirdparty/patches/cmake-issue-15873-dont-use-select.patch
2 files changed, 19 insertions(+), 0 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/57/5857/1
--
To view, visit http://gerrit.cloudera.org:8080/5857
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I33596a36c1f974078140360cb62b01f58211b44c
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <[email protected]>
Gerrit-Reviewer: Matthew Jacobs <[email protected]>
Gerrit-Reviewer: Todd Lipcon <[email protected]>