-
Improvement
-
Resolution: Fixed
-
Minor
-
None
Sometimes S3 publishes fails for various reasons. This causes the whole job to fail. While I care about s3 publish, I don't want the job to fail if s3 fails.
An idea might be to add a new checkbox 'Pass always'. If enabled, the job should pass even if S3 publish fails
my latest failure from S3 is this
00-00 00:37:28 Publish artifacts to S3 Bucket bucket=qa-xxxxx-artifacts, file=xxxxxxx.log region=us-east-1, upload from slave=false managed=true , server encryption false 00-00 00:37:29 FATAL: Unable to load resource META-INF/services/org.apache.commons.logging.LogFactory 00-00 00:37:29 java.lang.Error: Unable to load resource META-INF/services/org.apache.commons.logging.LogFactory 00-00 00:37:29 at hudson.remoting.RemoteClassLoader.findResource(RemoteClassLoader.java:376) 00-00 00:37:29 at java.lang.ClassLoader.getResource(Unknown Source) 00-00 00:37:29 at java.net.URLClassLoader.getResourceAsStream(Unknown Source) 00-00 00:37:29 at org.apache.commons.logging.LogFactory$3.run(LogFactory.java:1280) 00-00 00:37:29 at java.security.AccessController.doPrivileged(Native Method) 00-00 00:37:29 at org.apache.commons.logging.LogFactory.getResourceAsStream(LogFactory.java:1276) 00-00 00:37:29 at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:532) 00-00 00:37:29 at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:657) 00-00 00:37:29 at org.apache.http.impl.conn.DefaultClientConnection.<init>(DefaultClientConnection.java:75) 00-00 00:37:29 at org.apache.http.impl.conn.DefaultClientConnectionOperator.createConnection(DefaultClientConnectionOperator.java:137) 00-00 00:37:29 at org.apache.http.impl.conn.HttpConnPool$InternalConnFactory.create(HttpConnPool.java:76) 00-00 00:37:29 at org.apache.http.impl.conn.HttpConnPool$InternalConnFactory.create(HttpConnPool.java:67) 00-00 00:37:29 at org.apache.http.pool.AbstractConnPool.getPoolEntryBlocking(AbstractConnPool.java:270) 00-00 00:37:29 at org.apache.http.pool.AbstractConnPool.access$000(AbstractConnPool.java:62) 00-00 00:37:29 at org.apache.http.pool.AbstractConnPool$2.getPoolEntry(AbstractConnPool.java:176) 00-00 00:37:29 at org.apache.http.pool.AbstractConnPool$2.getPoolEntry(AbstractConnPool.java:172) 00-00 00:37:29 at org.apache.http.pool.PoolEntryFuture.get(PoolEntryFuture.java:100) 00-00 00:37:29 at org.apache.http.impl.conn.PoolingClientConnectionManager.leaseConnection(PoolingClientConnectionManager.java:212) 00-00 00:37:29 at org.apache.http.impl.conn.PoolingClientConnectionManager$1.getConnection(PoolingClientConnectionManager.java:199) 00-00 00:37:29 at sun.reflect.GeneratedMethodAccessor435.invoke(Unknown Source) 00-00 00:37:29 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 00-00 00:37:29 at java.lang.reflect.Method.invoke(Unknown Source) 00-00 00:37:29 at com.amazonaws.http.conn.ClientConnectionRequestFactory$Handler.invoke(ClientConnectionRequestFactory.java:70) 00-00 00:37:29 at com.amazonaws.http.conn.$Proxy82.getConnection(Unknown Source) 00-00 00:37:29 at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:456) 00-00 00:37:29 at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) 00-00 00:37:29 at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) 00-00 00:37:29 at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:685) 00-00 00:37:29 at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460) 00-00 00:37:29 at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295) 00-00 00:37:29 at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3697) 00-00 00:37:29 at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1434) 00-00 00:37:29 at hudson.plugins.s3.callable.S3UploadCallable.invoke(S3UploadCallable.java:110) 00-00 00:37:29 at hudson.plugins.s3.S3Profile.upload(S3Profile.java:159) 00-00 00:37:29 at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182) 00-00 00:37:29 at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 00-00 00:37:29 at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770) 00-00 00:37:29 at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:734) 00-00 00:37:29 at hudson.model.Build$BuildExecution.post2(Build.java:183) 00-00 00:37:29 at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:683) 00-00 00:37:29 at hudson.model.Run.execute(Run.java:1770) 00-00 00:37:29 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 00-00 00:37:29 at hudson.model.ResourceController.execute(ResourceController.java:89) 00-00 00:37:29 at hudson.model.Executor.run(Executor.java:240) 00-00 00:37:29 Caused by: hudson.remoting.ChannelClosedException: channel is already closed 00-00 00:37:29 at hudson.remoting.Channel.send(Channel.java:541) 00-00 00:37:29 at hudson.remoting.Request.call(Request.java:129) 00-00 00:37:29 at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:171) 00-00 00:37:29 at $Proxy50.getResource(Unknown Source) 00-00 00:37:29 at hudson.remoting.DumbClassLoaderBridge.getResource2(DumbClassLoaderBridge.java:58) 00-00 00:37:29 at hudson.remoting.RemoteClassLoader.findResource(RemoteClassLoader.java:361) 00-00 00:37:29 ... 43 more 00-00 00:37:29 Caused by: hudson.remoting.Channel$OrderlyShutdown 00-00 00:37:29 at hudson.remoting.Channel$CloseCommand.execute(Channel.java:951) 00-00 00:37:29 at hudson.remoting.Channel$2.handle(Channel.java:475) 00-00 00:37:29 at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:60) 00-00 00:37:29 Caused by: Command close created at 00-00 00:37:29 at hudson.remoting.Command.<init>(Command.java:56) 00-00 00:37:29 at hudson.remoting.Channel$CloseCommand.<init>(Channel.java:945) 00-00 00:37:29 at hudson.remoting.Channel$CloseCommand.<init>(Channel.java:943) 00-00 00:37:29 at hudson.remoting.Channel.close(Channel.java:1026) 00-00 00:37:29 at hudson.remoting.Channel.close(Channel.java:1009) 00-00 00:37:29 at hudson.remoting.Channel$CloseCommand.execute(Channel.java:950)