Open paulmillar opened 8 years ago
Minimal testcase to demonstrate this problem has been added as testing/scripts/protos/srm/2.2/testcase/issue-1.s2
Problem was due to at least three problems:
The first problem can be fixed in s2 code.
Problems 2. and 3. can be worked around within CGSI_PLUGIN, but should be fixed in Globus.
There is a race condition on a code-path that is not thread-safe. The SRM 2.2. usecase test PutOverwriteTransfParallel.s2 used to issue SRM requests on separate threads. It has subsequently been updated as doing this was an error in the test.
The effect of the race condition is the s2 program crashes with a "double free or corruption" error message. How often this problem is triggered appears to depend on the number of cores the client machine has. On test (virtual) machines with two cores, the crash appears with PutOverwriteTransfParallal.s2 only occasionally; on my desktop machine (8 cores) the problem seems to appear with every invocation of PutOverwriteTransfParallal.s2.
Running the test with gdb yields the following stack-trace