Your service tickets should not really be multi-use. That said if TGTs work without issue in Terracotta, it seems unlikely that Service Tickets should not work. The sample configuration was given to us by someone who's using it in production, so I'm not too familiar with it. Hopefully they're still on this list.
On Fri, Aug 6, 2010 at 7:15 PM, Raymond D Walker <[email protected]> wrote: > We have enabled multi-use tickets with our CAS 3.4.2 setup, and testing > with Terracotta seems to introduce an issue: > > Currently using this file as a basis for our "lock" setup: > > https://source.jasig.org/cas3/tags/cas-server-3.4.2/etc/terracotta/sample-terracotta-config.xml > > To be honest, I'm not even sure this is due to the multi-use ticket... can > anyone shed some light on this? > > 2010-08-06 15:53:58,073 ERROR > [org.apache.catalina.core.ContainerBase.[Standalone].[localhost].[/cas].[cas]] > - <Servlet.service() for servlet cas threw exception> > com.tc.object.tx.UnlockedSharedObjectException: > ********************************************************************* > Attempt to access a shared object outside the scope of a shared lock. > All access to shared objects must be within the scope of one or more > shared locks defined in your Terracotta configuration. > > Caused by Thread: TP-Processor7 in VM(2) > Shared Object Type: org.jasig.cas.ticket.ServiceTicketImpl > > The cause may be one or more of the following: > * Terracotta locking was not configured for the shared code. > * The code itself does not have synchronization that Terracotta > can use as a boundary. > * The class doing the locking must be included for instrumentation. > * The object was first locked, then shared. > > For more information on how to solve this issue, see: > http://www.terracotta.org/usoe > ********************************************************************* > > at > com.tc.object.tx.ClientTransactionManagerImpl.getTransaction(ClientTransactionManagerImpl.java:202) > at > com.tc.object.tx.ClientTransactionManagerImpl.fieldChanged(ClientTransactionManagerImpl.java:405) > at > com.tc.object.TCObjectImpl.objectFieldChanged(TCObjectImpl.java:331) > at > org.jasig.cas.ticket.ServiceTicketImpl.__tc_setgrantedTicketAlready(ServiceTicketImpl.java) > at > org.jasig.cas.ticket.ServiceTicketImpl.grantTicketGrantingTicket_aroundBody6(ServiceTicketImpl.java:97) > at > org.jasig.cas.ticket.ServiceTicketImpl.grantTicketGrantingTicket_aroundBody7$advice(ServiceTicketImpl.java:44) > at > org.jasig.cas.ticket.ServiceTicketImpl.grantTicketGrantingTicket(ServiceTicketImpl.java:1) > at > org.jasig.cas.CentralAuthenticationServiceImpl.delegateTicketGrantingTicket(CentralAuthenticationServiceImpl.java:292) > 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 > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > at > org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80) > at > org.perf4j.aop.AbstractTimingAspect.doPerfLogging(AbstractTimingAspect.java:71) > 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 > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:622) > at > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:611) > at > org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161) > at > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) > at $Proxy15.delegateTicketGrantingTicket(Unknown Source) > at > org.jasig.cas.web.ServiceValidateController.handleRequestInternal(ServiceValidateController.java:134) > at > org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) > at > org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771) > at > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716) > at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647) > at > org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:627) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > at > org.jasig.cas.web.init.SafeDispatcherServlet.service_aroundBody2(SafeDispatcherServlet.java:115) > at > org.jasig.cas.web.init.SafeDispatcherServlet.service_aroundBody3$advice(SafeDispatcherServlet.java:44) > at > org.jasig.cas.web.init.SafeDispatcherServlet.service(SafeDispatcherServlet.java:1) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) > at > com.github.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:46) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) > at > org.terracotta.modules.tomcat.tomcat_5_5.SessionValve55.invoke(SessionValve55.java:73) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) > at > org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) > at > org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) > at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) > at > org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) > at > org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) > at java.lang.Thread.run(Thread.java:619) > > > > Raymond Walker > Software Systems Engineer Sr. > ITS Northern Arizona University > [email protected] > Phone 928-523-0334 > > > -- > You are currently subscribed to [email protected] as: > [email protected] > To unsubscribe, change settings or access archives, see > http://www.ja-sig.org/wiki/display/JSG/cas-user > > -- You are currently subscribed to [email protected] as: [email protected] To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/cas-user
