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

Catalog entries can get skipped by catalog2registration when there are transient failures #3733

Closed
joelverhagen opened this issue Mar 31, 2017 · 1 comment

Comments

@joelverhagen
Copy link
Member

joelverhagen commented Mar 31, 2017

From PR NuGet/NuGet.Services.Metadata#150:

Suppose you have a page with:

ID   Version   Commit Timestamp
--   -------   ----------------
B    1.0.0     10:00 PM
A    1.0.0     10:00 PM
A    1.0.1     10:05 PM

Also suppose you have the cursor set to 9:55 PM. This means all of the items in the page need to be processed. You will have two batches processed by RegistrationCollector:

Batch 1: B 1.0.0
 - Commit Timestamp: 10:00 PM

Batch 2: A 1.0.0, A 1.0.1
 - Commit Timestamp: 10:00 PM

Suppose batch 1 is processed successfully. The CommitCollector will update the cursor to 10:00 PM (the commit timestamp of batch 1) then start processing batch 2.

Now suppose the processing of batch 2 fails such that neither A 1.0.0 nor A 1.0.1 are completed.

The job will crash due to the failure then start up again. Since the cursor is now at 10:00 PM, the set of items in the page considered will be:

ID   Version   Commit Timestamp
--   -------   ----------------
A    1.0.1     10:05 PM

This means A 1.0.0 is skipped. Remember that the cursor means "everything strictly after this timestamp needs to be processed".

@joelverhagen joelverhagen added this to the S116 - 2017.3.27 milestone Mar 31, 2017
@joelverhagen joelverhagen self-assigned this Mar 31, 2017
@joelverhagen joelverhagen changed the title Registration blobs can get skipped when there are transient failures Catalog entries can get skipped by catalog2registration when there are transient failures Mar 31, 2017
@skofman1 skofman1 mentioned this issue Apr 6, 2017
37 tasks
@skofman1
Copy link
Contributor

skofman1 commented Apr 8, 2017

reopen for tracking

@skofman1 skofman1 reopened this Apr 8, 2017
joelverhagen added a commit to NuGet/NuGet.Jobs that referenced this issue Oct 26, 2020
* Only write the cursor timestamp if it changes from the previous
* Add unit tests for all three catalog2* jobs
* Fix NuGet/NuGetGallery#3733
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants