Agents load classes from master classpath before checking local classpath
We have a Faban environment with a master and 2 agents. The master FABAN_HOME is ~/code/project/faban/ and FABAN_HOME on the agents is ~/faban/. Agents load classes from jars in ~/code/project/faban if we clone our repo on the agent machine into the same path as we use on the master. This causes errors when we update faban on the master and the generated serialVersionUIDs for several classes change. The agents have the correct jars in ~/faban/ but the agent process loads the incorrect jars from the out of date local clone in ~/code/project/faban/. The error manifests as a java.io.InvalidClassException. java.io.InvalidClassException: com.sun.faban.driver.engine.Cycle; local class incompatible: stream classdesc serialVersionUID = 8468129937951066621, local class serialVersionUID = -3369812715063961192
It is a requirement that FABAN_HOME on all machines be the same. Is it possible for you to change the FABAN_HOME or at least create a symbolic link?
On Fri, Oct 17, 2014 at 6:27 AM, willr3 [email protected] wrote:
We have a Faban environment with a master and 2 agents. The master FABAN_HOME is ~/code/project/faban/ and FABAN_HOME on the agents is ~/faban/. Agents load classes from jars in ~/code/project/faban if we clone our repo on the agent machine into the same path as we use on the master. This causes errors when we update faban on the master and the generated serialVersionUIDs for several classes change. The agents have the correct jars in ~/faban/ but the agent process loads the incorrect jars from the out of date local clone in ~/code/project/faban/. The error manifests as a java.io.InvalidClassException. java.io.InvalidClassException: com.sun.faban.driver.engine.Cycle; local class incompatible: stream classdesc serialVersionUID = 8468129937951066621, local class serialVersionUID = -3369812715063961192
— Reply to this email directly or view it on GitHub https://github.com/akara/faban/issues/74.
I know ran into the assumption about FABAN_HOME once before when fixing the CmdAgentImpl (google-groups link)[https://groups.google.com/forum/#!topic/faban-users/rC9ZEtqyevY]. The documentation does mention that it is preferred to have the same FABAN_HOME across the master and agent but that would unfortunately lead to a much more complicated test environment. I resolved the issue in our performance lab to continue with performance testing but I will evaluate a potential fix for the classpath crossover when I get another pair of machines to use.