qa tests should support in-process recovery
Project: JBoss Transaction Manager
Issue Type: Task
Security Level: Public (Everyone can see)
Components: Recovery, Testing
Affects Versions: 4.14.0
Reporter: Jonathan Halliday
Assignee: Jonathan Halliday
Fix For: 4.15.0
The qa (formerly dtf) testsuite spawns multiple client/server processes for each test. As
currently configured, these share an objectstore dir and the recovery manager runs as a
separate process. This makes them unsuitable for testing objectstore implementations that
have in-process state and expect process exclusive access to their on-disk state i.e. only
support in-process recovery manager. Now that we actually plan to create such
implementations that's become a problem.
The testsuite is unwieldy enough as it is, so we don't want to clone and modify tests,
but rather have existing tests run with a dedicated objectstore and recovery manager per
process rather than per test. This should be configurable, such that the tests may be run
in either external or in-process recovery configuration.
Modify the test harness to provide a uniq objectstore dir location to each spawned
process. Allow crash recovery tests to selectively override this, as pre and post crash
processes must use the same store or there won't be any state to recover. This
requires tweaking the crashrec tests themselves to supply a correspondence identifier to
the test harness so it can match pre and post crash processes. Spawned processes likewise
need uniq/matching port values to avoid listener port conflicts between concurrent
processes and ensure the recovery IORs are valid.
Provide an optionally activated wrapper that will suppress the standalone recovery process
and start/stop an in-process recovery system for each spawned task in the test. Use the
directory and port values supplied to configure this. When the wrapper is not present,
default behaviour of shared dir with external rec mgr will apply.
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira