smpatch: IOException: Not enough space?

One of my favorite things about the Sun UC software is that I never know what error I'm going to get next. The endless variety really tweaks my sense of adventure!

I just did a patch run on 12/01/06 on five Solaris 10 systems via our LPS. True to form, even that run had its problems, but ultimately completed successfully. This week I run a smpatch analyze, which dutifully produces a list of about a half dozen new patches on 4 of the systems, and fails on the 5th, with the following error spewed out to the screen:

bash-3.00# smpatch analyze

java.io.IOException: Not enough space

at java.lang.UNIXProcess.forkAndExec(Native Method)

at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)

at java.lang.ProcessImpl.start(ProcessImpl.java:65)

at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)

at java.lang.Runtime.exec(Runtime.java:591)

at java.lang.Runtime.exec(Runtime.java:429)

at java.lang.Runtime.exec(Runtime.java:326)

at com.sun.patchpro.util.CCRCmdLine.exec(CCRCmdLine.java:196)

at com.sun.patchpro.util.CCRCmdLine.get(CCRCmdLine.java:86)

at com.sun.patchpro.util.Downloader.connectToURL(Downloader.java:299)

at com.sun.patchpro.util.CachingDownloader.establishConnection(CachingDownloader.java:584)

at com.sun.patchpro.util.CachingDownloader.setSourceURL(CachingDownloader.java:274)

at com.sun.patchpro.util.CachingDownloader.setupCache(CachingDownloader.java:200)

at com.sun.patchpro.util.CachingDownloader.<init>(CachingDownloader.java:185)

at com.sun.patchpro.server.ServerPatchServiceProvider.downloadFile(ServerPatchServiceProvider.java:947)

at com.sun.patchpro.server.ServerPatchServiceProvider.downloadEntitlementFile(ServerPatchServiceProvider.java:1019)

at com.sun.patchpro.server.PatchServerProxy.downloadEntitlementFile(PatchServerProxy.java:210)

at com.sun.patchpro.cli.PatchServices.getEntitlementList(PatchServices.java:1931)

at com.sun.patchpro.cli.PatchServices.getEntitledPatchList(PatchServices.java:2064)

at com.sun.patchpro.cli.PatchServices.displayPatchList(PatchServices.java:783)

at com.sun.patchpro.cli.PatchServices.main(PatchServices.java:611)

Thu Dec 07 10:04:43 EST 2006(ERROR)=> com.sun.patchpro.log.SunOSSystemLogger@7e5619 <=Error: Unable to write to syslog file

Thu Dec 07 10:04:43 EST 2006(ERROR)=> com.sun.patchpro.log.SunOSSystemLogger@7e5619 <=java.io.IOException: Not enough space

at java.lang.UNIXProcess.forkAndExec(Native Method)

at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)

at java.lang.ProcessImpl.start(ProcessImpl.java:65)

at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)

at java.lang.Runtime.exec(Runtime.java:591)

at java.lang.Runtime.exec(Runtime.java:464)

at com.sun.patchpro.log.SunOSSystemLogger.print(SunOSSystemLogger.java:93)

at com.sun.patchpro.log.ApplicationLog.print(ApplicationLog.java:379)

at com.sun.patchpro.log.PatchProLog.printStackTrace(PatchProLog.java:139)

at com.sun.patchpro.util.CCRCmdLine.get(CCRCmdLine.java:106)

at com.sun.patchpro.util.Downloader.connectToURL(Downloader.java:299)

at com.sun.patchpro.util.CachingDownloader.establishConnection(CachingDownloader.java:584)

at com.sun.patchpro.util.CachingDownloader.setSourceURL(CachingDownloader.java:274)

at com.sun.patchpro.util.CachingDownloader.setupCache(CachingDownloader.java:200)

at com.sun.patchpro.util.CachingDownloader.<init>(CachingDownloader.java:185)

at com.sun.patchpro.server.ServerPatchServiceProvider.downloadFile(ServerPatchServiceProvider.java:947)

at com.sun.patchpro.server.ServerPatchServiceProvider.downloadEntitlementFile(ServerPatchServiceProvider.java:1019)

at com.sun.patchpro.server.PatchServerProxy.downloadEntitlementFile(PatchServerProxy.java:210)

at com.sun.patchpro.cli.PatchServices.getEntitlementList(PatchServices.java:1931)

at com.sun.patchpro.cli.PatchServices.getEntitledPatchList(PatchServices.java:2064)

at com.sun.patchpro.cli.PatchServices.displayPatchList(PatchServices.java:783)

at com.sun.patchpro.cli.PatchServices.main(PatchServices.java:611)

Thu Dec 07 10:04:43 EST 2006(ERROR)=> com.sun.patchpro.log.SunOSSystemLogger@7e5619 <=Error: Unable to write to syslog file

Thu Dec 07 10:04:43 EST 2006(ERROR)=> com.sun.patchpro.log.SunOSSystemLogger@7e5619 <=java.io.IOException: Not enough space

at java.lang.UNIXProcess.forkAndExec(Native Method)

at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)

