Project

Profile

Help

Issue #4793

closed

Locking does not work as expected with Publications

Added by dalley almost 5 years ago. Updated almost 5 years ago.

Status:
CLOSED - WONTFIX
Priority:
Normal
Assignee:
-
Sprint/Milestone:
-
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Version:
Platform Release:
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
Sprint:
Sprint 54
Quarter:

Description

Expected behavior: A publication can be created immediately after kicking off a sync task, because it will wait for the prior task to complete, at which point there will be a repository version to use.

Actual behavior:

# Create a new Foo repository version by syncing repository from remote.

http POST :24817$REMOTE_HREF'sync/' repository=$REPO_HREF
HTTP/1.1 202 Accepted
Allow: POST, OPTIONS
Connection: close
Content-Length: 67
Content-Type: application/json
Date: Tue, 07 May 2019 19:32:29 GMT
Server: gunicorn/19.9.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN

{
    "task": "/pulp/api/v3/tasks/69e8be69-7754-4c87-88ed-e295fd01e643/"
}

# sleep 2

# Create a publication for the repository

http POST :24817/pulp/api/v3/publications/rpm/rpm/ repository=$REPO_HREF
HTTP/1.1 400 Bad Request
Allow: GET, POST, HEAD, OPTIONS
Connection: close
Content-Length: 87
Content-Type: application/json
Date: Tue, 07 May 2019 19:32:30 GMT
Server: gunicorn/19.9.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN

{
    "non_field_errors": [
        "Repository has no version available to create Publication from"
    ]
}

Uncommenting the "sleep" statement will make this script work.

This is probably not an issue with task locking, but rather with the synchronous code in the viewset.


Related issues

Related to RPM Support - Issue #5006: A publication can't be created immediately after kicking off a sync taskCLOSED - CURRENTRELEASECodeHeelerActions
Actions #1

Updated by dalley almost 5 years ago

  • Description updated (diff)
Actions #2

Updated by amacdona@redhat.com almost 5 years ago

  • Triaged changed from No to Yes
  • Sprint set to Sprint 53
Actions #3

Updated by amacdona@redhat.com almost 5 years ago

  • Related to Issue #4562: Source installs should fail if a plugin requires a newer version of pulpcore-plugin or pulpcore than is checked out added
Actions #4

Updated by amacdona@redhat.com almost 5 years ago

  • Related to deleted (Issue #4562: Source installs should fail if a plugin requires a newer version of pulpcore-plugin or pulpcore than is checked out)
Actions #5

Updated by daviddavis almost 5 years ago

I looked at the code and it seems that publishing a repo is just a shorthand for publishing its latest repository version since publish tasks are currently locking on a repository version. I suppose if we wanted to make this change, we'd have to lock on repositories but that seems less optimal. What about leaving this code as-is and supporting auto-publish instead?

Actions #6

Updated by bmbouter almost 5 years ago

daviddavis wrote:

I looked at the code and it seems that publishing a repo is just a shorthand for publishing its latest repository version since publish tasks are currently locking on a repository version. I suppose if we wanted to make this change, we'd have to lock on repositories but that seems less optimal. What about leaving this code as-is and supporting auto-publish instead?

I agree. +1 to leaving as-is and adding a 'publisher' field to PublicationDistribution which will provide the auto-publish feature. If we want to do that should this story be closed (for posterity) and a new one opened?

Actions #7

Updated by amacdona@redhat.com almost 5 years ago

  • Sprint changed from Sprint 53 to Sprint 54
Actions #8

Updated by ttereshc almost 5 years ago

  • Status changed from NEW to CLOSED - WONTFIX

Here is the documentation issue which should state how to deal with those situations conveniently.
https://pulp.plan.io/issues/5006

Actions #9

Updated by ttereshc almost 5 years ago

  • Related to Issue #5006: A publication can't be created immediately after kicking off a sync task added

Also available in: Atom PDF