Ticket #214 (closed defect: invalid)

Opened 8 years ago

Last modified 8 years ago

Possible authorization issue in Guard.java

Reported by: ibaldin Owned by: ibaldin
Priority: major Milestone: Camano 3.1
Component: ORCA: Shirako Core Version: Camano 3.1
Keywords: Cc: vjo

Description

After restarting broker, the AM, which was not restarted, under some combination of conditions was not able to create a delegation to the restarted broker (the original delegation was deleted in the AM). Authorization error was thrown

See r3271 for clues.

Change History

Changed 8 years ago by ibaldin

From Victor 07/25/2011:

We were having repeatable auth failures on trying to claim resources.
The auth failures resolved when the config.xml on the AM was updated so that all of the pool end times were no longer in the past (the config.xml on our not re-started AM was previously 6/30/2011; doing a restart with state recovery did not solve the issue; doing a "clean" restart (no state recovery) did not solve the issue; doing a deploy of a fresh build from trunk into a "pristine" container did not solve the issue; changing the pool <end></end> on the AM to 9/30/2011 solved the issue).

Bad pool end time should not result in an auth failure for the broker (just seems semantically wrong) - so, definitely a bug.

Changed 8 years ago by anirban

This happens under the following scenario when the broker relinquishes the delegations from duke and later tries to re-claim from duke again.

The exception stack trace:

An error occurred. Error code: -11000 : Internal error.

Error Message: Claim failed: notices=Reservation 2f668cda-ef03-4369-82f9-443c4dadc62f (Slice ndl-broker) is in state [Failed,None], err=Failing reservation due to non-recoverable RPC error (RemoteError?), message=RPC failed at remote actor. mesage:Authorization Exception Exception stack trace: orca.security.Guard.checkOwner(Guard.java:97) orca.security.Guard.checkReserve(Guard.java:85) orca.security.AccessMonitor?.checkReserve(AccessMonitor?.java:80) orca.shirako.kernel.KernelWrapper?.claimRequest(KernelWrapper?.java:128) orca.shirako.core.Authority.claim(Authority.java:104) orca.shirako.core.Authority.processIncomingRPC(Authority.java:507) orca.shirako.core.Actor.processIncomingRPC(Actor.java:993) orca.shirako.core.Authority.tickHandler(Authority.java:342) orca.shirako.core.Actor.externalTick(Actor.java:360) orca.shirako.kernel.RealtimeTick?$TickWrapper?.run(RealtimeTick?.java:139) , stack=Exception stack trace: orca.shirako.kernel.RPCManager.doDispatchIncomingRPC(RPCManager.java:472) orca.shirako.kernel.RPCManager.dispatchIncoming(RPCManager.java:229) orca.shirako.proxies.soapaxis2.services.ActorServiceSkeleton?.doDispatch(ActorServiceSkeleton?.java:206) orca.shirako.proxies.soapaxis2.services.ActorServiceSkeleton?.failedRPC(ActorServiceSkeleton?.java:383) orca.shirako.proxies.soapaxis2.services.BrokerServiceMessageReceiverInOut?.invokeBusinessLogic(BrokerServiceMessageReceiverInOut?.java:157) org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver?.receive(AbstractInOutSyncMessageReceiver?.java:39) org.apache.axis2.engine.AxisEngine?.receive(AxisEngine?.java:497) org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:328) org.apache.axis2.transport.http.AxisServlet?.doPost(AxisServlet?.java:254) javax.servlet.http.HttpServlet?.service(HttpServlet?.java:709) javax.servlet.http.HttpServlet?.service(HttpServlet?.java:802) org.apache.catalina.core.ApplicationFilterChain?.internalDoFilter(ApplicationFilterChain?.java:252) org.apache.catalina.core.ApplicationFilterChain?.doFilter(ApplicationFilterChain?.java:173) org.apache.catalina.core.StandardWrapperValve?.invoke(StandardWrapperValve?.java:213) org.apache.catalina.core.StandardContextValve?.invoke(StandardContextValve?.java:178) org.apache.catalina.authenticator.AuthenticatorBase?.invoke(AuthenticatorBase?.java:432) org.apache.catalina.core.StandardHostValve?.invoke(StandardHostValve?.java:126) org.apache.catalina.valves.ErrorReportValve?.invoke(ErrorReportValve?.java:105) org.apache.catalina.core.StandardEngineValve?.invoke(StandardEngineValve?.java:107) org.apache.catalina.connector.CoyoteAdapter?.service(CoyoteAdapter?.java:148) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) org.apache.tomcat.util.net.PoolTcpEndpoint?.processSocket(PoolTcpEndpoint?.java:527) org.apache.tomcat.util.net.LeaderFollowerWorkerThread?.runIt(LeaderFollowerWorkerThread?.java:80) org.apache.tomcat.util.threads.ThreadPool?$ControlRunnable?.run(ThreadPool?.java:684) java.lang.Thread.run(Thread.java:619)

Error Details: Show/Hide

