[ https://issues.apache.org/jira/browse/JCLOUDS-1179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15548896#comment-15548896 ]
Zack Shoylev commented on JCLOUDS-1179: --------------------------------------- [~nhowes] I had a long look at this bug. I was having some issues reproducing it with a unit test in combination with running against the JVMs that should be exhibiting this problem. In the end, I followed your instructions to setup a devstack server and tested using your example code, and I was able to reproduce the issue using the example code. However, if you modify your build.gradle file to this: {code} // Apply the java plugin to add support for Java apply plugin: 'java' apply plugin: 'application' mainClassName = "Swift" repositories { jcenter() maven { url "http://repository.apache.org/snapshots/" } } // In this section you declare the dependencies for your production and test code dependencies { compile 'ch.qos.logback:logback-classic:1.1.3' compile 'org.slf4j:slf4j-api:1.7.13' compile "org.apache.jclouds.api:openstack-swift:2.0.0-SNAPSHOT" compile "org.apache.jclouds.driver:jclouds-slf4j:2.0.0-SNAPSHOT" } task wrapper(type: Wrapper) { gradleVersion = '3.0' } {code} you should see the problem go away (at least in the example you have provided). The reason appears to be that using jclouds-all would produce this unintended interaction you are describing, probably as a side-effect of how it is bundled. In general, it is better to use the specific modules that you need. I am not closing the issue yet, in case I am missing something (please let me know). Also, I will be adding the unit test to jclouds just in case. Finally, we might also have to have a look at jclouds-all. > 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.9.2, 2.0.0 > Environment: Devstack on Ubuntu 14.04 > Reporter: Nick Howes > Assignee: Zack Shoylev > Labels: openstack-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)