-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Increase build timeouts #213
Conversation
Signed-off-by: Jose Luis Blanco-Claraco <[email protected]>
This raises the timeout from 2 hours to 3 hours, which is relatively OK by me. I'd want confirmation from @nuclearsandwich before moving forward, though, since this has consequences for the resources the buildfarms use. |
ccache sharing between builds is no longer enabled by default (as of ros-infrastructure/ros_buildfarm#844) and cannot be re-enabled as is due to issues with ccache's security model.
I think the "recommended" solution would be to break the package up along modular boundaries so that it isn't as large of a build (55min) but I also know that that's not necessarily a realistic demand or constraint to place on the project especially as our infrastructure changes are the reason that the second build has to start with an empty cache. However, two things give me pause. We'd have to raise this timeout for every devel job, not just this package and that means that we'd be spending an extra hour spent spinning on every job that hangs. I would prefer to do a sweep to see what consistently failing devel jobs are doing so due to timeouts before we decide to bump here. The second reservation is questioning whether three hours would even be sufficient. |
Thanks, Steven for the thoughtful answer. I expected something alike, I understand the reservations. Since this PR was opened, I made further findings:
However, increasing the timeout for all packages just because of this one is perhaps not the best way without trying anything else beforehand... Splitting it into several packages would be the ideal, but it would require quite a lot of effort, and as usual, there are other urgent stuff...
Building the test suite and running it actually amounts to a significant fraction of the total...
So, build+run tests amounts to the 20% of the total time. As a quick alternative, I'll try to disable all the tests (by default) when the package detects it's being built from a ROS environment. Since we have CI already covering the package in non-ROS builds, it shouldn't be a big deal, and if it solves the timeouts, I'll be happy... |
I hate disabling tests as a solution even if it makes some sense since test coverage is checked elsewhere. However, given that case does it make sense to turn off the devel jobs for mrpt2 entirely or is there value in checking that they build in a ROS workspace outside of the binarydeb jobs.
I also have loads on my plate but I wonder if I could at least get ccache functioning for the devel jobs so we're not building twice in a row without ccache. |
Peeking at ros-infrastructure/ros_buildfarm#844 , here's one naive idea for ccache: Instead of creating and using If it makes sense, I might even try to implement and test it (though, I'm not used to run |
This is more or less where I was headed. Great minds and all that. |
For the records:
I will close and discard this PR in favor of ros-infrastructure/ros_buildfarm#966 which would be beneficial for all packages anyway. Thanks! |
This issue happens for both ros1 and ros2 build farms, but let's start with this one to hear your opinion on this change.
We have this package which, after recent changes so more features are enabled in the build, times out after 120 minutes.
Possible solutions I see:
ccache
seems not to be doing its job (AFAIK). See for example this log:I'm not sure if configuring cmake and building twice, one under
$pkg/install
and one under$pkg/devel
, is expected behavior (?), nor whether ccache should be smart enough to detect the same sources are being compiled (perhaps there is any different macro definition, etc. and then ccache is ok?).Both issues are orthogonal. Just increasing the timeout will make me happy, but solving the other doubt would be great too!