On Wed, Sep 3, 2014 at 8:12 PM, Alex Brett <alex.br...@citrix.com> wrote: > On 04 September 2014 00:45, David Nalley [da...@gnsa.us] wrote: >> On Wed, Sep 3, 2014 at 7:40 PM, Alex Brett <alex.br...@citrix.com> wrote: >>> To expand on this a little bit - in RHEL 6.3 if you have both Java 1.6 and >>> Java 7 installed, the default behaviour with the alternatives mechanism >>> makes 1.6 the default Java instance (you can manually set 1.7 as the >>> default, but this is an extra step). This means that the management server >>> / KVM agent then fail to work. >>> >>> In 6.5 if you have both then by default Java 7 is used, and all works fine >>> (not sure about 6.4 or 7, I've not tested them). >>> >> >> Perhaps we add a Conflicts with java 1.6 - it would be somewhat ugly, >> and if you run into it you would need to know to yum remove, but that >> would keep you from having an installation at all rather than >> expecting it to work and trying to debug. >> > > I'd have thought this would prove problematic over upgrade - as you'd have a > conflict that the new version would need to have 1.6 removed, but you can't > do that without removing your old version first. There's also the issue of if > the user wants to have both around for other tools they're running on the > same machine. >
Both valid points. > Some solutions that don't break upgrade that I can see are: > * Rayees change in the review to point directly at Java 7, with the caveat > that this might have some cross platform issues Yes, but cross-platform issues - there are people running on platforms besides what we package for; and with JDKs other than what we assume in our package scripts. Hardcoding is bad all the way around. > * Somehow automating the alternatives mechanism, i.e. doing a check as part > of management server startup somewhere that if the default Java is 1.6, > setting it to be Java 7 (which we know should be installed by the RPM > dependencies) - a little ugly as we are changing a user's default underneath > them, and may also have cross platform issues Ugh, please no, changing underlying platform without very clearly communicating it is bad. We'll invoke the ire of every BOFH using CloudStack :) > * Require use of 6.5 (or possibly 6.4 if the version that has works) instead > of 6.3 - we do already say to install all hotfixes etc, which in theory means > people should be there (yum update / upgrade on a 6.3 system will make it > 6.5+), though I think we know in practise a lot of users aren't as they > prefer to keep things at a stable state or only apply very specific updates. > I guess this would be done by specifying a minimum Java version required that > is only in the appropriate release or later. This is easy in CentOS; but more painful in RHEL. We could easily Require: centos-release-6.5 or redhat-release (with an if statement if centos-release doesn't provide redhat-release, but I think it does) > * Don't actually block it in the RPM, but check in the init script what > version of Java we're going to end up picking up, and if it's 1.6 fail with a > clear error message suggesting the user changes the default - still means the > management server / agent won't start after upgrade, but is at least a > reasonably easy fix. > This is probably most reasonable of all of the solutions IMO. > Alex