Page MenuHomePhabricator

Maps - remove multiple JVM versions from maps servers
Closed, ResolvedPublic

Description

maps master servers (maps1001.eqiad.wmnet and maps2001.codfw.wmnet) have both openjdk 7 and openjdk 8 installed. It seems that openjdk 8 is pulled by cassandra, and 7 pulled by osmosis. Osmosis should be able to run fine on openjdk 8.

The minimal step is to ensure that java alternatives are set to openjdk 8. We probably need to repackage osmosis to replace the "default-jre-headless" dependency by "java-runtime".

Event Timeline

After a refresher on how depbian package dependencies work and some digging into it:

  • osmosis depends on default-jre-headless | java6-runtime-headless
  • openjdk-8-jre-headless provides java6-runtime-headless

The issue seems to be that osmosis is installed before cassandra has time to install openjdk 8.

Change 304806 had a related patch set uploaded (by Gehel):
Maps - ensure Osmosis is only installed after JRE is available

https://gerrit.wikimedia.org/r/304806

Change 304806 abandoned by Gehel:
Maps - ensure Osmosis is only installed after JRE is available

Reason:
After some tests, it seems that alternative dependencies don't work the way I thought. osmosis still pulls JDK7. I'm abandoning this change in favor of repackaging osmosis with different dependencies.

https://gerrit.wikimedia.org/r/304806

New osmosis package (osmosis_0.43.1-3+deb8u1+wmf1_all.deb) has been uploaded to carbon and upgraded on maps1001. I'll let the osm synchro run a few times before calling this done.

OpenJDK 7 still needs to be removed now that the dependency is not needed.

maps1001 is clean, osmosis upgraded and openjdk 7 removed.

maps2001 still has cassandra using openjdk 7. Clean up is as follow:

  1. update-java-alternatives to use openjdk 8 by default
  2. restart cassandra
  3. remove openjdk 7

Mentioned in SAL [2016-08-30T13:10:59Z] <gehel> cleanup openjdk 7 on maps2002 - T142977

openjdk 7 is removed from the maps clusters.