Age | Commit message (Collapse) | Author |
|
The appup files for kernel, stdlib and sasl did not contain any
UpFromVsn and DownToVsn. This means that it was not possible to create
a relup file with systool:make_relup if any of these applications had
changed.
This commit adds entries in the appup files for a maximum of two major
releases back - all with only one upgrade instruction:
restart_new_emulator. The point is to allow relups to be generated,
but ensure that no soft upgrade is done for these three applications -
i.e. they will always cause a restart of the emulator prior to all
other upgrade instructions from other applications.
Test cases (appup_test) are added to kernel_SUITE, stdlib_SUITE and
sasl_SUITE. These all check that expected versions are matched in the
appups, and illegal versions (older than two major releases, or in any
other way illegal) do not match. The test is written in a general way
where it is assumed that the version of these applications are stepped
according the the rule that major releases step the second number,
maintenance releases step the third number and patches step the fourth
number.
|
|
Earlier, there was only one valid instruction to restart the emulator
in an appup/relup script, 'restart_new_emulator'. A new instuction,
'restart_emulator', is now added, and the meaning is as follows:
'restart_new_emulator' is mainly for the core applications (erts,
kernel, stdlib and sasl), and it indicates that there is new core
functionality in the release and the emulator needs to be restarted
before executing the upgrade scripts. If this instruction exists, a
temporary release will be created which consists of the new version
erts, kernel, stdlib and sasl, and the old versions of all other
applications. After restarting the emulator with this temporary
release, the rest of the upgrade instructions are executed, including
loading of new versions.
'restart_emulator' can be used by any application if a restart of the
emulator is needed after the upgrade instructions have been
executed. In this case, the emulator will be restarted with the new
release (i.e. not a tempoarary one) after all other upgrade
instructions for all applications have been excecuted.
|
|
The sys.config file used for the temporary release in an erts upgrade
is now a hybrid where kernel, stdlib and sasl configuration is taken
from the new release, and other configuration is taken from the old
release. I.e. similar to how the temporary boot file is created.
|
|
In order to avoid duplication of upgrade instructions in .appup files,
we now allow regular expressions to specify the UpFrom and DownTo
versions. To be considered a regular expression, the version
identifier must be specified as a binary, e.g.
<<"2\\.1\\.[0-9]+">> will match versions 2.1.x, where x is any number.
|
|
If the version of erts differs between two releases, the release
handler automatically adds a 'restart_new_emulator' instruction to the
upgrade script (relup). Earlier, this instruction was always added at
the end of the upgrade script, causing the following sequence of
operations during an upgrade (a bit simplified):
1. suspend processes
2. load new code
3. execute code_change functions
4. resume processes
5. restart emulator with new erts version
Obviously, this caused the new code to be loaded into the old emulator
and this would fail if the beam format had been changed in the new
version of the emulator.
To overcome this problem, this commit changes the order of the
instructions, so for upgrade with changed erts version we now have:
1. restart emulator with new erts, kernel, stdlib and sasl versions,
but old versions of all other applications.
2. suspend processes
3. load new code
4. execute code_change functions
5. resume processes
This is implemented by creating a temporary release, including new
erts, kernel, stdlib and sasl from the new release and all other
applications from the old release. A new boot file for this temporary
release is created, which includes a new 'apply' instruction to run
release_handler:new_emulator_upgrade/2. Then the emulator is restarted
using this boot file - and release_handler:new_emulator_upgrade/2
executes the rest of the upgrade script.
For downgrade, the order will be as before:
1. suspend processes
2. execute code_change functions with 'down'-indication
3. load old code
4. resume processes
5. restart emulator with old erts version
|
|
* siri/kernel/application-shutdown-timeout/OTP-9540:
Add documentation and test for kernel env var shutdown_timeout
Add env var shutdown_timeout to kernel to avoid deadlock on node shutdown
|
|
* raimo/sctp-dev/OTP-9239: (21 commits)
erts: Possible bugfix for error chunk on old Solaris 10
kernel: Documented gen_sctp:peeloff/2
kernel: Adjust SCTP test to SuSE quirk
erts: Fixes for SCTP on old Solaris 10
Update preloaded files
erts,kernel: Return eprotonosupport when SCTP is not supported
kernel: Adjust SCTP tests to Solaris quirks
erts: Fix SCTP decoding byteorder bug for adaptation_ind
kernel: Rewrite SCTP test socket handler
kernel: Fix SCTP tests for the FreeBSD protocol stack
kernel: Bugfix - SCTP connect with sndrcvinfo in assoc_change event
erts: Default enable SCTP in configure
Update primary bootstrap and preloaded files
erts: Use SCTP functions in default libs
erts: Improve SCTP message defragmenting
erts,kernel: Bugfix - collect fragmented SCTP messages on recv
kernel: Add tests for gen_sctp:peeloff/2
erts,kernel: Implement gen_sctp:peeloff/2
kernel: Add tests for SCTP stream sockets
erts,kernel: Add type stream sockets to SCTP
...
|
|
|
|
inet:port/1 on peeled off socket returns 0. Bug? Who's?
|
|
It is better that gen_sctp:open/0-2 returns the informative Posix
return code {error,eprotonosupport} than previously {error,badarg}
when SCTP is not supported since it is so platform dependent.
|
|
|
|
The socket handler needs more flexibility regarding which events
are expected to be received.
|
|
|
|
On some platforms (FreeBSD) the #sctp_assoc_change{state=comm_up}
event arriving during gen_sctp:connect/4,5 contains ancillary
data #sctp_sndrcvinfo{}. That was not expected by the code.
|
|
No tracing is implemented yet.
|
|
|
|
|
|
Bug causing hipe to crash. Only provoked when changing the RTL
generation for floating point operations.
hipe_rtl:defines() was called with a expression ID instead of an
expression. Use expr_id_map_get_expr() to get expression from ID.
Need to pass along IdMap in order to do that.
|
|
Moved public_key ignores to .gitignore in public_key and removed
no longer needed ssl ignores.
|
|
|
|
|
|
|
|
Also fix tests for new prim_inet:open function.
|
|
|
|
There is nothing strange about the client shutting down, so the ODBC
process should exit normally to avoid generating a crash report for a
non-problem.
Update appup.src for new version
|
|
Requires own build of wxMac for wx to work:
$ arch_flags="-arch i386"
$ ./configure CFLAGS="$arch_flags" CXXFLAGS="$arch_flags" \
CPPFLAGS="$arch_flags" LDFLAGS="$arch_flags" OBJCFLAGS="$arch_flags" \
OBJCXXFLAGS="$arch_flags" --prefix=/usr/local \
--with-macosx-sdk=/Developer/SDKs/MacOSX10.6.sdk \
--with-macosx-version-min=10.6 --enable-unicode --with-opengl
$ make
$ sudo make install
- and we have macports gcc 4.5 in /opt/local/bin, so we configure
and build OTP like this for 32bit (which is required for wx):
$ cd $ERL_TOP
$ PATH=/usr/local/bin:$PATH CC=/opt/local/bin/gcc-mp-4.5 CXX=/opt/local/bin/g++-mp-4.5 ./configure --enable-m32-build
$ MAKEFLAGS="-j6" PATH=/usr/local/bin:$PATH make
|
|
The short warning option was incorrectly '--w', instead
of as documented '--W'. This has now been corrected.
Tuncer Ayaz
OTP-9718
Merge branch 'bmk/snmp/compiler/fix_short_warning_option/OTP-9718' into bmk/snmp/r15_integration
|
|
|
|
OTP-9618
Merge branch 'bmk/snmp/compiler/misc/OTP-9618' into bmk/snmp/r15_integration
Conflicts:
lib/snmp/doc/src/notes.xml
lib/snmp/src/app/snmp.appup.src
lib/snmp/vsn.mk
|
|
* anders/diameter/release_R15A:
Version -> 0.11, update appup, minor app suite fix
|
|
* anders/diameter/app_suite_vs_sasl/OTP-9704:
Add sasl to app testcases to placate systools
|
|
The short warning option was incorrectly '--w', instead
of as documented '--W'. This has now been corrected.
Tuncer Ayaz
OTP-9718
Merge branch 'ta/snmpc-warnings-option' into bmk/snmp/compiler/fix_short_warning_option/OTP-9718
|
|
OTP-9618
|
|
* rj/fix-net_kernel-doc:
Fixes net_kernel:get_net_ticktime() doc
OTP-9713
|
|
Garrett Smith
OTP-9715
Merge branch 'gs/mod_log-fix' into bmk/inets/httpd/content_len_in_mod_log/OTP-9715
|
|
Load libGL.so.1 instead of libGL.so, this should fix things when
DL search path is broken (Ubuntu).
dlopen("libGL.so") finds Mesa driver and dlopen("libGL.so.1") finds
Nvidia or ATI. wxWidgets (added by gcc) have a dependency to libGL.so.1
so the context is created with that driver.
|
|
New testcase showcase the deadlock
|
|
|
|
OTP-9618
|
|
* siri/stdlib/improve-doc-restart-strategy/OTP-9381:
Improve documentation on supervisor restart strategy
|
|
|
|
|
|
|
|
* ia/ssl/ets-next-problem/OTP-9703:
Replaced ets:next traversal with ets:foldl and throw
|
|
* ia/public_key/prepare-for-release:
Prepare for release
|
|
* ia/ssl/badarith/OTP-9696:
Improved session cleanup handling
Fix badarith in ssl_session:validate_session/2
|
|
|
|
|
|
* hb/stdlib/gen_call_improvement/OTP-9212:
Remove the undocumented function global:safe_whereis_name/1
Remove all use of global:safe_whereis_name/1
Fix a minor race in gen_fsm
|
|
* ia/ssl/test-maintenance:
Removed compiler warnings
Work around bug in openss-1.0.0e
Use ERL_FLAGS in plain_verify_options test
Adjustment to work with hipe
Avoid openssl processes surviving after test case has finished
Add better error message
Skip ssl_dist_SUITE if cover run, as the test server node can not communicate with the ssl nodes with erlang distribution
Fine tuning of test suites
|