at java.lang.ProcessImpl.start(ProcessImpl.java:65)

at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)

at java.lang.Runtime.exec(Runtime.java:591)

at java.lang.Runtime.exec(Runtime.java:464)

at com.sun.patchpro.log.SunOSSystemLogger.print(SunOSSystemLogger.java:93)

at com.sun.patchpro.log.ApplicationLog.print(ApplicationLog.java:379)

at com.sun.patchpro.log.PatchProLog.printStackTrace(PatchProLog.java:139)

at com.sun.patchpro.util.CCRCmdLine.get(CCRCmdLine.java:106)

at com.sun.patchpro.util.Downloader.connectToURL(Downloader.java:299)

at com.sun.patchpro.util.CachingDownloader.establishConnection(CachingDownloader.java:584)

at com.sun.patchpro.util.CachingDownloader.setSourceURL(CachingDownloader.java:274)

at com.sun.patchpro.util.CachingDownloader.setupCache(CachingDownloader.java:200)

at com.sun.patchpro.util.CachingDownloader.<init>(CachingDownloader.java:185)

at com.sun.patchpro.server.ServerPatchServiceProvider.downloadFile(ServerPatchServiceProvider.java:947)

at com.sun.patchpro.server.ServerPatchServiceProvider.downloadEntitlementFile(ServerPatchServiceProvider.java:1019)

at com.sun.patchpro.server.PatchServerProxy.downloadEntitlementFile(PatchServerProxy.java:210)

at com.sun.patchpro.cli.PatchServices.getEntitlementList(PatchServices.java:1931)

at com.sun.patchpro.cli.PatchServices.getEntitledPatchList(PatchServices.java:2064)

at com.sun.patchpro.cli.PatchServices.displayPatchList(PatchServices.java:783)

at com.sun.patchpro.cli.PatchServices.main(PatchServices.java:611)

Thu Dec 07 10:04:43 EST 2006(ERROR)=> com.sun.patchpro.log.SunOSSystemLogger@7e5619 <=Error: Unable to write to syslog file

Thu Dec 07 10:04:43 EST 2006(ERROR)=> com.sun.patchpro.log.SunOSSystemLogger@7e5619 <=java.io.IOException: Not enough space

at java.lang.UNIXProcess.forkAndExec(Native Method)

at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)

at java.lang.ProcessImpl.start(ProcessImpl.java:65)

at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)

at java.lang.Runtime.exec(Runtime.java:591)

at java.lang.Runtime.exec(Runtime.java:464)

at com.sun.patchpro.log.SunOSSystemLogger.print(SunOSSystemLogger.java:93)

at com.sun.patchpro.log.ApplicationLog.print(ApplicationLog.java:379)

at com.sun.patchpro.log.PatchProLog.printStackTrace(PatchProLog.java:139)

at com.sun.patchpro.util.CCRCmdLine.get(CCRCmdLine.java:106)

at com.sun.patchpro.util.Downloader.connectToURL(Downloader.java:299)

at com.sun.patchpro.util.CachingDownloader.establishConnection(CachingDownloader.java:584)

at com.sun.patchpro.util.CachingDownloader.setSourceURL(CachingDownloader.java:274)

at com.sun.patchpro.util.CachingDownloader.setupCache(CachingDownloader.java:200)

at com.sun.patchpro.util.CachingDownloader.<init>(CachingDownloader.java:185)

at com.sun.patchpro.server.ServerPatchServiceProvider.downloadFile(ServerPatchServiceProvider.java:947)

at com.sun.patchpro.server.ServerPatchServiceProvider.downloadEntitlementFile(ServerPatchServiceProvider.java:1019)

at com.sun.patchpro.server.PatchServerProxy.downloadEntitlementFile(PatchServerProxy.java:210)

at com.sun.patchpro.cli.PatchServices.getEntitlementList(PatchServices.java:1931)

at com.sun.patchpro.cli.PatchServices.getEntitledPatchList(PatchServices.java:2064)

at com.sun.patchpro.cli.PatchServices.displayPatchList(PatchServices.java:783)

at com.sun.patchpro.cli.PatchServices.main(PatchServices.java:611)

Thu Dec 07 10:04:43 EST 2006(ERROR)=> com.sun.patchpro.util.CachingDownloader@19ce47a <=java.lang.RuntimeException: Cannot exec /usr/lib/cc-ccr/bin/ccr -g cns.assetid: java.io.IOException: Not enough space

at com.sun.patchpro.util.CCRCmdLine.exec(CCRCmdLine.java:236)

at com.sun.patchpro.util.CCRCmdLine.get(CCRCmdLine.java:86)

at com.sun.patchpro.util.Downloader.connectToURL(Downloader.java:299)

at com.sun.patchpro.util.CachingDownloader.establishConnection(CachingDownloader.java:584)

at com.sun.patchpro.util.CachingDownloader.setSourceURL(CachingDownloader.java:274)

at com.sun.patchpro.util.CachingDownloader.setupCache(CachingDownloader.java:200)

at com.sun.patchpro.util.CachingDownloader.<init>(CachingDownloader.java:185)

