Age | Commit message (Collapse) | Author |
|
|
|
release_handler_SUITE:otp_9395_update_many_mods and
otp_9395_rm_many_mods often fail on test host 'nain' due to a very
slow sys call. These tests are now skipped on this host.
|
|
release_handler_SUITE waits for a maximum of 30 sec when starting a
node. On slow machines we have seen that startup time sometimes exceed
this so the maximum is now extended to 2 minutes.
|
|
release_handler_SUITE:otp_9395_*_many_mods sometimes fail on slow
machines. This commit adds an explicit GC before each
'install_release' so GC during test is avoided.
|
|
release_handler_SUITE:upgrade_gg (global group) sometimes fails on
slow machines. This commit re-tries five times before giving up.
|
|
* josevalim/supervisor-get-callback-module/PR-1000/OTP-13619:
Return callback module in supervisor format_status
|
|
The previous implementation of supervisor:get_callback_module/1
used sys:get_status/1 to get the supervisor inner state and
retrieve the callback module. Such implementation forbids any
other supervisor implementation that has an internal state
different than the #state{} record in supervisor.erl.
This patch allows supervisors to return the callback module
as part of the sys:get_status/1 data, no longer coupling the
callback module implementation with the inner #state{} record.
Notice we have kept the clause matching the previous
sys:get_status/1 reply for backwards compatibility purposes.
|
|
Windows 8 and later have stronger admin checks which requires
erlang to run in privileged shells, ignore for now.
|
|
Speed up supervisor:count_children/1 for simple_one_for_one
supervisors. This is achieved by avoiding looping through all the
child process and verifying that each one is alive.
For a supervisor with 100,000 'temporary' children the count-time will
drop from approx 25ms to about 0.005ms.
For a supervisor with 100,000 'permanent' or 'transient' children the
count-time will drop from approx 30ms to about 0.005ms.
This avoids having the supervisor block for an extended period while
the count takes place. Under normal circumstances the accuracy of the
result should also improve since the duration is too short for many
processes to die during the count.
|
|
|
|
release_handler_SUITE:otp_10463_upgrade_script_regexp reads
kernel.appup and tries to fetch upgrade instructions for upgrade from
current version to current version. The point of the test is to see
that release_handler can read an appup with regexps.
In some cases, however, kernel.appup does not support upgrade from
current to current version, since this is not necessary in real
life. Therefore this test is now updated to use a dummy application
(release_handler_SUITE_data/regexp_appup/app1) for this test.
|
|
In order to fake an earlier release to upgrade from, version numbers
are replaced in some .app files. This commit adds a backslash before
the dot in the pattern to replace, so the dot is not mistaken for a
wildcard.
|
|
The slave node from release_handler_SUITE:upgrade_supervisor_fail
sometimes survives its test case. Or rather, it is unexpectedly
restarted. Every now and then, on a slow machine, this confuses the
next test case since test_server:start_node might return the old node
name instead of the new. This has been corrected by using
{error_action,reboot} in release_handler_SUITE:upgrade_supervisor_fail
- to make sure the slave node is really terminated on rollback.
|
|
Test cases 'release_handler_which_releases' and 'upgrade_supervisor'
did not terminate the nodes they started. This might be the cause of
failing test cases further down the suite. This has been corrected.
|
|
|
|
In release_handler_SUITE, print command with ~ts instead of ~tp in
case it contains unicode characters.
|
|
Quoting on Windows is strange
|
|
|
|
|
|
Conflicts:
erts/etc/win32/Install.c
|
|
|
|
* siri/install-otp-in-unicode-path:
[sasl] Remove priv dir after release_handler_SUITE
Update preloaded init.beam
Allow unicode characters for boot and config in init:make_permanent
[sasl] Clean priv_dir after systools_SUITE
[reltool] Use unicode characters in work dir for unicode test
[sasl] Use unicode characters in priv dir name also on windows
[reltool] Write erl.ini as UTF-8
[sasl] Update tests to run under unicode path
[sasl] Rewrite release_handler_SUITE:clean_priv_dir to work on unicode paths
[sasl] Update example/target_system.erl to handle unicode
[sasl] Write erl.ini as utf8, allowing unicode path for root dir and bin dir
|
|
* siri/spawn-and-space:
[sasl] In test, quote erlsrv executable in call to open_port/2
[test_server] Quote path to erl executable when starting slave nodes
Quote path to erl executable in slave to allow space in path
[sasl] Quote path to program run with open_port({spawn,...
[os_mon] Quote path to programs run with open_port({spawn,...
Conflicts:
lib/os_mon/src/nteventlog.erl
|
|
Since introducing unicode paths, the name of the priv_dir will include
"unicode characters" and on some platforms (e.g. Windows) these are
not so easily removed by the daily cleanup scripts. To avoid lingering
directories, the priv_dir is now completly removed by the suite itself
(unless there are failed testcases and logs must be saved).
|
|
Some files with icky names (unicode) can not be deleted with the
cleanup scripts after daily tests. Therefore it is better to clean up
directly from the erlang node after test is run.
|
|
|
|
In order to test that unicode paths can be used in release handling,
the release_handler_SUITE will use a priv_dir with unicode characters
if the file name translation mode is utf8 (not on windows).
|
|
This function used os:cmd("rm -rf " ++ File), and it failed when the
file path contained characters > 255. The function now uses
file:delete/1 and file:del_dir/1 instead.
|
|
This example module can now create and install a release in a
directory which contains unicode characters. The erlang node must be
started with the +fnu* switch for this work.
|
|
|
|
This is to allow space in the path.
|
|
Tests that compare execution time for release_handler:install_release
sometimes fail. This has been corrected by multiplying the time with
the CPU utilization in order to disregard wait time for e.g. file
access and and non-erlang related load.
|
|
This test often fails dues to too high expectations. Don't expect the
test to be more than 1000 times faster with no old code - it just
doesn't happen!
|
|
|
|
|
|
release_handler_SUITE:otp_9864 deleted parts of the
release_handler_SUITE_data directory so the test suite could not be
executed twice without re-installation. This has been corrected.
|
|
|
|
This is a temporarily fix for R15B01.
|
|
remove_file in release_handler would fail silently and leave directories
in inconsistent states if there was symlinks in a release directory
also added a test, otp_9864 to test change
|
|
* siri/stdlib/dialyzer-supervisor/OTP-9741:
Add test for upgrade of supervisor
Fix dialyzer warnings in supervisor
|
|
The test is added in release_handler_SUITE since this makes it
possible to test the full upgrade instead of just a simple library
test of supervisor:code_change.
|
|
systool:make_tar stores the rel file in the releases directory. When
unpacking with release_handler:unpack_release, the file is
automatically moved to releases/<vsn>/. If, however, the tar file is
unpacked manually, the rel file might not be moved, and the next
release unpacked might overwrite the rel file. To overcome this,
systools:make_tar now stores a copy of the rel file in releases/<vsn>/
directly and it is not longer necessary to move the file after
unpacking.
The reason for keeping the file in the releases directory also is that
is needs to be extracted separately before the release version <vsn>
is known.
|
|
Changes to the mechanism for upgrading the emulator in OTP R15 was
erronously not handled in release_handler:upgrade_app, downgrade_app,
upgrade_script and downgrade_script. This has been corrected,
including test and documentation.
|
|
* siri/sasl/upgrade-erts/OTP-9438:
Fix bug in erts upgrade on windows
Add release vsn info to erts_vsn_changed warning
Check for sasl application in systools:make_script and make_relup
Add syntax check of relup to check_install_release and install_release
Add documentation for upgrade from pre R15 to post R15 sasl
Handle upgrade from pre R15 to post R15 sasl
Step version of sasl to 2.2 for R15
Document upgrade instructions restart_new_emulator and restart_emulator
Wait for two restarts in upgrade_restart test
Add restart_new_emulator instruction to kernel, stdlib and sasl appups
Distinguish restart_new_emulator from restart_emulator in upgrade instructions
Upgrade erts: merge sys.config for tmp release instead of using old
Allow regexp for version in .appup
Restart emulator before running upgrade script when erts is upgraded
Conflicts:
lib/sasl/src/release_handler.erl
lib/sasl/test/release_handler_SUITE.erl
|
|
The service which represents the temporary release during erts upgrade
on windows was never deleted. This has been corrected. The service is
now renamed just after the emulator restart.
|
|
|
|
This commit adds a check that all instructions in the relup are
valid. Earlier, the last part (after point_of_no_return) was not
checked before the actual installation started, meaning that if the
relup was hand written, there was a potential for crashing the upgrade
here.
|
|
This is an attempt to correct a failing test case. It the test fails
on having restarted only once, we give it another try to see if the
second restart will happen.
|
|
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
|
|
This is an extension to which_releases that allows a user to specify the
status of the releases they wish to be returned. For instance it allows
for quickly determining which release is 'permanent' without the need of
parsing the entire release list.
|