From aef75ca63752f65299e95c12b67870f1debea7ff Mon Sep 17 00:00:00 2001 From: Siri Hansen Date: Tue, 1 Nov 2011 12:32:38 +0100 Subject: Handle upgrade from pre R15 to post R15 sasl New emulator upgrade mechanism introduced in R15 can only work if the sasl version to upgrade from is 2.2 or later. I.e. if we are already running at least R15. This commit adds backwards compatiblity for upgrades from earlier versions, meaning that the new code is loaded into the old emulator and code_change is executed - then after all application code is updated, the emulator is restarted with the new erts version. Note that this might cause problems if the new code is compiled with the new emulator and there have been updates to the beam format. If this happens, the workaround is to compile the new code with the old emulator. --- lib/sasl/doc/src/release_handler.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'lib/sasl/doc') diff --git a/lib/sasl/doc/src/release_handler.xml b/lib/sasl/doc/src/release_handler.xml index c625b40c9d..bd24b2d963 100644 --- a/lib/sasl/doc/src/release_handler.xml +++ b/lib/sasl/doc/src/release_handler.xml @@ -335,6 +335,18 @@ release_handler:set_unpacked(RelFile, [{myapp,"1.0","/home/user"},...]). upgrade, but it will allow checks and purge to be executed in the background before the real upgrade is started.

+ +

When upgrading the emulator from a version older than OTP + R15, there will be an attempt to load new application beam + code into the old emulator. In some cases, the new beam + format can not be read by the old emulator, and so the code + loading will fail and terminate the complete upgrade. To + overcome this problem, the new application code should be + compiled with the old emulator. See Design + Principles for more information about emulator + upgrade from pre OTP R15 versions.

+
-- cgit v1.2.3