Hi Chris,

I did some more troubleshooting by enabling Tomcat debug logs. It turns out
that the class loading is failing due to FileNotFoundException for
antlr-runtime.jar file. I am not sure why is that the case since I can see
that jar file at the location mentioned.

Feb 10, 2016 10:00:24 AM org.apache.catalina.loader.WebappClassLoader
loadClass
FINE: loadClass(org.apache.solr.util.IOUtils, false)
Feb 10, 2016 10:00:24 AM org.apache.catalina.loader.WebappClassLoader
loadClass
FINE:   Searching local repositories
Feb 10, 2016 10:00:24 AM org.apache.catalina.loader.WebappClassLoader
findClass
FINE:     findClass(org.apache.solr.util.IOUtils)
Feb 10, 2016 10:00:24 AM org.apache.catalina.loader.WebappClassLoader
openJARs
FINE: Failed to open JAR
java.io.FileNotFoundException:
/var/lib/solr/tomcat-deployment/webapps/solr/WEB-INF/lib/antlr-runtime-3.5.jar
(No such file or directory)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:215)
at java.util.zip.ZipFile.<init>(ZipFile.java:145)
at java.util.jar.JarFile.<init>(JarFile.java:154)
at java.util.jar.JarFile.<init>(JarFile.java:118)
at
org.apache.catalina.loader.WebappClassLoader.openJARs(WebappClassLoader.java:2754)
at
org.apache.catalina.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2994)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2789)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.apache.solr.cloud.Overseer.doClose(Overseer.java:1253)
at org.apache.solr.cloud.Overseer.close(Overseer.java:1246)
at org.apache.solr.cloud.ZkController.close(ZkController.java:500)
at org.apache.solr.core.ZkContainer.close(ZkContainer.java:280)
at org.apache.solr.core.CoreContainer.shutdown(CoreContainer.java:374)
at
org.apache.solr.servlet.SolrDispatchFilter.destroy(SolrDispatchFilter.java:205)
at
org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:360)
at
org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4111)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4880)
at
org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1279)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1385)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:307)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1392)
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1656)
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1665)
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1645)
at java.lang.Thread.run(Thread.java:745)

I also verified that this jar file has appropriate permissions set.

sudo -u solr ls -all
/var/lib/solr/tomcat-deployment/webapps/solr/WEB-INF/lib/antlr-runtime-3.5.jar

-rw-r--r-- 1 solr solr 167735 Feb 10 10:00
/var/lib/solr/tomcat-deployment/webapps/solr/WEB-INF/lib/antlr-runtime-3.5.jar
Please let me have your feedback on this.

Thanks
Hrishikesh



On Mon, Feb 8, 2016 at 6:52 AM, Christopher Schultz <
ch...@christopherschultz.net> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hrishikesh,
>
> On 2/8/16 9:50 AM, Christopher Schultz wrote:
> > Hrishikesh,
> >
> > On 2/6/16 1:17 PM, Hrishikesh Gadre wrote:
> >> Thanks for the reply. Let me try this out. But do you think its a
> >> bug in Tomcat ?
> >
> > No. There's nothing Tomcat can do about this, aside from allowing
> > your application to load /more/ classes on shutdown. What's
> > happening is that your application (or one of its libraries) is
> > being very sloppy.
> >
> >> Because as an application developer I should be able to invoke
> >> arbitrary application logic during the
> >> ServletFilter::destroy(...) method without bothering about the
> >> class loading related issues (Note that the jar files for these
> >> classes are available inside WEB-INF/lib directory and the
> >> shutdown process completes successfully most of the times
> >> without raising NoClassDefFoundErrors).
> >
> > I just read the SO reference you posted and, in that case (if the
> > answer by "miljanm" is accurate), the library isn't properly using
> > its own ClassLoader if it's using a private one.
> >
> > It's not clear to me which ClassLoader is failing to find
> > c.g.c.c.RemovalCause. Usually, the WebappClassLoader will issue a
> > WARN or INFO message to the log saying that a class is being
> > loaded during shutdown. Do you see any such messages in any of the
> > log files? If not, this may be *entirely* a library issue.
>
> Also, see this SO issue for an example of what Tomcat usually says:
> http://stackoverflow.com/questions/9920974/what-is-the-proper-way-to-shu
> tdown-threads-when-tomcat-closes?rq=1
>
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Comment: GPGTools - http://gpgtools.org
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iEYEARECAAYFAla4q8oACgkQ9CaO5/Lv0PCz1wCglWVQGY4lpdIMWGGmX0byCA6a
> vuwAni8c+i6U0AYoUUftoTX79a2CDyzr
> =goJV
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

Reply via email to