Bugzilla – Bug 1874
NullPointerException, attempting to stop container
Last modified: 2005-12-05 17:10:44
You need to log in before you can comment on or make changes to this bug.
Having had a container runing for over 24hours, I then tried to stop the container using the renewed proxy certificate and got a null pointer exception from the globus-stop-container command There were absolutely NO errors on the container side .. only in the window where I ran the globus-stop-container command. (whether I used the soft option or not make no difference) I wonder if this is associated to bug 1621 . (linux binary download running on NetBSD). This did NOT happen on my Sun system, which also had a container running for 24+ hours. cafe-bastille globus% X509_USER_PROXY=/tmp/x509cp_globus_grim globus-stop-container -debug [org.globus.ogsa.utils.JAXRPCAxisFault] AxisFault faultCode: {http://schemas.xmlsoap.org/ws/2002/04/secext}General faultSubcode: faultString: java.lang.NullPointerException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.NullPointerException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: java.lang.NullPointerException at org.globus.gsi.ptls.PureTLSUtil.certificateChainToVector(PureTLSUtil.java:209) at org.globus.gsi.ptls.PureTLSTrustedCertificates.getX509CertList(PureTLSTrustedCertificates.java:57) at org.globus.gsi.gssapi.GlobusGSSContextImpl.setTrustedCertificates(GlobusGSSContextImpl.java:738) at org.globus.gsi.gssapi.GlobusGSSContextImpl.init(GlobusGSSContextImpl.java:621) at org.globus.gsi.gssapi.GlobusGSSContextImpl.acceptSecContext(GlobusGSSContextImpl.java:265) at org.globus.ogsa.impl.security.authentication.service.AuthenticationServiceImpl.continueTokenExchange(AuthenticationServiceImpl.java:256) at org.globus.ogsa.impl.security.authentication.service.AuthenticationServiceImpl.initTokenExchange(AuthenticationServiceImpl.java:205) 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:324) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:402) at org.globus.ogsa.handlers.RPCURIProvider.invokeMethodSub(RPCURIProvider.java:363) at org.globus.ogsa.handlers.RPCURIProvider.invokeMethod(RPCURIProvider.java:308) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:309) at org.globus.ogsa.handlers.RPCURIProvider.processMessage(RPCURIProvider.java:281) at org.globus.ogsa.router.RedirectProvider.processMessage(RedirectProvider.java:243) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:333) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:481) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323) at org.globus.ogsa.server.ServiceThread.doPost(ServiceThread.java:438) at org.globus.ogsa.server.ServiceThread.process(ServiceThread.java:287) at org.globus.ogsa.server.ServiceThread.run(ServiceThread.java:185) java.lang.NullPointerException at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169) at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1083) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(Unknown Source) at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:252) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538) at org.apache.axis.Message.getSOAPEnvelope(Message.java:376) at org.globus.ogsa.handlers.RoutingHandler.getRouterHeader(RoutingHandler.java:31) at org.globus.ogsa.handlers.RoutingResponseHandler.invoke(RoutingResponseHandler.java:26) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:193) at org.apache.axis.client.Call.invokeEngine(Call.java:2564) at org.apache.axis.client.Call.invoke(Call.java:2553) at org.apache.axis.client.Call.invoke(Call.java:2248) at org.apache.axis.client.Call.invoke(Call.java:2171) at org.apache.axis.client.Call.invoke(Call.java:1691) at org.globus.ogsa.security.authentication.SecureContextEstablishmentSOAPBindingStub.initTokenExchange(SecureContextEstablishmentSOAPBindingStub.java:205) at org.globus.ogsa.impl.security.authentication.Authenticator.authenticate(Authenticator.java:55) at org.globus.ogsa.impl.security.authentication.SecContextHandler.handleRequest(SecContextHandler.java:242) at org.apache.axis.handlers.HandlerChainImpl.handleRequest(HandlerChainImpl.java:136) at org.apache.axis.handlers.JAXRPCHandler.invoke(JAXRPCHandler.java:82) at org.globus.ogsa.utils.JAXRPCHandler.invoke(JAXRPCHandler.java:16) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:167) at org.apache.axis.client.Call.invokeEngine(Call.java:2564) at org.apache.axis.client.Call.invoke(Call.java:2553) at org.apache.axis.client.Call.invoke(Call.java:2248) at org.apache.axis.client.Call.invoke(Call.java:2171) at org.apache.axis.client.Call.invoke(Call.java:1691) at org.globus.ogsa.core.management.bindings.OgsiManagementSOAPBindingStub.shutdown(OgsiManagementSOAPBindingStub.java:1059) at org.globus.ogsa.client.Shutdown.main(Shutdown.java:180) java.lang.NullPointerException at org.globus.ogsa.utils.JAXRPCHandler.invoke(JAXRPCHandler.java:18) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:167) at org.apache.axis.client.Call.invokeEngine(Call.java:2564) at org.apache.axis.client.Call.invoke(Call.java:2553) at org.apache.axis.client.Call.invoke(Call.java:2248) at org.apache.axis.client.Call.invoke(Call.java:2171) at org.apache.axis.client.Call.invoke(Call.java:1691) at org.globus.ogsa.core.management.bindings.OgsiManagementSOAPBindingStub.shutdown(OgsiManagementSOAPBindingStub.java:1059) at org.globus.ogsa.client.Shutdown.main(Shutdown.java:180)
Looks like i'm getting confused over what I'm running where. I get the null pointer exception regardless of whether the container is recent or 24 hrs old. How do I change the subject for this bug >
I asssume your container is running on the same machine and port 8080? Can you do grid-proxy-init -debug -verify as the user that is running the container?
Yes, I am running the container and globus-stop-container on the same machine with the same userid 'globus'. Here is the log of, grid-proxy-init -debug -verify, I also did this on my 'working' Sun installation and got the same output. cafe-bastille globus% grid-cert-info -subject /O=vuw/OU=mcs.user/CN=Globus Grid Software cafe-bastille globus% grid-proxy-init -debug -verify User Cert File: /vol/projects/grid/home/globus/.globus/usercert.pem User Key File: /vol/projects/grid/home/globus/.globus/userkey.pem Trusted CA Cert Dir: /etc/grid-security/certificates Output File: /tmp/x509up_u82 Your identity: /O=vuw/OU=mcs.user/CN=Globus Grid Software Enter GRID pass phrase for this identity: Creating proxy .....++++++++++++ ............++++++++++++ Done ERROR: Couldn't verify the authenticity of the user's credential to generate a proxy from. grid_proxy_init.c:948:globus_credential: Error verifying credential: Failed to verify credential globus_gsi_callback_module: Could not verify credential globus_gsi_callback_module: Could not verify credential globus_gsi_callback_module: Error with signing policy globus_gsi_callback_module: Error in OLD GAA code: CA policy violation: <no reason given>
I've fixed the signing policy file .. and sure enough there was no change to the error. ... cafe-bastille globus% grid-proxy-init -debug -verify User Cert File: /vol/projects/grid/home/globus/.globus/usercert.pem User Key File: /vol/projects/grid/home/globus/.globus/userkey.pem Trusted CA Cert Dir: /etc/grid-security/certificates Output File: /tmp/x509up_u82 Your identity: /O=vuw/OU=mcs.user/CN=Globus Grid Software Enter GRID pass phrase for this identity: Creating proxy ..++++++++++++ ......++++++++++++ Done Proxy Verify OK Your proxy is valid until: Thu Aug 12 23:37:38 2004
solved it .. (solves 1882 too) In, org.globus.util.ConfigUtil.getOS() it checks a list of predfined UNIX-type OSes .. NetBSD is not one of them. This results, in other methods such as discoverCertDirLocation() to simply return null rather than a pathname to a directory. I put this line: (osname.indexOf("netbsd") != -1) || into org.globus.util.ConfigUtil.getOS() at the right place, and the NullPointerExceptions have gone away.
A fix was committed to jglobus cvs. Thanks for catching this.