Issue #4793
Updated by dalley over 5 years ago
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:
<pre>
# 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"
]
}
</pre>
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.