-
Notifications
You must be signed in to change notification settings - Fork 1
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
make upload error reporting more consistent #1520
Comments
@rohan-at-sentry @thomasrockhu-codecov How can we move this issue forward? Without this work we can't detect the unknown error. |
Let's aim to tackle this early next quarter. Added to 1st sprint of Q3 2024. |
@rohan-at-sentry @aj-codecov @trent-codecov We are now in Q3. Can we move this issue forward? |
i'll deploy codecov/codecov-api#820 and codecov/worker#703 next week with them deployed, we can search for the following log strings:
they will have information about exceptions we aren't currently catching, and where appropriate we can assign them new error codes. unfortunately creating new error codes is a pain. to make sure it is safe, you must merge in this order:
my focus is just on making sure descriptive error codes are available to gazebo, i'm not touching how gazebo counts/displays them. it appears that happens in two places:
i don't know how the product wants to handle/display new error codes so i'm leaving that stuff alone |
https://cloudlogging.app.goo.gl/K7mpp3XgdKMdg5vc7 or https://cloudlogging.app.goo.gl/cgeM3Vz2G2aHEGj77 will show uncaught exceptions in the last 2w |
i am getting some PRs up to resolve the highest-firing unknown errors codecov/worker#908 i have also starting adding a new the first two PRs to create the new code:
next, i'll have to update API to use the new version of shared
finally, i'll have to update worker to record the new error code
we're in a code freeze so i will have to follow up on these later |
(open on VPN) https://l.codecov.dev/UHKdI1 i wrote a doc about how upload errors are set/presented and the process for creating new ones we are in a code freeze right now. i will follow up with my current PRs later. closing this issue since the process is documented now |
catch more exceptions during upload processing
upload_processor.py
'sprocess_individual_report()
is supposed to callbuild_report_from_raw_content()
, get aProcessingResult
back, and pass it intoupdate_upload_with_processing_result()
. if theProcessingResult
contains an error, anUploadError
record is created in the db with an error code.build_report_from_raw_content()
handles three specific error cases:FileNotInStorageError
when the raw upload is missing,ReportExpiredException
, andReportEmptyError
. if one of those occurs, it will return aProcessingResult
with an appropriate error filled in. if any other exception occurs, it is not caught. it bubbles up throughprocess_individual_report()
until it is caught in this catchall, which sets the upload state toerror
(good) but does not create anUploadError
database record (bad). without anUploadError
in the database, gazebo has to display "unknown error" for this upload when a better message would be something like "processing failed".so, we should add an
except Exception:
catchall inside ofbuild_report_from_raw_content()
which will return aProcessingResult
with an error code like "failure_during_processing". then teach api and gazebo about that value so that gazebo can display "processing failed" for itshared enum for upload error code
gazebo
andcodecov-api
agree on a list of possible upload error codes:worker uses the same values, but it just hardcodes magic strings:
the python enum should probably live in shared and worker should use it too
The text was updated successfully, but these errors were encountered: