Actions
Issue #2874
closedRace condition during applicability regeneration for consumers with same profile
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Version:
Platform Release:
2.14.0
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
Yes
Tags:
Pulp 2
Sprint:
Sprint 23
Quarter:
Description
Occasionally, the applicability regeneration task raises the following:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 473, in __call__
return super(Task, self).__call__(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 103, in __call__
return super(PulpTask, self).__call__(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 437, in __protected_call__
return self.run(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/pulp/server/managers/consumer/applicability.py", line 107, in regenerate_applicability_for_consumers
manager.regenerate_applicability(profile_hash, content_type, profile_id, repo_id)
File "/usr/lib/python2.7/site-packages/pulp/server/managers/consumer/applicability.py", line 272, in regenerate_applicability
applicability)
File "/usr/lib/python2.7/site-packages/pulp/server/managers/consumer/applicability.py", line 384, in create
applicability.save()
File "/usr/lib/python2.7/site-packages/pulp/server/db/model/consumer.py", line 234, in save
self._id = self.get_collection().insert(new_document)
File "/usr/lib64/python2.7/site-packages/pymongo/collection.py", line 2200, in insert
check_keys, manipulate, write_concern)
File "/usr/lib64/python2.7/site-packages/pymongo/collection.py", line 530, in _insert
check_keys, manipulate, write_concern, op_id, bypass_doc_val)
File "/usr/lib64/python2.7/site-packages/pymongo/collection.py", line 513, in _insert_one
_check_write_command_response([(0, result)])
File "/usr/lib64/python2.7/site-packages/pymongo/helpers.py", line 300, in _check_write_command_response
raise DuplicateKeyError(error.get("errmsg"), 11000, error)
DuplicateKeyError: insertDocument :: caused by :: 11000 E11000 duplicate key error index: pulp_database.repo_profile_applicability.$profile_hash_-1_repo_id_-1 dup key: { : "29989a2ea7c148716ba750976ca1229628d4f76b45edd3d8378934a6ebc9a135", : "some repo id" }
It's possible when multiple tasks for single consumers are requested and running in parallel. If consumers have same profile, race condition can happen here.
Updated by ttereshc almost 6 years ago
- Priority changed from Normal to High
- Triaged changed from No to Yes
Updated by ttereshc almost 6 years ago
- Status changed from NEW to ASSIGNED
- Assignee set to ttereshc
Updated by ttereshc almost 6 years ago
- Status changed from ASSIGNED to POST
Added by ttereshc almost 6 years ago
Updated by ttereshc almost 6 years ago
- Status changed from POST to MODIFIED
Applied in changeset pulp|7a90d861d6d63bd8e6f17c03ca095f768127758c.
Updated by pcreech almost 6 years ago
- Status changed from 5 to CLOSED - CURRENTRELEASE
Actions
Resolve race condition during applicability generation
Race condition was possible when applicability generation was running in parallel for the same consumer profiles.
closes #2874 https://pulp.plan.io/issues/2874