Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 450397

Summary: [server] Do not allow an old server to startup on new metadata
Product: [ECD] Orion Reporter: Anthony Hunter <ahunter.eclipse>
Component: ServerAssignee: Anthony Hunter <ahunter.eclipse>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: john.arthorne, pwebster
Version: unspecified   
Target Milestone: 8.0   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Anthony Hunter CLA 2014-11-06 15:12:20 EST
Our Orion plan says that "No compatibility is provided within Orion server code, on either Java or Node servers". So currently we automatically migrate users to the latest Orion metadata when the server starts.

Once we have migrated from say Orion 6.0 to Orion 7.0, it is unknown what will happen if you try to start the old Orion 6.0 server on the new Orion 7.0 metadata.

Given there is more than likely going to be an untested issue I am going to introduce a change that will stop the old server from breaking things. It will lockout by user and by the server itself.

ERROR SimpleMetaStore.initializeMetaStore: cannot run an old server (version 6) on metadata that is at a newer version (version 7).

In the future we could look at improve backwards compatibility to one version backwards.
Comment 1 Anthony Hunter CLA 2014-11-07 14:55:48 EST
I did some additional testing related to running two servers against one server workspace (high availability).

I started a server with version 7 of the metadata and the fix associated with this defect. I went into the editor, made a change and was about to save.

I then started a second server with version 7 of the metadata and logged in with that user that migrated the metadata to version 8.

Back on the other client, when I try to save it correctly gives a server error message, since the version 7 server is effectively locked out because the metadata has migrated to version 8. 

In the future we could look at improving backwards compatibility  but for now I am confident that things will not blow up running multiple servers and getting server metadata versions out of version sync.