Repository navigation
[JENKINS-11366] Jenkins takes up too much space in /var/run #16162
Description
As on newer debian systems /run or /usr/run is now tmpvfs based and allocated to 10% of memory the jenkins startup fails on low-memory systems (512MB ram).
[Winstone 2011/10/16 13:38:21] - Beginning extraction from war file
[Winstone 2011/10/16 13:38:23] - Error initializing web application: prefix []
java.io.IOException: No space left on device
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:282)
at winstone.HostConfiguration.getWebRoot(HostConfiguration.java:273)
at winstone.HostConfiguration.(HostConfiguration.java:73)
at winstone.HostGroup.initHost(HostGroup.java:85)
at winstone.HostGroup.(HostGroup.java:45)
at winstone.Launcher.(Launcher.java:197)
at winstone.Launcher.main(Launcher.java:398)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at Main._main(Main.java:268)
at Main.main(Main.java:96)
The mount command returns this:
none on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
The df command returns this:
none 50M 50M 0 100% /run
I'm not sure about the best solution but jenkins seems by far the biggest user of /run, all other services together use about 10MB. Maybe jenkins could use a different folder to store it's extracted war?
As a temporary fix I change /etc/default/jenkins this way:
#JENKINS_ARGS="--webroot=/var/run/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"
JENKINS_ARGS="--webroot=$JENKINS_HOME/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"
Originally reported by
francisdb, imported from: Jenkins takes up too much space in /var/run
- assignee: oldelvet
- status: Resolved
- priority: Major
- component(s): core
- resolution: Fixed
- resolved: 2011-11-30T18:54:24+00:00
- votes: 1
- watchers: 3
- imported: 2025-11-24
Raw content of original issue
As on newer debian systems /run or /usr/run is now tmpvfs based and allocated to 10% of memory the jenkins startup fails on low-memory systems (512MB ram).
[Winstone 2011/10/16 13:38:21] - Beginning extraction from war file [Winstone 2011/10/16 13:38:23] - Error initializing web application: prefix [] java.io.IOException: No space left on device at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(FileOutputStream.java:282) at winstone.HostConfiguration.getWebRoot(HostConfiguration.java:273) at winstone.HostConfiguration.<init>(HostConfiguration.java:73) at winstone.HostGroup.initHost(HostGroup.java:85) at winstone.HostGroup.<init>(HostGroup.java:45) at winstone.Launcher.<init>(Launcher.java:197) at winstone.Launcher.main(Launcher.java:398) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at Main._main(Main.java:268) at Main.main(Main.java:96)
The mount command returns this: none on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
The df command returns this: none 50M 50M 0 100% /run
I'm not sure about the best solution but jenkins seems by far the biggest user of /run, all other services together use about 10MB. Maybe jenkins could use a different folder to store it's extracted war?
As a temporary fix I change /etc/default/jenkins this way: #JENKINS_ARGS="--webroot=/var/run/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT" JENKINS_ARGS="--webroot=$JENKINS_HOME/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"
- environment:
Ubuntu 11.10 Linode vps
Activity
jenkins-infra-bot commentedon Oct 16, 2011
oldelvet:
Raw content of original comment:
Your description of the problem is very confusing. You mention /opt as being mounted using memory backed storage but I rather suspect you mean /run (which historically includes /var/run too).
That said I can understand the issue that you raise and can see how it could be a problem on low-memory systems. I don't know what the appropriate location would be regarding Debian policy but I'm guessing it would likely be /var/cache/jenkins or something like that.
Basically jenkins currently unpacks the war into /var/run/jenkins and fills it up.
jenkins-infra-bot commentedon Oct 16, 2011
Raw content of original comment:
My excuses for the confusing problem description, I fixed my errors. The problem is indeed that /var/run/jenkins which is a link to /run/jenkins fills up because on a 512MB memory system /run is only ~50MB
jenkins-infra-bot commentedon Nov 15, 2011
tisch:
Raw content of original comment:
I'm getting the same error message on a 512 MB RAM Debian Squeeze system.
Here's the log:
Running from: /usr/share/jenkins/jenkins.war
[Winstone 2011/11/15 12:26:25] - Beginning extraction from war file
[Winstone 2011/11/15 12:28:46] - Error initializing web application: prefix []
java.io.IOException: No space left on device
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:297)
at winstone.HostConfiguration.getWebRoot(HostConfiguration.java:273)
at winstone.HostConfiguration.(HostConfiguration.java:73)
at winstone.HostGroup.initHost(HostGroup.java:85)
at winstone.HostGroup.(HostGroup.java:45)
at winstone.Launcher.(Launcher.java:197)
at winstone.Launcher.main(Launcher.java:398)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at Main._main(Main.java:268)
at Main.main(Main.java:96)
jenkins-infra-bot commentedon Nov 15, 2011
oldelvet:
Raw content of original comment:
I've been doing a bit more research and /var/cache/jenkins looks like the proper place for unpacking the war file. Tomcat6 on Ubuntu (and Debian) puts its Work directory in /var/cache.
I should be able to sort out a patch/pull request in the next day or so.
jenkins-infra-bot commentedon Nov 30, 2011
Raw content of original comment:
Code changed in jenkins
User: Richard Mortimer
Path:
changelog.html
debian/debian/dirs
debian/debian/jenkins.default
debian/debian/jenkins.postinst
debian/debian/jenkins.postrm
http://jenkins-ci.org/commit/jenkins/9714917685e2b50f59b4feda9bc4e561870a944f
Log:
[FIXED JENKINS-11366] Jenkins takes up too much space in /var/run
Use /var/cache/jenkins to hold the unpacked jenkins.war file at runtime.
Compare: a1714c1...9714917
jenkins-infra-bot commentedon Nov 30, 2011
Raw content of original comment:
Integrated in
jenkins_main_trunk #1331
[FIXED JENKINS-11366] Jenkins takes up too much space in /var/run
Kohsuke Kawaguchi : 9714917685e2b50f59b4feda9bc4e561870a944f
Files :
jenkins-infra-bot commentedon Apr 3, 2015
Raw content of original comment:
Code changed in jenkins
User: Richard Mortimer
Path:
debian/dirs
debian/jenkins.default
debian/jenkins.postinst
debian/jenkins.postrm
http://jenkins-ci.org/commit/packaging/b98f3a38238b70d4ab2fd9183a7e8b6b9db39aff
Log:
[FIXED JENKINS-11366] Jenkins takes up too much space in /var/run
Use /var/cache/jenkins to hold the unpacked jenkins.war file at runtime.
Originally-From: jenkins-ci.org/commit/core/9714917685e2b50f59b4feda9bc4e561870a944f
jenkins-infra-bot commentedon Nov 24, 2025
[Original
is_duplicated_byfrom Jira: JENKINS-11365]jenkins-infra-bot commentedon Nov 24, 2025
[Original
is_duplicated_byfrom Jira: JENKINS-11364]