Archive for category Java

ElasticSearch issues upgrading from Ubuntu 15.04 -> 15.10

For some bizarre reason when we did an upgrade from ubuntu 15.04 to 15.10 and elasticsearch was updated from v1.4.5 to v1.6.2 elasticsearch would not start (although systemctl thought it had each time).

Immediately after the upgrade, we received error messages from our application saying it could not connect to elasticsearch.

Sure enough trying to connect to the elasticsearch service failed when we attempted to use curl -XGET 'localhost:9200'

Another strange thing is that systemctl says that elasticsearch is running perfectly, even though the process is not running when we execute ps -aux | grep elastic …

It turns out the elasticsearch.pid file had been deleted in the upgrade and the elasticsearch user could not create a new one.

touch /var/run/elasticsearch.pid
chown elasticsearch /var/run/elasticsearch.pid

However, that is not all, I started receiving a new and exciting error message (see stack trace below). Read the rest of this entry »

3 Comments

Nasty Class loader issue: “java.lang.LinkageError: loader constraint violation: loader previously initiated loading for a different type…”

Background

First a bit of background, I am working as part of a team responsible for building a bespoke content management system for educational uses and the back end uses the following technologies:

  • Java Tomcat 7.0 server
  • Rest Easy 3.0.6.Final
  • ElasticSearch 1.0.1
  • Google Guice 3.0 for dependency injection
  • Eclipse Kepler Build 20130919-0819
  • Counterclockwise (Clojure plugin For Eclipse) 0.20.0 & 0.24.1.STABLE001 – This becomes important later even though I am not using it really.

The problem

Now to describe the problem. For some reason after integrating ElasticSearch with our project a nasty error as seen below started happening (and breaking the whole site at runtime when running within eclipse):

SEVERE: Servlet.service() for servlet [jsp] in context with path [/rutherford-server] threw exception [Filter execution threw an exception] with root cause
java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/http/HttpSession"

This problem seemed to refer at a random place in our code in the stack trace. This random place had previously worked (and is totally unrelated to the Elastic Search stuff I was working on) in my case it occurred in a User Manager class that deals with sessions (hence the reference to HttpSession). The elastic search stuff didn’t have anything to do with the user manager or even use the HttpSession class as far as I was aware but seemed to trigger the error when the code for the elasticsearch java api was inserted.
Read the rest of this entry »

, , , ,

6 Comments