minio / minio-jenkins

This is a simple Jenkins plugin that lets you upload Jenkins artifacts to a Minio Server
Apache License 2.0
5 stars 10 forks source link

Unable to Upload a file #10

Closed shalabh24x7 closed 6 years ago

shalabh24x7 commented 6 years ago

I am trying to upload a text file to minio server using jenkins.I am using minio storage plugin. I have a bucket created on my minio server with R/W access. When uploading the file its giving me the below error:-

ERROR: Build step failed with exception Also: hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1696) at hudson.remoting.UserResponse.retrieve(UserRequest.java:313) at hudson.remoting.Channel.call(Channel.java:909) at hudson.FilePath.act(FilePath.java:998) at hudson.FilePath.act(FilePath.java:987) at org.jenkinsci.plugins.minio.MinioUploader.perform(MinioUploader.java:196) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:81) at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:32) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690) at hudson.model.Build$BuildExecution.post2(Build.java:186) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635) at hudson.model.Run.execute(Run.java:1752) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429) java.lang.NullPointerException at org.jenkinsci.plugins.minio.MinioAllPathUploader.invoke(MinioAllPathUploader.java:99) at org.jenkinsci.plugins.minio.MinioAllPathUploader.invoke(MinioAllPathUploader.java:42) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2813) at hudson.remoting.UserRequest.perform(UserRequest.java:153) at hudson.remoting.UserRequest.perform(UserRequest.java:50) at hudson.remoting.Request$2.run(Request.java:336) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at hudson.remoting.Engine$1$1.run(Engine.java:94) at java.lang.Thread.run(Thread.java:748) Build step 'Upload build artifacts to Minio server' marked build as failure Finished: FAILURE

screen shot 2018-03-27 at 14 14 14

I have attached my jenkins job config

shalabh24x7 commented 6 years ago

is there any update on this?

nitisht commented 6 years ago

hey @shalabh24x7 sorry for not responding earlier. I discussed internally and we decided to deprecate this plugin and recommend to use https://wiki.jenkins.io/display/JENKINS/S3+Plugin instead.

Can you give it a try?

shalabh24x7 commented 6 years ago

Hi @nitisht tried with the S3 plugin you told, but its not working, please see the error below:-

Publish artifacts to S3 Bucket Build is still running Publish artifacts to S3 Bucket Using S3 profile: http://minio.mortgages.sbx.zone/minio Publish artifacts to S3 Bucket bucket=/clamav, file=scan.txt region=us-east-1, will be uploaded from slave=false managed=false , server encryption false ERROR: Failed to upload files com.amazonaws.SdkClientException: Unable to execute HTTP request: Connect to s3.amazonaws.com:443 [s3.amazonaws.com/52.216.162.53] failed: connect timed out at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:1114) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1064) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667) at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4325) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4272) at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1749) at com.amazonaws.services.s3.transfer.internal.UploadCallable.uploadInOneChunk(UploadCallable.java:133) at com.amazonaws.services.s3.transfer.internal.UploadCallable.call(UploadCallable.java:125) at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:143) at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:48) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to s3.amazonaws.com:443 [s3.amazonaws.com/52.216.162.53] failed: connect timed out at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:151) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.amazonaws.http.conn.ClientConnectionManagerFactory$Handler.invoke(ClientConnectionManagerFactory.java:76) at com.amazonaws.http.conn.$Proxy87.connect(Unknown Source) at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) at com.amazonaws.http.apache.client.impl.SdkHttpClient.execute(SdkHttpClient.java:72) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1236) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056) ... 17 more Caused by: java.net.SocketTimeoutException: connect timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:339) at com.amazonaws.http.conn.ssl.SdkTLSSocketFactory.connectSocket(SdkTLSSocketFactory.java:132) at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) ... 33 more Build step 'Publish artifacts to S3 Bucket' changed build result to UNSTABLE Finished: UNSTABLE

nitisht commented 6 years ago

As discussed with @shalabh24x7 looks like there is no option to configure S3 Jenkins plugin to use custom S3 compatible endpoints. So, we'll be fixing the issue here

nitisht commented 6 years ago

As discussed this wasn't reproducible at my end. Most probably a plugin configuration issue. Shared my configuration with @shalabh24x7 , can you please confirm if it works

nitisht commented 6 years ago

Closing as not reproducible @shalabh24x7 . Feel free to reopen if there are further issues.

realmbgl commented 6 years ago

@shalabh24x7 Im running into the same, I see the bucket gets created but the upload fails

java.lang.NullPointerException
    at org.jenkinsci.plugins.minio.MinioAllPathUploader.invoke(MinioAllPathUploader.java:99)
    at org.jenkinsci.plugins.minio.MinioAllPathUploader.invoke(MinioAllPathUploader.java:42)
    at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2816)
    at hudson.remoting.UserRequest.perform(UserRequest.java:210)
    at hudson.remoting.UserRequest.perform(UserRequest.java:53)
    at hudson.remoting.Request$2.run(Request.java:364)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at hudson.remoting.Engine$1$1.run(Engine.java:94)
    at java.lang.Thread.run(Thread.java:745)

https://github.com/jenkinsci/minio-storage-plugin/blob/master/src/main/java/org/jenkinsci/plugins/minio/MinioAllPathUploader.java#L99

did you figure out a way around it.

cc @nitisht

thanks for your help!

nitisht commented 6 years ago

@realmbgl can you please share the setup in use? I can try to reproduce this then

realmbgl commented 6 years ago

hi @nitisht, in my case Im using https://github.com/efsavage/hello-world-war.git, and do a mvn build 'clean package'. I want to use the minio plugin to upload the war file that is the result of the build. So for source I specify 'target/hello-world-war-1.0.0.war' for the bucket I specify 'artifacts' as the name.

The bucket gets created but the war file is not uploaded. I also tried with source '.', but nothing is uploaded. Im running Jenkins on dc/os (mesos), build an upload run in jenkins slave.

Is there a way to get some more log output from the minio client on what is null.

thanks for your help, Michael

nitisht commented 6 years ago

@realmbgl here is the config I used for a quick test, could you please confirm if your config looks like this

pasted image at 2018_04_06 07_48 pm pasted image at 2018_04_06 07_48 pm 1 pasted image at 2018_04_06 07_49 pm