Skip to content

Conversation

@Meinersbur
Copy link
Member

With this PR, the clean and clean_obj properties are ignored when considering whether to collapse two buildrequests. The collapsed request will have that property if either of the original requests has. clean, respectively clean_obj, not being set never guaranteed pre-populated build guranteed anyway.

Background:

  • The clean property is set in the Force Build dialog: "Clean source code and build directory". It is never set by LLVMPoller.
  • The clean_obj property is set in the Force Build dialog: "Clean build directory", or when LLVMPoller adds a buildrequest for a new llvm-project commit that changes a CMake file or contains the string "Require[...]clean build" in the commit message.
  • Neither is automatically set on builders even with clean option. Instead, those builders enable the cleaning step independent of the clean/clean_obj properties inherited from the buildrequest.

Two buildrequests were only collapsed when their properties are equal, including the clean_obj property. Since the value of the property changes dependending on whether a CMakeLists.txt file is touche, a typical sequence of buildrequests after collapsing becomes

  1. buildrequest
  2. buildrequest with clean_obj=true
  3. buildrequest
  4. buildrequest with clean_obj=true
  5. buildrequest
  6. buildrequest with clean_obj=true
  7. buildrequest
  8. ...

Hence, slow builders with collapseRequests enabled in practice it still does two builds per CMakeLists.txt change. This may lead to high response latency during times of high commit volume or the slowest builders not being able to keep up at all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant