• Bug
  • Status: Closed
  • 1 Critical
  • Resolution: Fixed
  • kkannaiy
  • Reporter: steve
  • April 30, 2009
  • 0
  • Watchers: 2
  • February 12, 2013
  • May 05, 2009

Description

We should create a much clearer error message when someone is getting hit by the named class loader problem.

Would also be nice to create a clear error message when someone is clearly missing a container tim.

09:49:22.336 - ERROR [edu.internet2.middleware.shibboleth.common.profile.ProfileRequestDispatcherServlet:85] - Error processing profile request java.lang.IllegalStateException: Classloader name not set, instances defined from this loader not supported in Terracotta (loader: org.apache.catalina.loader.WebappClassLoader) at java.lang.ClassLoader.__tc_getClassLoaderName(ClassLoader.java) [na:1.6.0_07] at com.tc.object.loaders.StandardClassProvider.getName(StandardClassProvider.java:160) [na:na] at com.tc.object.loaders.StandardClassProvider.getLoaderDescriptionFor(StandardClassProvider.java:153) [na:na] at com.tc.object.loaders.StandardClassProvider.getLoaderDescriptionFor(StandardClassProvider.java:147) [na:na] at com.tc.object.TCClassFactoryImpl.getOrCreate(TCClassFactoryImpl.java:60) [na:na] at com.tc.object.ClientObjectManagerImpl.getPortableObjects(ClientObjectManagerImpl.java:239) [na:na] at com.tc.object.Traverser.addReferencedObjects(Traverser.java:37) [na:na] at com.tc.object.Traverser.traverse(Traverser.java:81) [na:na] at com.tc.object.ClientObjectManagerImpl.addToManagedFromRoot(ClientObjectManagerImpl.java:944) [na:na] at com.tc.object.ClientObjectManagerImpl.create(ClientObjectManagerImpl.java:290) [na:na] at com.tc.object.ClientObjectManagerImpl.lookupOrCreateIfNecesary(ClientObjectManagerImpl.java:350) [na:na] at com.tc.object.ClientObjectManagerImpl.lookupOrCreate(ClientObjectManagerImpl.java:323) [na:na] at com.tc.object.tx.ClientTransactionManagerImpl.logicalInvoke(ClientTransactionManagerImpl.java:807) [na:na] at com.tc.object.TCObjectLogical.logicalInvoke(TCObjectLogical.java:18) [na:na] at com.tc.object.bytecode.ManagerImpl.logicalInvoke(ManagerImpl.java:253) [na:na] at com.tc.object.bytecode.ManagerUtil.logicalInvoke(ManagerUtil.java:251) [na:na] at java.util.concurrent.ConcurrentHashMap$Segment.put(ConcurrentHashMap.java:439) [na:1.6.0_07] at java.util.concurrent.ConcurrentHashMap.put(Unknown Source) [na:1.6.0_07] at edu.internet2.middleware.shibboleth.common.util.EventingMapBasedStorageService.put(EventingMapBasedStorageService.java:104) [shibboleth-common-1.1.2.jar:na] […]

I’m using a standard Apache Tomcat 5.5.27 (tar ball from tomcat.apache.org) with Java 1.6.0_07 on Debian/etch and the tim-module 2.3.1 installed as described on https://spaces.internet2.edu/display/SHIB2/IdPCluster .

The client connection to the Terracotta server was successful.

Any idea? Is anyone using TC 3.0.0 successfully with IdP 2.1? Where could I get a 2.7 version of TC?

Patrik

Comments

Fiona OShea 2009-05-01

This seems to be hitting many people now using 3.0 can we make a quick fix to improve the error message at least?

Walter Harley 2009-05-01

This is a dup of CDV-1183 and DEV-2031. In CDV-1183 I suggested the following error message: “This classloader instance has not been registered. This may indicate that a required Terracotta Integration Module is missing from the Terracotta configuration. (loader class: org.apache.catalina.loader.WebappClassLoader)”

Fiona OShea 2009-05-04

Sounds good to me. Can you get it committed today?

Walter Harley 2009-05-04

Working on it now…

Walter Harley 2009-05-04

Fixed in 3.0 branch with change 12651, and in trunk with change 12652.

I’ve updated the error message as suggested. Bug DEV-2031 has ideas for additional improvements (e.g., checking for unregistered classloader during portability test), so I’ll leave that bug open. Fixing that is out of scope for 3.0.1.

Fiona OShea 2009-05-05

Igal please assign to me when new error message is ready. thanks

ilevy 2009-05-05

Suggested error message for missing TIM to show in the appropriate place in the printout along with the stack trace and other necessary technical whatnot:

The correct Terracotta Integration Module (TIM) may be missing from this installation of Terracotta. TIMs are required to integrate Terracotta with web containers, frameworks, and other technologies.

For example, to integrate Apache Tomcat 5.5 with Terracotta on UNIX/Linux, install the correct TIM by entering the following command from the Terracotta installation root directory:

[PROMPT] bin/tim-get.sh install tim-tomcat-5.5

On Microsoft Windows, enter:

[PROMPT] bin/tim-get.bat install tim-tomcat-5.5

You must also add the TIM to the Terracotta configuration file (tc-config.xml by default) by adding its name and version number using a element:

...

For more information, see http://www.terracotta.org/tim-error.

Walter Harley 2009-05-05

Fixed in 3.0 branch with 12660, in trunk with 12661

Kalai Kannaiyan 2009-05-08

Tested with Terracotta 3.0.1, as of 20090507-140557 (Revision 12665 by cruise@su10mo5 from 3.0), clear error message appears when class loader is missing. Updated the DEV-2784 with detail steps to validate this error message.