-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Don't log BuildEnvironmentWarning as error #6112
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
Conversation
build_cmd = self.environment.run(*cmd, **kwargs) | ||
try: | ||
build_cmd = self.environment.run(*cmd, **kwargs) | ||
except BuildEnvironmentWarning as e: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is supposed that we are not logging BuildEnvironmentWarning
already (
readthedocs.org/readthedocs/projects/tasks.py
Line 286 in 70ca7c7
BuildEnvironmentWarning, |
RepositoyError
will avoid the log in Sentry.
I feel confused here 😕
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but that isn't the cause. We are logging it manually here
readthedocs.org/readthedocs/projects/tasks.py
Lines 254 to 265 in 00ab116
except Exception: | |
# Catch unhandled errors when syncing | |
log.exception( | |
'An unhandled exception was raised during VCS syncing', | |
extra={ | |
'stack': True, | |
'tags': { | |
'project': self.project.slug, | |
'version': self.version.slug, | |
}, | |
}, | |
) |
That try...except block only captures RepositoryError and LockTimeout, everything else is logged
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gotcha! Do you know why the sync_repo
is not ran inside the context manager that manages all the exceptions in the __exit__
as we do run all the rest of the commands?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It runs inside one
readthedocs.org/readthedocs/projects/tasks.py
Lines 449 to 456 in 83e31f8
with self.setup_env: | |
try: | |
before_vcs.send(sender=self.version) | |
if self.project.skip: | |
raise ProjectBuildsSkippedError | |
try: | |
with self.project.repo_nonblockinglock(version=self.version): | |
self.setup_vcs() |
But again, that's not the problem. We still log the exception to sentry manually.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm talking about this one which does not seem to be ran inside a context manager:
readthedocs.org/readthedocs/projects/tasks.py
Line 243 in 83e31f8
self.sync_repo() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really sure, we don't record that action as a build, so we don't need the all the stuff from the context manager. It doesn't seen related to this anyway. Both calls use the default env
self.environment = environment or LocalEnvironment(project) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's merge and see what happen after the next deploy :)
@humitos errors from that place disappeared, but now it's logging from another place (where we log manually too) readthedocs.org/readthedocs/doc_builder/environments.py Lines 580 to 623 in 557c875
Looks it can be fixed by adding the exception in this list readthedocs.org/readthedocs/doc_builder/environments.py Lines 536 to 542 in 557c875
|
Good! It is supposed the WARNING_EXCEPTIONS is not needed anymore after we added the The right place to add the exception class is readthedocs.org/readthedocs/projects/tasks.py Lines 273 to 292 in 30e4955
|
@humitos the class is already on the throws arg. We should remove the code that manually logs to sentry. |
Turns out we are logging this manually
readthedocs.org/readthedocs/projects/tasks.py
Lines 254 to 265 in 00ab116
Closes #4590