From d0b71f39cf2e1f20ce728093778d592ac0cc3725 Mon Sep 17 00:00:00 2001 From: Longze Chen Date: Mon, 20 Jan 2025 16:24:54 -0500 Subject: [PATCH 1/2] Sentry clean-up: remove guid not found logs --- osf/models/base.py | 14 ++++++-------- website/views.py | 4 ++-- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/osf/models/base.py b/osf/models/base.py index 1d01ede4032..017f0df0150 100644 --- a/osf/models/base.py +++ b/osf/models/base.py @@ -219,13 +219,11 @@ def split_guid(cls, guid_str): return base_guid_str, version @classmethod - def load(cls, data, select_for_update=False, ignore_not_found=False): + def load(cls, data, select_for_update=False, skip_log_not_found=True): """Override load in order to load by Guid. Update with versioned Guid: if the guid str stored in data is versioned, only the base guid str is used. This is the expected design because base guid str remains a valid one, and it always refers to the latest version. - - If `ignore_not_found` is True, then don't log to sentry. This is used in `website.views.resolve_guid()`. """ if not data: return None @@ -235,19 +233,19 @@ def load(cls, data, select_for_update=False, ignore_not_found=False): return cls.objects.get(_id=base_guid_str) return cls.objects.filter(_id=base_guid_str).select_for_update().get() except cls.DoesNotExist: - if not ignore_not_found: - sentry.log_message(f'Object not found from base guid: ' - f'[data={data}, guid={base_guid_str}, version={version}]') + if not skip_log_not_found: + logger.debug(f'Object not found from base guid: ' + f'[data={data}, base_guid={base_guid_str}, version={version}]') return None @classmethod - def load_referent(cls, guid_str, ignore_not_found=False): + def load_referent(cls, guid_str): """Find and return the referent from a given guid str. """ if not guid_str: return None, None base_guid_str, version = cls.split_guid(guid_str) - base_guid_obj = cls.load(base_guid_str, ignore_not_found=ignore_not_found) + base_guid_obj = cls.load(base_guid_str) if not base_guid_obj: return None, None # Handles versioned guid str diff --git a/website/views.py b/website/views.py index 0f0d1c9ad75..d28b1b234d8 100644 --- a/website/views.py +++ b/website/views.py @@ -206,7 +206,7 @@ def forgot_password_form(): def resolve_guid_download(guid, provider=None): - resource, _ = Guid.load_referent(guid, ignore_not_found=True) + resource, _ = Guid.load_referent(guid) if not resource: raise HTTPError(http_status.HTTP_404_NOT_FOUND) @@ -291,7 +291,7 @@ def resolve_guid(guid, suffix=None): return resolve_guid_download(guid) # Retrieve resource and version from a guid str - resource, version = Guid.load_referent(guid, ignore_not_found=True) + resource, version = Guid.load_referent(guid) if not resource or not resource.deep_url: raise HTTPError(http_status.HTTP_404_NOT_FOUND) From 1db82d72363e78ff6156e6e6ccd62da1f6b44783 Mon Sep 17 00:00:00 2001 From: Longze Chen Date: Mon, 20 Jan 2025 16:30:29 -0500 Subject: [PATCH 2/2] Sentry clean-up: replace sentry with error and warning logs * When re-use an orphaned version * When creation fails due to unpublished pending version exists --- osf/models/preprint.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/osf/models/preprint.py b/osf/models/preprint.py index dad9aa74ca1..a94759dc58f 100644 --- a/osf/models/preprint.py +++ b/osf/models/preprint.py @@ -396,16 +396,16 @@ def create_version(cls, create_from_guid, auth): raise PermissionsError unfinished_version, unpublished_version = latest_version.check_unfinished_or_unpublished_version() if unpublished_version: - sentry.log_message('Failed to create a new version due to unpublished pending version already exists: ' - f'[version={unpublished_version.version}, ' - f'_id={unpublished_version._id}, ' - f'state={unpublished_version.machine_state}].') + logger.error('Failed to create a new version due to unpublished pending version already exists: ' + f'[version={unpublished_version.version}, ' + f'_id={unpublished_version._id}, ' + f'state={unpublished_version.machine_state}].') raise UnpublishedPendingPreprintVersionExists if unfinished_version: - sentry.log_message(f'Use existing initiated but unfinished version instead of creating a new one: ' - f'[version={unfinished_version.version}, ' - f'_id={unfinished_version._id}, ' - f'state={unfinished_version.machine_state}].') + logger.warning(f'Use existing initiated but unfinished version instead of creating a new one: ' + f'[version={unfinished_version.version}, ' + f'_id={unfinished_version._id}, ' + f'state={unfinished_version.machine_state}].') return unfinished_version, None # Note: version number bumps from the last version number instead of the latest version number