at com.sun.patchpro.server.ServerPatchServiceProvider.downloadFile(ServerPatchServiceProvider.java:947)

at com.sun.patchpro.server.ServerPatchServiceProvider.downloadEntitlementFile(ServerPatchServiceProvider.java:1019)

at com.sun.patchpro.server.PatchServerProxy.downloadEntitlementFile(PatchServerProxy.java:210)

at com.sun.patchpro.cli.PatchServices.getEntitlementList(PatchServices.java:1931)

at com.sun.patchpro.cli.PatchServices.getEntitledPatchList(PatchServices.java:2064)

at com.sun.patchpro.cli.PatchServices.displayPatchList(PatchServices.java:783)

at com.sun.patchpro.cli.PatchServices.main(PatchServices.java:611)

It's not a simple matter of "no space":

bash-3.00# df -h

Filesystem sizeused avail capacity Mounted on

/dev/dsk/c1t0d0s011G4.8G5.7G46%/

/devices0K0K0K0%/devices

ctfs 0K0K0K0%/system/contract

proc 0K0K0K0%/proc

mnttab0K0K0K0%/etc/mnttab

swap513M1.0M512M1%/etc/svc/volatile

objfs0K0K0K0%/system/object

fd0K0K0K0%/dev/fd

/dev/dsk/c1t0d0s55.8G1.6G4.1G29%/var

swap514M2.4M512M1%/tmp

swap512M56K512M1%/var/run

/dev/dsk/c1t1d0s030G5.4G24G19%/home

/dev/dsk/c1t1d0s130G5.4G24G19%/opt/local

/dev/md/dsk/d10269G7.0G260G3%/oracle

Looks like plenty of space to me. I did a "touch /var/foo" just to make sure the filesystem was writable. It worked as expected. So I'm kindof at a loss here.

Here's the "smpatch get" output:

bash-3.00# smpatch get

patchpro.backout.directory-""

patchpro.baseline.directory-/var/sadm/spool

patchpro.download.directory-/var/sadm/spool

patchpro.install.types -rebootafter:reconfigafter:standard

patchpro.patch.sourcehttp://OBFUSCATED:3816/solaris/https://getupdates1.sun.com/

patchpro.patchset-current

patchpro.proxy.host -""

patchpro.proxy.passwd********

patchpro.proxy.port -8080

patchpro.proxy.user -""

More config stuff...

bash-3.00# /usr/lib/cc-ccr/bin/ccr -k | xargs -t -n 1 /usr/lib/cc-ccr/bin/ccr -g

/usr/lib/cc-ccr/bin/ccr -g 17

Property not defined: 17

/usr/lib/cc-ccr/bin/ccr -g cns.assetid

/usr/lib/cc-ccr/bin/ccr -g cns.ccr.keyGenPath

/usr/lib/cc-ccr/bin/ccrKeyGen

/usr/lib/cc-ccr/bin/ccr -g cns.clientid

/usr/lib/cc-ccr/bin/ccr -g cns.httpproxy.auth

/usr/lib/cc-ccr/bin/ccr -g cns.httpproxy.ipaddr

/usr/lib/cc-ccr/bin/ccr -g cns.httpproxy.port

/usr/lib/cc-ccr/bin/ccr -g cns.regtoken

/usr/lib/cc-ccr/bin/ccr -g cns.security.password

/usr/lib/cc-ccr/bin/ccr -g cns.security.privatekey

/usr/lib/cc-ccr/bin/ccr -g cns.security.publickey

/usr/lib/cc-ccr/bin/ccr -g cns.swup.UMautolaunch

false

/usr/lib/cc-ccr/bin/ccr -g cns.swup.autoAnalysis.enabled

true

/usr/lib/cc-ccr/bin/ccr -g cns.swup.checkinInterval

2

/usr/lib/cc-ccr/bin/ccr -g cns.swup.lastCheckin

0

/usr/lib/cc-ccr/bin/ccr -g cns.swup.patchbaseline

current

/usr/lib/cc-ccr/bin/ccr -g cns.swup.regRequired

true

/usr/lib/cc-ccr/bin/ccr -g cns.transport.serverurl

...and...

bash-3.00# java -version

java version"1.5.0_09"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b03)

Java HotSpot(TM) Server VM (build 1.5.0_09-b03, mixed mode)

Help please?!?

-cw-

[12819 byte] By [CharlieW] at [2007-11-26 12:00:33]
# 1
HiPlease have a check in the cache dir on the client _and_ on the Update Connection Proxy. Check if it is also writeable. Try freeing up some of that particular filesystem, rather than just /var/foo in case there is a cache size limit reached somewhere.Let us know.
ForumModerator at 2007-7-7 12:23:31 > top of Java-index,Administration Tools,Sun Update Connection-System...
# 2
I don't think this is an updatemanager problem. Quite simply UM tried to exec another process and that failed. The OS execvp method returns ENOMEM and that translates to "Not enough space".In other words there was not enough memory available on the system to the exec the new
davidholmes at 2007-7-7 12:23:31 > top of Java-index,Administration Tools,Sun Update Connection-System...