Details
-
Bug
-
Status: Resolved (View Workflow)
-
Critical
-
Resolution: Fixed
-
Debian 2.6.32-5-amd
Description
Hi,
We have encountered problems when using File parameter in our jobs.
How to reproduce problem:
1) create job
2) mark "This build is parametrized"
2a) Add Parameter - File Parameter
2b) File location - "data.file"
2c) description - "plik"
3) Build
3a) Add build step - Execute shell:
ls -la
mv data.file data.zip
sleep 10
rm *
4) trigger new job and use big *.zip file as parameter (~150MB)
During file upload on master in /tmp directory new file will be created - for example "upload_6e074d3b_136c03af218__8000_00000013.tmp".
When job finish this *.tmp file usually is deleted automatically - and here our problems are starting.
In build.xml additional note is added:
<file class="org.apache.commons.fileupload.disk.DiskFileItem" serialization="custom">
<org.apache.commons.fileupload.disk.DiskFileItem>
<default>
<isFormField>false</isFormField>
<size>153052917</size>
<sizeThreshold>10240</sizeThreshold>
<contentType>application/zip</contentType>
<dfosFile>/tmp/upload_6e074d3b_136c03af218__8000_00000013.tmp</dfosFile>
<fieldName>file0</fieldName>
<fileName>WN6.0_MP4.4_22.12.zip</fileName>
</default>
</org.apache.commons.fileupload.disk.DiskFileItem>
</file>
When we are restarting jenkins it is not able to read this jobs because this temporary file do not exists - job history is not visible from Jenkins but builds exists on machine. Error message after Jenkins restart:
...
Caused by: com.thoughtworks.xstream.converters.ConversionException: Could not call org.apache.commons.fileupload.disk.DiskFileItem.readObject() : /tmp/upload_6e074d3b_136c03af218__8000_00000013.tmp (No such file or directory)
---- Debugging information ----
message : Could not call org.apache.commons.fileupload.disk.DiskFileItem.readObject()
cause-exception : java.io.FileNotFoundException
cause-message : /tmp/upload_6e074d3b_136c03af218__8000_00000013.tmp (No such file or directory)
class : hudson.model.FreeStyleBuild
required-type : org.apache.commons.fileupload.disk.DiskFileItem
path : /build/actions/hudson.model.ParametersAction/parameters/hudson.model.FileParameterValue/file/org.apache.commons.fileupload.disk.DiskFileItem
line number : 32
-------------------------------
...
Could you please help to check this?
Attachments
Issue Links
- is duplicated by
-
JENKINS-12219 Missing builds after restart due to error loading FileParameters
-
- Resolved
-
-
JENKINS-11938 Jenkins loses builds when restarted
-
- Closed
-
- is related to
-
JENKINS-21024 Miscellaneous exceptions in config.xml can prevent entire job from loading
-
- Resolved
-
Code changed in jenkins
User: Jesse Glick
Path:
changelog.html
core/src/main/java/hudson/model/FileParameterValue.java
http://jenkins-ci.org/commit/jenkins/4dde24e62037439b7b73addd7cefae83a254eb3c
Log:
[FIXED JENKINS-13536] Using file parameters could cause build records to not load.
Solves the issue for newly created builds by not attempting to persist the original file upload record, which is useless after the build has run (the fileParameters dir in the build already archives them).
Does not help loading pre-fix builds in which the upload temp file has been deleted; for these, you must manually delete <file class="org.apache.commons.fileupload.disk.DiskFileItem" serialization="custom">…</file> from the build.xml.
(Did not find a straightforward way to just instruct XStream to ignore this bit of XML: it is easy to avoid serializing a field, but deserializing is different.)