Claim failed: notices=Reservation 2f668cda-ef03-4369-82f9-443c4dadc62f (Slice ndl-broker) is in state [Failed,None], err=Failing reservation due to non-recoverable RPC error (RemoteError?), message=RPC failed at remote actor. mesage:Authorization Exception Exception stack trace:
orca.security.Guard.checkOwner(Guard.java:97)
orca.security.Guard.checkReserve(Guard.java:85)
orca.security.AccessMonitor?.checkReserve(AccessMonitor?.java:80)
orca.shirako.kernel.KernelWrapper?.claimRequest(KernelWrapper?.java:128)
orca.shirako.core.Authority.claim(Authority.java:104)
orca.shirako.core.Authority.processIncomingRPC(Authority.java:507)
orca.shirako.core.Actor.processIncomingRPC(Actor.java:993)
orca.shirako.core.Authority.tickHandler(Authority.java:342)
orca.shirako.core.Actor.externalTick(Actor.java:360)
orca.shirako.kernel.RealtimeTick?$TickWrapper?.run(RealtimeTick?.java:139)
, stack=Exception stack trace:
orca.shirako.kernel.RPCManager.doDispatchIncomingRPC(RPCManager.java:472)
orca.shirako.kernel.RPCManager.dispatchIncoming(RPCManager.java:229)
orca.shirako.proxies.soapaxis2.services.ActorServiceSkeleton?.doDispatch(ActorServiceSkeleton?.java:206)
orca.shirako.proxies.soapaxis2.services.ActorServiceSkeleton?.failedRPC(ActorServiceSkeleton?.java:383)
orca.shirako.proxies.soapaxis2.services.BrokerServiceMessageReceiverInOut?.invokeBusinessLogic(BrokerServiceMessageReceiverInOut?.java:157)
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver?.receive(AbstractInOutSyncMessageReceiver?.java:39)
org.apache.axis2.engine.AxisEngine?.receive(AxisEngine?.java:497)
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:328)
org.apache.axis2.transport.http.AxisServlet?.doPost(AxisServlet?.java:254)
javax.servlet.http.HttpServlet?.service(HttpServlet?.java:709)
javax.servlet.http.HttpServlet?.service(HttpServlet?.java:802)
org.apache.catalina.core.ApplicationFilterChain?.internalDoFilter(ApplicationFilterChain?.java:252)
org.apache.catalina.core.ApplicationFilterChain?.doFilter(ApplicationFilterChain?.java:173)
org.apache.catalina.core.StandardWrapperValve?.invoke(StandardWrapperValve?.java:213)
org.apache.catalina.core.StandardContextValve?.invoke(StandardContextValve?.java:178)
org.apache.catalina.authenticator.AuthenticatorBase?.invoke(AuthenticatorBase?.java:432)
org.apache.catalina.core.StandardHostValve?.invoke(StandardHostValve?.java:126)
org.apache.catalina.valves.ErrorReportValve?.invoke(ErrorReportValve?.java:105)
org.apache.catalina.core.StandardEngineValve?.invoke(StandardEngineValve?.java:107)
org.apache.catalina.connector.CoyoteAdapter?.service(CoyoteAdapter?.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint?.processSocket(PoolTcpEndpoint?.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread?.runIt(LeaderFollowerWorkerThread?.java:80)
org.apache.tomcat.util.threads.ThreadPool?$ControlRunnable?.run(ThreadPool?.java:684)
java.lang.Thread.run(Thread.java:619)

Exception stack trace:
orca.shirako.core.Broker.claim(Broker.java:233)
orca.manage.extensions.standard.actors.AgentManagerObject?.claimResources(AgentManagerObject?.java:374)
orca.manage.extensions.standard.actors.proxies.local.LocalAgentManagementProxy?.claimResources(LocalAgentManagementProxy?.java:76)
sun.reflect.NativeMethodAccessorImpl?.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl?.invoke(NativeMethodAccessorImpl?.java:39)
sun.reflect.DelegatingMethodAccessorImpl?.invoke(DelegatingMethodAccessorImpl?.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.velocity.util.introspection.UberspectImpl?$VelMethodImpl?.invoke(UberspectImpl?.java:267)
org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:197)
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:175)
org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:327)
org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:51)
org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:95)
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:70)
org.apache.velocity.runtime.parser.node.SimpleNode?.render(SimpleNode?.java:230)
org.apache.velocity.Template.merge(Template.java:256)
org.apache.velocity.tools.view.servlet.VelocityLayoutServlet?.mergeTemplate(Unknown Source)
org.apache.velocity.tools.view.servlet.VelocityViewServlet?.doRequest(Unknown Source)
org.apache.velocity.tools.view.servlet.VelocityViewServlet?.doPost(Unknown Source)
javax.servlet.http.HttpServlet?.service(HttpServlet?.java:709)
javax.servlet.http.HttpServlet?.service(HttpServlet?.java:802)
org.apache.catalina.core.ApplicationFilterChain?.internalDoFilter(ApplicationFilterChain?.java:252)
org.apache.catalina.core.ApplicationFilterChain?.doFilter(ApplicationFilterChain?.java:173)
org.apache.catalina.core.StandardWrapperValve?.invoke(StandardWrapperValve?.java:213)
org.apache.catalina.core.StandardContextValve?.invoke(StandardContextValve?.java:178)
org.apache.catalina.authenticator.AuthenticatorBase?.invoke(AuthenticatorBase?.java:524)
org.apache.catalina.core.StandardHostValve?.invoke(StandardHostValve?.java:126)
org.apache.catalina.valves.ErrorReportValve?.invoke(ErrorReportValve?.java:105)
org.apache.catalina.core.StandardEngineValve?.invoke(StandardEngineValve?.java:107)
org.apache.catalina.connector.CoyoteAdapter?.service(CoyoteAdapter?.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint?.processSocket(PoolTcpEndpoint?.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread?.runIt(LeaderFollowerWorkerThread?.java:80)
org.apache.tomcat.util.threads.ThreadPool?$ControlRunnable?.run(ThreadPool?.java:684)
java.lang.Thread.run(Thread.java:619)

Changed 8 years ago by ibaldin

  • status changed from new to closed
  • resolution set to invalid

Not a bug - operator error attempting to re-claim a previously closed reservation.

Note: See TracTickets for help on using tickets.