[ 
https://issues.apache.org/jira/browse/JCLOUDS-1179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nick Howes updated JCLOUDS-1179:
--------------------------------
    Description: 
After the token used by jclouds expires, subsequent `putBlob` requests to swift 
fail with 401.
Unlike other operations, the `putBlob` command does not resolve this by 
`POST`ing to keystone, but instead tries a few times to `PUT` the blob to 
swift. Each request fails with a 401 and then it gives up.

Other operations such as a get _will_ handle a retry by refreshing the auth 
token, after which subsequent puts work (until the next expiry)

Project to reproduce can be found here 
https://github.com/UniversityofWarwick/jclouds-bug

It should be noted that when running this script I have altered [token] 
expiration in /etc/keystone/keystone.conf to be 2 seconds.

  was:
After the token used by jclouds expires, subsequent `putBlob` requests to swift 
fail with 401.
Unlike creations of temporary urls, the `putBlob` command does not resolve this 
by `POST`ing to keystone, but instead tries a few times to `PUT` the blob to 
swift. Each request fails with a 401 and then it gives up.

In order to resolve the issue, I must create a temporary url because that 
responds to the 401 and creates a new token - which is then stored by jclouds. 
I can then upload new blobs until that token has expired (after an hour)

Output and the script itself can be found here: 
https://gist.github.com/alexcouper/b8ca68a58a4f39b5e0dc

It should be noted that when running this script I have altered [token] 
expiration in /etc/keystone/keystone.conf to be 2 seconds.


> putBlob doesn't handle 401s 
> ----------------------------
>
>                 Key: JCLOUDS-1179
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-1179
>             Project: jclouds
>          Issue Type: Bug
>          Components: jclouds-blobstore
>    Affects Versions: 1.7.1, 2.0.0
>         Environment: Keystone + Swift on OpenStack Havana
> Ubuntu 12.04
>            Reporter: Nick Howes
>              Labels: swift
>
> After the token used by jclouds expires, subsequent `putBlob` requests to 
> swift fail with 401.
> Unlike other operations, the `putBlob` command does not resolve this by 
> `POST`ing to keystone, but instead tries a few times to `PUT` the blob to 
> swift. Each request fails with a 401 and then it gives up.
> Other operations such as a get _will_ handle a retry by refreshing the auth 
> token, after which subsequent puts work (until the next expiry)
> Project to reproduce can be found here 
> https://github.com/UniversityofWarwick/jclouds-bug
> It should be noted that when running this script I have altered [token] 
> expiration in /etc/keystone/keystone.conf to be 2 seconds.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to