Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-33088

Can't upload to S3 direct from slaves if there is any "Metadata" field

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • s3-plugin
    • None

      Recently added a Linux build node to our Jenkins setup to build on Jessie, as our upgraded Wheezy wasn't cutting it, so now a job that just runs a build target to generate documentation (doxygen, but not using Jenkins doxygen plugin), then has a "promotion" to upload it to S3 "from slave" is running on that machine instead of on our master node. This has resulted in the promotions failing, with this error that I'll paste in full below, but with the distinguishing line that I can see here: Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair That appears to be the main difference between this log and other similar errors I've found when searching - and the line that I haven't found on other logs.

      After further investigation, it turned out not to be related to the launch method, but to a configuration detail that didn't negatively affect upload from the master node, only from remote nodes. This upload task apparently had an empty "metadata tag" key/value pair added to it at some point in the past, which hadn't caused a problem until the actual promotion/upload occurred on a remote node. Deleting the empty key/value pair did allow for successful completion of the upload. (see screenshot)

      Building remotely on jessie-cloud (8.3 linux-build amd64-Debian Debian jessie ndk build Debian-8.3 amd64 Linux Debian-8 amd64-Debian-8.3) in workspace /home/jenkins/root/workspace/OSVR-Core-Docs
      Promoting OSVR-Core-Docs #220
      Publish artifacts to S3 Bucket Using S3 profile: resource.osvr.com
      Publish artifacts to S3 Bucket bucket=resource.osvr.com/docs/OSVR-Core, file=APIBaseC_8h.html region=us-west-1, upload from slave=true managed=false , server encryption false
      ERROR: Failed to upload files
      java.io.IOException: put Destination [bucketName=resource.osvr.com, objectName=docs/OSVR-Core/APIBaseC_8h.html]: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f:: Failed after 1 tries.
      	at hudson.plugins.s3.S3Profile.upload(S3Profile.java:202)
      	at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182)
      	at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:345)
      	at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:287)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
      	at hudson.model.Run.execute(Run.java:1738)
      	at hudson.model.Run.run(Run.java:1676)
      	at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:232)
      	at hudson.model.ResourceController.execute(ResourceController.java:98)
      	at hudson.model.Executor.run(Executor.java:410)
      Caused by: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
      	at hudson.FilePath.act(FilePath.java:986)
      	at hudson.FilePath.act(FilePath.java:968)
      	at hudson.plugins.s3.S3Profile.upload(S3Profile.java:195)
      	... 9 more
      Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
      	at hudson.remoting.UserRequest.serialize(UserRequest.java:168)
      	at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
      	at hudson.remoting.Channel.call(Channel.java:779)
      	at hudson.FilePath.act(FilePath.java:979)
      	... 11 more
      Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair
      	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
      	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
      	at java.util.ArrayList.writeObject(ArrayList.java:742)
      	at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
      	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
      	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
      	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
      	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
      	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
      	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
      	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
      	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
      	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
      	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
      	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
      	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
      	at hudson.remoting.UserRequest._serialize(UserRequest.java:157)
      	at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
      	... 14 more
      build hudson.plugins.s3.S3BucketPublisher@3b8618d5 UNSTABLE
      

          [JENKINS-33088] Can't upload to S3 direct from slaves if there is any "Metadata" field

          Ryan Pavlik created issue -
          Ryan Pavlik made changes -
          Priority Original: Minor [ 4 ] New: Major [ 3 ]
          Ryan Pavlik made changes -
          Summary Original: Can't upload to S3 directly from SSH-launched *nix slaves New: Can't upload to S3 direct from slaves if there is an empty "Metadata" field
          Ryan Pavlik made changes -
          Description Original: Recently added a Linux build node to our Jenkins setup to build on Jessie, as our upgraded Wheezy wasn't cutting it, so now a job that just runs a build target to generate documentation (doxygen, but not using Jenkins doxygen plugin), then has a "promotion" to upload it to S3 "from slave" is running on that machine instead of on our master node. This has resulted in the promotions failing, with this error that I'll paste in full below, but with the distinguishing line that I can see here: {{Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair }} That appears to be the main difference between this log and other similar errors I've found when searching - and the line that I haven't found on other logs.

          I haven't tried uploading other artifacts from this build node to S3 that I can think of offhand, and I haven't tried launching this node in another way, but this didn't happen when uploading from the linux master node, nor from the Java Web Start/service-launched Windows nodes that upload to S3 (all of which are EC2 and all of which have "upload from slave" checked)

          {{Building remotely on jessie-cloud (8.3 linux-build amd64-Debian Debian jessie ndk build Debian-8.3 amd64 Linux Debian-8 amd64-Debian-8.3) in workspace /home/jenkins/root/workspace/OSVR-Core-Docs
          Promoting OSVR-Core-Docs #220
          Publish artifacts to S3 Bucket Using S3 profile: resource.osvr.com
          Publish artifacts to S3 Bucket bucket=resource.osvr.com/docs/OSVR-Core, file=APIBaseC_8h.html region=us-west-1, upload from slave=true managed=false , server encryption false
          ERROR: Failed to upload files
          java.io.IOException: put Destination [bucketName=resource.osvr.com, objectName=docs/OSVR-Core/APIBaseC_8h.html]: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f:: Failed after 1 tries.
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:202)
          at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:345)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:287)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
          at hudson.model.Run.execute(Run.java:1738)
          at hudson.model.Run.run(Run.java:1676)
          at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:232)
          at hudson.model.ResourceController.execute(ResourceController.java:98)
          at hudson.model.Executor.run(Executor.java:410)
          Caused by: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.FilePath.act(FilePath.java:986)
          at hudson.FilePath.act(FilePath.java:968)
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:195)
          ... 9 more
          Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.remoting.UserRequest.serialize(UserRequest.java:168)
          at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
          at hudson.remoting.Channel.call(Channel.java:779)
          at hudson.FilePath.act(FilePath.java:979)
          ... 11 more
          Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at java.util.ArrayList.writeObject(ArrayList.java:742)
          at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at hudson.remoting.UserRequest._serialize(UserRequest.java:157)
          at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
          ... 14 more
          build hudson.plugins.s3.S3BucketPublisher@3b8618d5 UNSTABLE}}
          New: Recently added a Linux build node to our Jenkins setup to build on Jessie, as our upgraded Wheezy wasn't cutting it, so now a job that just runs a build target to generate documentation (doxygen, but not using Jenkins doxygen plugin), then has a "promotion" to upload it to S3 "from slave" is running on that machine instead of on our master node. This has resulted in the promotions failing, with this error that I'll paste in full below, but with the distinguishing line that I can see here: {{Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair }} That appears to be the main difference between this log and other similar errors I've found when searching - and the line that I haven't found on other logs.

          *After further investigation*, it turned out not to be related to the launch method, but to a configuration detail that didn't negatively affect upload from the master node, only from remote nodes. This upload task apparently had *an empty "metadata tag" key/value pair* added to it at some point in the past, which hadn't caused a problem until the actual promotion/upload occurred on a remote node. *Deleting the empty key/value pair* did allow for successful completion of the upload.


          {{Building remotely on jessie-cloud (8.3 linux-build amd64-Debian Debian jessie ndk build Debian-8.3 amd64 Linux Debian-8 amd64-Debian-8.3) in workspace /home/jenkins/root/workspace/OSVR-Core-Docs
          Promoting OSVR-Core-Docs #220
          Publish artifacts to S3 Bucket Using S3 profile: resource.osvr.com
          Publish artifacts to S3 Bucket bucket=resource.osvr.com/docs/OSVR-Core, file=APIBaseC_8h.html region=us-west-1, upload from slave=true managed=false , server encryption false
          ERROR: Failed to upload files
          java.io.IOException: put Destination [bucketName=resource.osvr.com, objectName=docs/OSVR-Core/APIBaseC_8h.html]: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f:: Failed after 1 tries.
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:202)
          at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:345)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:287)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
          at hudson.model.Run.execute(Run.java:1738)
          at hudson.model.Run.run(Run.java:1676)
          at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:232)
          at hudson.model.ResourceController.execute(ResourceController.java:98)
          at hudson.model.Executor.run(Executor.java:410)
          Caused by: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.FilePath.act(FilePath.java:986)
          at hudson.FilePath.act(FilePath.java:968)
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:195)
          ... 9 more
          Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.remoting.UserRequest.serialize(UserRequest.java:168)
          at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
          at hudson.remoting.Channel.call(Channel.java:779)
          at hudson.FilePath.act(FilePath.java:979)
          ... 11 more
          Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at java.util.ArrayList.writeObject(ArrayList.java:742)
          at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at hudson.remoting.UserRequest._serialize(UserRequest.java:157)
          at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
          ... 14 more
          build hudson.plugins.s3.S3BucketPublisher@3b8618d5 UNSTABLE}}
          Ryan Pavlik made changes -
          Attachment New: screenshot-1.png [ 32011 ]
          Ryan Pavlik made changes -
          Description Original: Recently added a Linux build node to our Jenkins setup to build on Jessie, as our upgraded Wheezy wasn't cutting it, so now a job that just runs a build target to generate documentation (doxygen, but not using Jenkins doxygen plugin), then has a "promotion" to upload it to S3 "from slave" is running on that machine instead of on our master node. This has resulted in the promotions failing, with this error that I'll paste in full below, but with the distinguishing line that I can see here: {{Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair }} That appears to be the main difference between this log and other similar errors I've found when searching - and the line that I haven't found on other logs.

          *After further investigation*, it turned out not to be related to the launch method, but to a configuration detail that didn't negatively affect upload from the master node, only from remote nodes. This upload task apparently had *an empty "metadata tag" key/value pair* added to it at some point in the past, which hadn't caused a problem until the actual promotion/upload occurred on a remote node. *Deleting the empty key/value pair* did allow for successful completion of the upload.


          {{Building remotely on jessie-cloud (8.3 linux-build amd64-Debian Debian jessie ndk build Debian-8.3 amd64 Linux Debian-8 amd64-Debian-8.3) in workspace /home/jenkins/root/workspace/OSVR-Core-Docs
          Promoting OSVR-Core-Docs #220
          Publish artifacts to S3 Bucket Using S3 profile: resource.osvr.com
          Publish artifacts to S3 Bucket bucket=resource.osvr.com/docs/OSVR-Core, file=APIBaseC_8h.html region=us-west-1, upload from slave=true managed=false , server encryption false
          ERROR: Failed to upload files
          java.io.IOException: put Destination [bucketName=resource.osvr.com, objectName=docs/OSVR-Core/APIBaseC_8h.html]: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f:: Failed after 1 tries.
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:202)
          at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:345)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:287)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
          at hudson.model.Run.execute(Run.java:1738)
          at hudson.model.Run.run(Run.java:1676)
          at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:232)
          at hudson.model.ResourceController.execute(ResourceController.java:98)
          at hudson.model.Executor.run(Executor.java:410)
          Caused by: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.FilePath.act(FilePath.java:986)
          at hudson.FilePath.act(FilePath.java:968)
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:195)
          ... 9 more
          Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.remoting.UserRequest.serialize(UserRequest.java:168)
          at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
          at hudson.remoting.Channel.call(Channel.java:779)
          at hudson.FilePath.act(FilePath.java:979)
          ... 11 more
          Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at java.util.ArrayList.writeObject(ArrayList.java:742)
          at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at hudson.remoting.UserRequest._serialize(UserRequest.java:157)
          at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
          ... 14 more
          build hudson.plugins.s3.S3BucketPublisher@3b8618d5 UNSTABLE}}
          New: Recently added a Linux build node to our Jenkins setup to build on Jessie, as our upgraded Wheezy wasn't cutting it, so now a job that just runs a build target to generate documentation (doxygen, but not using Jenkins doxygen plugin), then has a "promotion" to upload it to S3 "from slave" is running on that machine instead of on our master node. This has resulted in the promotions failing, with this error that I'll paste in full below, but with the distinguishing line that I can see here: {{Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair }} That appears to be the main difference between this log and other similar errors I've found when searching - and the line that I haven't found on other logs.

          *After further investigation*, it turned out not to be related to the launch method, but to a configuration detail that didn't negatively affect upload from the master node, only from remote nodes. This upload task apparently had *an empty "metadata tag" key/value pair* added to it at some point in the past, which hadn't caused a problem until the actual promotion/upload occurred on a remote node. *Deleting the empty key/value pair* did allow for successful completion of the upload. (see screenshot)

          !screenshot-1.png|thumbnail!


          {{Building remotely on jessie-cloud (8.3 linux-build amd64-Debian Debian jessie ndk build Debian-8.3 amd64 Linux Debian-8 amd64-Debian-8.3) in workspace /home/jenkins/root/workspace/OSVR-Core-Docs
          Promoting OSVR-Core-Docs #220
          Publish artifacts to S3 Bucket Using S3 profile: resource.osvr.com
          Publish artifacts to S3 Bucket bucket=resource.osvr.com/docs/OSVR-Core, file=APIBaseC_8h.html region=us-west-1, upload from slave=true managed=false , server encryption false
          ERROR: Failed to upload files
          java.io.IOException: put Destination [bucketName=resource.osvr.com, objectName=docs/OSVR-Core/APIBaseC_8h.html]: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f:: Failed after 1 tries.
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:202)
          at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:345)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:287)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
          at hudson.model.Run.execute(Run.java:1738)
          at hudson.model.Run.run(Run.java:1676)
          at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:232)
          at hudson.model.ResourceController.execute(ResourceController.java:98)
          at hudson.model.Executor.run(Executor.java:410)
          Caused by: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.FilePath.act(FilePath.java:986)
          at hudson.FilePath.act(FilePath.java:968)
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:195)
          ... 9 more
          Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.remoting.UserRequest.serialize(UserRequest.java:168)
          at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
          at hudson.remoting.Channel.call(Channel.java:779)
          at hudson.FilePath.act(FilePath.java:979)
          ... 11 more
          Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at java.util.ArrayList.writeObject(ArrayList.java:742)
          at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at hudson.remoting.UserRequest._serialize(UserRequest.java:157)
          at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
          ... 14 more
          build hudson.plugins.s3.S3BucketPublisher@3b8618d5 UNSTABLE}}
          Ryan Pavlik made changes -
          Priority Original: Major [ 3 ] New: Minor [ 4 ]
          Ryan Pavlik made changes -
          Description Original: Recently added a Linux build node to our Jenkins setup to build on Jessie, as our upgraded Wheezy wasn't cutting it, so now a job that just runs a build target to generate documentation (doxygen, but not using Jenkins doxygen plugin), then has a "promotion" to upload it to S3 "from slave" is running on that machine instead of on our master node. This has resulted in the promotions failing, with this error that I'll paste in full below, but with the distinguishing line that I can see here: {{Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair }} That appears to be the main difference between this log and other similar errors I've found when searching - and the line that I haven't found on other logs.

          *After further investigation*, it turned out not to be related to the launch method, but to a configuration detail that didn't negatively affect upload from the master node, only from remote nodes. This upload task apparently had *an empty "metadata tag" key/value pair* added to it at some point in the past, which hadn't caused a problem until the actual promotion/upload occurred on a remote node. *Deleting the empty key/value pair* did allow for successful completion of the upload. (see screenshot)

          !screenshot-1.png|thumbnail!


          {{Building remotely on jessie-cloud (8.3 linux-build amd64-Debian Debian jessie ndk build Debian-8.3 amd64 Linux Debian-8 amd64-Debian-8.3) in workspace /home/jenkins/root/workspace/OSVR-Core-Docs
          Promoting OSVR-Core-Docs #220
          Publish artifacts to S3 Bucket Using S3 profile: resource.osvr.com
          Publish artifacts to S3 Bucket bucket=resource.osvr.com/docs/OSVR-Core, file=APIBaseC_8h.html region=us-west-1, upload from slave=true managed=false , server encryption false
          ERROR: Failed to upload files
          java.io.IOException: put Destination [bucketName=resource.osvr.com, objectName=docs/OSVR-Core/APIBaseC_8h.html]: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f:: Failed after 1 tries.
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:202)
          at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:345)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:287)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
          at hudson.model.Run.execute(Run.java:1738)
          at hudson.model.Run.run(Run.java:1676)
          at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:232)
          at hudson.model.ResourceController.execute(ResourceController.java:98)
          at hudson.model.Executor.run(Executor.java:410)
          Caused by: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.FilePath.act(FilePath.java:986)
          at hudson.FilePath.act(FilePath.java:968)
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:195)
          ... 9 more
          Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.remoting.UserRequest.serialize(UserRequest.java:168)
          at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
          at hudson.remoting.Channel.call(Channel.java:779)
          at hudson.FilePath.act(FilePath.java:979)
          ... 11 more
          Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at java.util.ArrayList.writeObject(ArrayList.java:742)
          at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at hudson.remoting.UserRequest._serialize(UserRequest.java:157)
          at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
          ... 14 more
          build hudson.plugins.s3.S3BucketPublisher@3b8618d5 UNSTABLE}}
          New: Recently added a Linux build node to our Jenkins setup to build on Jessie, as our upgraded Wheezy wasn't cutting it, so now a job that just runs a build target to generate documentation (doxygen, but not using Jenkins doxygen plugin), then has a "promotion" to upload it to S3 "from slave" is running on that machine instead of on our master node. This has resulted in the promotions failing, with this error that I'll paste in full below, but with the distinguishing line that I can see here: {{Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair }} That appears to be the main difference between this log and other similar errors I've found when searching - and the line that I haven't found on other logs.

          *After further investigation*, it turned out not to be related to the launch method, but to a configuration detail that didn't negatively affect upload from the master node, only from remote nodes. This upload task apparently had *an empty "metadata tag" key/value pair* added to it at some point in the past, which hadn't caused a problem until the actual promotion/upload occurred on a remote node. *Deleting the empty key/value pair* did allow for successful completion of the upload. (see screenshot)

          !screenshot-1.png|thumbnail!


          Building remotely on jessie-cloud (8.3 linux-build amd64-Debian Debian jessie ndk build Debian-8.3 amd64 Linux Debian-8 amd64-Debian-8.3) in workspace /home/jenkins/root/workspace/OSVR-Core-Docs
          Promoting OSVR-Core-Docs #220
          Publish artifacts to S3 Bucket Using S3 profile: resource.osvr.com
          Publish artifacts to S3 Bucket bucket=resource.osvr.com/docs/OSVR-Core, file=APIBaseC_8h.html region=us-west-1, upload from slave=true managed=false , server encryption false
          ERROR: Failed to upload files
          java.io.IOException: put Destination [bucketName=resource.osvr.com, objectName=docs/OSVR-Core/APIBaseC_8h.html]: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f:: Failed after 1 tries.
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:202)
          at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:345)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:287)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
          at hudson.model.Run.execute(Run.java:1738)
          at hudson.model.Run.run(Run.java:1676)
          at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:232)
          at hudson.model.ResourceController.execute(ResourceController.java:98)
          at hudson.model.Executor.run(Executor.java:410)
          Caused by: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.FilePath.act(FilePath.java:986)
          at hudson.FilePath.act(FilePath.java:968)
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:195)
          ... 9 more
          Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.remoting.UserRequest.serialize(UserRequest.java:168)
          at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
          at hudson.remoting.Channel.call(Channel.java:779)
          at hudson.FilePath.act(FilePath.java:979)
          ... 11 more
          Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at java.util.ArrayList.writeObject(ArrayList.java:742)
          at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at hudson.remoting.UserRequest._serialize(UserRequest.java:157)
          at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
          ... 14 more
          build hudson.plugins.s3.S3BucketPublisher@3b8618d5 UNSTABLE
          Ryan Pavlik made changes -
          Description Original: Recently added a Linux build node to our Jenkins setup to build on Jessie, as our upgraded Wheezy wasn't cutting it, so now a job that just runs a build target to generate documentation (doxygen, but not using Jenkins doxygen plugin), then has a "promotion" to upload it to S3 "from slave" is running on that machine instead of on our master node. This has resulted in the promotions failing, with this error that I'll paste in full below, but with the distinguishing line that I can see here: {{Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair }} That appears to be the main difference between this log and other similar errors I've found when searching - and the line that I haven't found on other logs.

          *After further investigation*, it turned out not to be related to the launch method, but to a configuration detail that didn't negatively affect upload from the master node, only from remote nodes. This upload task apparently had *an empty "metadata tag" key/value pair* added to it at some point in the past, which hadn't caused a problem until the actual promotion/upload occurred on a remote node. *Deleting the empty key/value pair* did allow for successful completion of the upload. (see screenshot)

          !screenshot-1.png|thumbnail!


          Building remotely on jessie-cloud (8.3 linux-build amd64-Debian Debian jessie ndk build Debian-8.3 amd64 Linux Debian-8 amd64-Debian-8.3) in workspace /home/jenkins/root/workspace/OSVR-Core-Docs
          Promoting OSVR-Core-Docs #220
          Publish artifacts to S3 Bucket Using S3 profile: resource.osvr.com
          Publish artifacts to S3 Bucket bucket=resource.osvr.com/docs/OSVR-Core, file=APIBaseC_8h.html region=us-west-1, upload from slave=true managed=false , server encryption false
          ERROR: Failed to upload files
          java.io.IOException: put Destination [bucketName=resource.osvr.com, objectName=docs/OSVR-Core/APIBaseC_8h.html]: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f:: Failed after 1 tries.
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:202)
          at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:345)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:287)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
          at hudson.model.Run.execute(Run.java:1738)
          at hudson.model.Run.run(Run.java:1676)
          at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:232)
          at hudson.model.ResourceController.execute(ResourceController.java:98)
          at hudson.model.Executor.run(Executor.java:410)
          Caused by: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.FilePath.act(FilePath.java:986)
          at hudson.FilePath.act(FilePath.java:968)
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:195)
          ... 9 more
          Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.remoting.UserRequest.serialize(UserRequest.java:168)
          at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
          at hudson.remoting.Channel.call(Channel.java:779)
          at hudson.FilePath.act(FilePath.java:979)
          ... 11 more
          Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at java.util.ArrayList.writeObject(ArrayList.java:742)
          at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at hudson.remoting.UserRequest._serialize(UserRequest.java:157)
          at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
          ... 14 more
          build hudson.plugins.s3.S3BucketPublisher@3b8618d5 UNSTABLE
          New: Recently added a Linux build node to our Jenkins setup to build on Jessie, as our upgraded Wheezy wasn't cutting it, so now a job that just runs a build target to generate documentation (doxygen, but not using Jenkins doxygen plugin), then has a "promotion" to upload it to S3 "from slave" is running on that machine instead of on our master node. This has resulted in the promotions failing, with this error that I'll paste in full below, but with the distinguishing line that I can see here: {{Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair }} That appears to be the main difference between this log and other similar errors I've found when searching - and the line that I haven't found on other logs.

          *After further investigation*, it turned out not to be related to the launch method, but to a configuration detail that didn't negatively affect upload from the master node, only from remote nodes. This upload task apparently had *an empty "metadata tag" key/value pair* added to it at some point in the past, which hadn't caused a problem until the actual promotion/upload occurred on a remote node. *Deleting the empty key/value pair* did allow for successful completion of the upload. (see screenshot)

          !screenshot-1.png|thumbnail!

          {noformat}
          Building remotely on jessie-cloud (8.3 linux-build amd64-Debian Debian jessie ndk build Debian-8.3 amd64 Linux Debian-8 amd64-Debian-8.3) in workspace /home/jenkins/root/workspace/OSVR-Core-Docs
          Promoting OSVR-Core-Docs #220
          Publish artifacts to S3 Bucket Using S3 profile: resource.osvr.com
          Publish artifacts to S3 Bucket bucket=resource.osvr.com/docs/OSVR-Core, file=APIBaseC_8h.html region=us-west-1, upload from slave=true managed=false , server encryption false
          ERROR: Failed to upload files
          java.io.IOException: put Destination [bucketName=resource.osvr.com, objectName=docs/OSVR-Core/APIBaseC_8h.html]: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f:: Failed after 1 tries.
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:202)
          at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:345)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:287)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
          at hudson.model.Run.execute(Run.java:1738)
          at hudson.model.Run.run(Run.java:1676)
          at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:232)
          at hudson.model.ResourceController.execute(ResourceController.java:98)
          at hudson.model.Executor.run(Executor.java:410)
          Caused by: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.FilePath.act(FilePath.java:986)
          at hudson.FilePath.act(FilePath.java:968)
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:195)
          ... 9 more
          Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.remoting.UserRequest.serialize(UserRequest.java:168)
          at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
          at hudson.remoting.Channel.call(Channel.java:779)
          at hudson.FilePath.act(FilePath.java:979)
          ... 11 more
          Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at java.util.ArrayList.writeObject(ArrayList.java:742)
          at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at hudson.remoting.UserRequest._serialize(UserRequest.java:157)
          at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
          ... 14 more
          build hudson.plugins.s3.S3BucketPublisher@3b8618d5 UNSTABLE
          {noformat}
          Ryan Pavlik made changes -
          Description Original: Recently added a Linux build node to our Jenkins setup to build on Jessie, as our upgraded Wheezy wasn't cutting it, so now a job that just runs a build target to generate documentation (doxygen, but not using Jenkins doxygen plugin), then has a "promotion" to upload it to S3 "from slave" is running on that machine instead of on our master node. This has resulted in the promotions failing, with this error that I'll paste in full below, but with the distinguishing line that I can see here: {{Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair }} That appears to be the main difference between this log and other similar errors I've found when searching - and the line that I haven't found on other logs.

          *After further investigation*, it turned out not to be related to the launch method, but to a configuration detail that didn't negatively affect upload from the master node, only from remote nodes. This upload task apparently had *an empty "metadata tag" key/value pair* added to it at some point in the past, which hadn't caused a problem until the actual promotion/upload occurred on a remote node. *Deleting the empty key/value pair* did allow for successful completion of the upload. (see screenshot)

          !screenshot-1.png|thumbnail!

          {noformat}
          Building remotely on jessie-cloud (8.3 linux-build amd64-Debian Debian jessie ndk build Debian-8.3 amd64 Linux Debian-8 amd64-Debian-8.3) in workspace /home/jenkins/root/workspace/OSVR-Core-Docs
          Promoting OSVR-Core-Docs #220
          Publish artifacts to S3 Bucket Using S3 profile: resource.osvr.com
          Publish artifacts to S3 Bucket bucket=resource.osvr.com/docs/OSVR-Core, file=APIBaseC_8h.html region=us-west-1, upload from slave=true managed=false , server encryption false
          ERROR: Failed to upload files
          java.io.IOException: put Destination [bucketName=resource.osvr.com, objectName=docs/OSVR-Core/APIBaseC_8h.html]: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f:: Failed after 1 tries.
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:202)
          at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:345)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:287)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
          at hudson.model.Run.execute(Run.java:1738)
          at hudson.model.Run.run(Run.java:1676)
          at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:232)
          at hudson.model.ResourceController.execute(ResourceController.java:98)
          at hudson.model.Executor.run(Executor.java:410)
          Caused by: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.FilePath.act(FilePath.java:986)
          at hudson.FilePath.act(FilePath.java:968)
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:195)
          ... 9 more
          Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.remoting.UserRequest.serialize(UserRequest.java:168)
          at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
          at hudson.remoting.Channel.call(Channel.java:779)
          at hudson.FilePath.act(FilePath.java:979)
          ... 11 more
          Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at java.util.ArrayList.writeObject(ArrayList.java:742)
          at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at hudson.remoting.UserRequest._serialize(UserRequest.java:157)
          at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
          ... 14 more
          build hudson.plugins.s3.S3BucketPublisher@3b8618d5 UNSTABLE
          {noformat}
          New: Recently added a Linux build node to our Jenkins setup to build on Jessie, as our upgraded Wheezy wasn't cutting it, so now a job that just runs a build target to generate documentation (doxygen, but not using Jenkins doxygen plugin), then has a "promotion" to upload it to S3 "from slave" is running on that machine instead of on our master node. This has resulted in the promotions failing, with this error that I'll paste in full below, but with the distinguishing line that I can see here: {{Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair}} That appears to be the main difference between this log and other similar errors I've found when searching - and the line that I haven't found on other logs.

          *After further investigation*, it turned out not to be related to the launch method, but to a configuration detail that didn't negatively affect upload from the master node, only from remote nodes. This upload task apparently had *an empty "metadata tag" key/value pair* added to it at some point in the past, which hadn't caused a problem until the actual promotion/upload occurred on a remote node. *Deleting the empty key/value pair* did allow for successful completion of the upload. (see screenshot)

          !screenshot-1.png|thumbnail!

          {noformat}
          Building remotely on jessie-cloud (8.3 linux-build amd64-Debian Debian jessie ndk build Debian-8.3 amd64 Linux Debian-8 amd64-Debian-8.3) in workspace /home/jenkins/root/workspace/OSVR-Core-Docs
          Promoting OSVR-Core-Docs #220
          Publish artifacts to S3 Bucket Using S3 profile: resource.osvr.com
          Publish artifacts to S3 Bucket bucket=resource.osvr.com/docs/OSVR-Core, file=APIBaseC_8h.html region=us-west-1, upload from slave=true managed=false , server encryption false
          ERROR: Failed to upload files
          java.io.IOException: put Destination [bucketName=resource.osvr.com, objectName=docs/OSVR-Core/APIBaseC_8h.html]: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f:: Failed after 1 tries.
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:202)
          at hudson.plugins.s3.S3BucketPublisher.perform(S3BucketPublisher.java:182)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:345)
          at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:287)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
          at hudson.model.Run.execute(Run.java:1738)
          at hudson.model.Run.run(Run.java:1676)
          at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:232)
          at hudson.model.ResourceController.execute(ResourceController.java:98)
          at hudson.model.Executor.run(Executor.java:410)
          Caused by: java.io.IOException: remote file operation failed: /home/jenkins/root/workspace/OSVR-Core-Docs/build/docs-external/html/APIBaseC_8h.html at hudson.remoting.Channel@763d94d0:jessie-cloud: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.FilePath.act(FilePath.java:986)
          at hudson.FilePath.act(FilePath.java:968)
          at hudson.plugins.s3.S3Profile.upload(S3Profile.java:195)
          ... 9 more
          Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@5eda3a2f
          at hudson.remoting.UserRequest.serialize(UserRequest.java:168)
          at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
          at hudson.remoting.Channel.call(Channel.java:779)
          at hudson.FilePath.act(FilePath.java:979)
          ... 11 more
          Caused by: java.io.NotSerializableException: hudson.plugins.s3.MetadataPair
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at java.util.ArrayList.writeObject(ArrayList.java:742)
          at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
          at hudson.remoting.UserRequest._serialize(UserRequest.java:157)
          at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
          ... 14 more
          build hudson.plugins.s3.S3BucketPublisher@3b8618d5 UNSTABLE
          {noformat}
          Ryan Pavlik made changes -
          Summary Original: Can't upload to S3 direct from slaves if there is an empty "Metadata" field New: Can't upload to S3 direct from slaves if there is any "Metadata" field

            Unassigned Unassigned
            rpavlik Ryan Pavlik
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: