Prefetch Technologies // Keeping your cache lines cozy

More Solaris smpatch chaos

I have written several times about the deficiencies in Sun's smpatch utility. While attempting to use the broken sconadm utility to register a new server this weekend, I got the following error:

$ sconadm register -a -r RegistrationProfile
sconadm is running
Authenticating user ...
Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
at $Proxy5.getOfferingInstanceName(Unknown Source)
at
com.sun.cns.basicreg.cacao.SWUPOMCacaoAdapter.getSWUPOfferingInstanceMBean(SWUPO
MCacaoAdapter.java:145)
at
com.sun.cns.basicreg.cacao.SWUPOMCacaoAdapter.setSWUPPortalEnabled(SWUPOMCacaoAd
apter.java:301)
at com.sun.cns.basicreg.BasicRegCLI.run(BasicRegCLI.java:758)
at com.sun.cns.basicreg.BasicRegCLI.main(BasicRegCLI.java:562) Caused by:
javax.management.InstanceNotFoundException:com.sun.scn:name=SWUPOfferingFactory,
assetSubProfile=TODO,host=10.10.2.4,assetProfile=OperatingSystem,scnType=Offerin
gFactory,Vendor=Sun Microsystems Inc
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServe
rInterceptor.java:1010)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getClassLoaderFor(DefaultM
BeanServerInterceptor.java:1349)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.getClassLoaderFor(JmxMBeanServer.java:130
0)
at
com.sun.jdmk.interceptor.DefaultMBeanServerInterceptor.getClassLoaderFor(Default
MBeanServerInterceptor.java:285)
at
com.sun.cacao.agent.DispatchInterceptor.getClassLoaderFor(DispatchInterceptor.ja
va:474)
at
com.sun.cacao.agent.auth.impl.AccessControlInterceptor.getClassLoaderFor(AccessC
ontrolInterceptor.java:427)
at
com.sun.jdmk.JdmkMBeanServerImpl.getClassLoaderFor(JdmkMBeanServerImpl.java:1130
)
at
com.sun.cacao.common.instrum.impl.InstrumDefaultForwarder.getClassLoaderFor(Inst
rumDefaultForwarder.java:153)
at
javax.management.remote.rmi.RMIConnectionImpl$4.run(RMIConnectionImpl.java:1306)
at java.security.AccessController.doPrivileged(Native Method)
at
javax.management.remote.rmi.RMIConnectionImpl.getClassLoaderFor(RMIConnectionImp
l.java:1303)
at
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:766)
at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.
java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
at javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(Unknown Source)
at
javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIC
onnector.java:969)
at
javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandle
r.java:201)
... 5 more

The Solaris patch management forums seem to indicate that a fair number of people are running into this problem, but unfortunately no solutions are available to address this. I can understand having bugs creep into software, but I am starting to wonder if anyone at Sun is actually doing QE on the patchrpo utilities? Anyone care to wager a guess at what that java stack trace means? ;)