-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
[image builder] count failures and differentiate between system and user #15573
Comments
@sagor999 for 👀 and 🧑🔧 @akosyakov for 👀 and 💭 |
This might not be easy to distinguish.
So we could potentially say that if that command returns error, then it is a user error. But image build can fail for non user related reasons as well. For example, upstream docker hub issues, connectivity issues, registry facade issues, etc. They all might cause image build to fail here. |
Hmm, I see what you mean, the problem is the push is coupled to how we are configuring Our config:
We could output build to a tar file like in this answer: And then maybe add a bob push command, and use as part of bob proxy? The benefit being, we could instrument the build separately from the push. If we make it to the build for the docker file, it's safer to say a failure is user related (maybe they fat fingered the dockerfile or the related dockerconfigjson on the Gitpod Project). wdy? |
@kylos101 interesting option. But wouldn't this make this step quite a bit more complicated? |
@sagor999 👋 , let me know what you think? Perhaps there's another way to differentiate between types of failures?
Indeed. Aside from decoupling push from build, to better understand image build failure modes through instrumentation, how else can we differentiate between user and system failures?
We use
We would not have to maintain skopeo, I think. I wrote:
Which in hindsight is overkill. Instead, we could add a new command, after |
@WVerlaek wdyt of separating build and push to help us differentiate between user and system failures? We would have to check and see if Failure modes:
If you're unsure too, we should reach out to @aledbf and @csweichel too for ideas. 😄 |
Had a chat with @kylos101 on this, I would also favour not splitting into a separate push step. It would still be hard to distinguish errors of the build step that can be both user/system errors. We discussed an alternative solution: we could write parsing rules for known user-errors on |
Yeah, I think that might be an option. Especially if filter will be part of config file, so that we don't need to touch the code to make changes. |
Updated the description. cc @kylos101 |
Woot! Love it. Moving to Scheduled. Note: I think it might be hard to intercept the failure on docker pull from a private registry as a user failure? A good thing to test as part of the implementation. Maybe it'll fail on the |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Is your feature request related to a problem? Please describe
Image builds fail, but, we don't know how many of those failures are related to the system, versus user input.
Describe the behaviour you'd like
stderr
) to identify user errorscreate a set of parsing rules for known user errors. E.g. a
RUN
command in the Dockerfile exiting with an error. This would contain a log with>>> RUN
:we can incrementally add to this list of parsing rules whenever we identify new user errors. For this, it would be useful for the rule list to be specified in config, so it becomes easy to update.
Additional context
Related: #15572
The text was updated successfully, but these errors were encountered: