Skip to content
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

Mark a build as failing before building, and as successful afterwards #15

Open
jonascarpay opened this issue Aug 7, 2022 · 3 comments

Comments

@jonascarpay
Copy link
Contributor

jonascarpay commented Aug 7, 2022

Some builds may crash the server. I'm mostly thinking about a build that runs out of memory, but there may be other ways.
If such builds exist, they currently allow a user to crash the server by repeatedly starting that build.

A simple way around this is to first mark the failing, and then only after it has completed successfully marking it as such.

This is very conservative since it assumes every crash during a build is that build's fault. A more sophisticated mechanism could allow a build to fail $n$ times before never trying it again.

@kayhide
Copy link
Contributor

kayhide commented Aug 24, 2022

This may be a bit off-topic from this issue but I was thinking that there are two types of build failure; deterministic and non-deterministic.

The deterministic failure is caused by source code (including build instructions) and reproduces exactly the same no matter how many we retry.

The non-deterministic failure is caused by memory shortage, network malfunction, unexpected user-interaction etc. If a failure is this type, we have a chance to succeed by retrying.

I think it is worthwhile to take account of these types when we think about how to handle build failures.

@cdepillabout
Copy link
Contributor

A simple way around this is to first mark the failing, and then only after it has completed successfully marking it as such.

We might have to also take into the fact that if person A requests a build for vim, and then before that finishes, person B also requests a build for vim, we don't want to send a response to person B that the build has failed (but we instead want to wait to send a response to person B until after the build of vim for person A finishes).

@kayhide
Copy link
Contributor

kayhide commented Aug 30, 2022

if person A requests a build for vim, and then before that finishes, person B also requests a build for vim

This is related to the discussion on parallelism.
#16 (comment)

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

No branches or pull requests

3 participants