Isolating tests from general concurrency
gary.adams at oracle.com
gary.adams at oracle.com
Tue Mar 19 21:19:42 UTC 2019
I have not looked into the current exclusiveAccess.dirs implementation
but I assume it requires some ordering of tests to ensure that none of the
tests in the set of excluded directories runs more than one test at a time.
Or is the locking mechanism local to each of the excluding directories?
How is the queue managed when normally concurrent tests are launched?
Instead of waiting til the end, a test requiring concurrency=1 could
simply wait
for the queue to drain before being launched.
On 3/19/19 5:06 PM, Jonathan Gibbons wrote:
> Igor,
>
> What you suggest is not easy given the way jtreg currently runs
> tests. I'm not saying we can't support "nonconcurrent" tests, but I
> doubt that we would do it as you describe.
>
> -- Jon
>
> On 3/19/19 2:03 PM, Igor Ignatyev wrote:
>> Jon,
>>
>> in vm-testbase we used to have 'nonconcurrent' k/w to get
>> concurrency=1 for specific tests. the keyword was recognized by test
>> harness, and all "nonconcurrent" tests were moved to the end of
>> execution queue and started only after all "concurrent" tests finish
>> their execution. although this would have a side effect on test
>> execution order, I don't think it should be a problem for us as AFAIK
>> jtreg doesn't guarantee any particular order, and the solution is
>> nice and simple and it shouldn't be hard to implement the
>> same/similar logic in jtreg.
>>
>> -- Igor
>>
>> (sorry if it creates another email thread, I subscribed to the list
>> after the discussion had started)
>> On 3/19/19 12:56 PM, Jonathan Gibbons wrote:
>>> On 3/19/19 12:03 PM, Gary Adams wrote:
>>>> A recent question came up about how the exclusiveAccess.dirs property
>>>> was being used to
>>>> prevent concurrent tests from using some critical resource. It appears
>>>> that some of
>>>> the hotspot/jtreg/vmTestbase tests were setting the property assuming
>>>> they would get
>>>> a concurrency=1 type of behavior.
>>>>
>>>> I'd like to start the discussion about how the current feature works
>>>> and see
>>>> if a new feature might be appropriate for other related use cases.
>>> The feature was originally created for tests that needed exclusive
>>> access to specific system resources: specifically, fixed ports in
>>> RMI/networking tests. To some extent, it was a quick stop-gap
>>> measure, to avoid having to rewrite those tests in short order to
>>> use dynamically allocated ports. The need for "concurrency=1"
>>> behavior is new/different. Previously, all tests wanting exclusive
>>> access had to opt-in to the feature. To support "concurrency=1",
>>> there's an implicit need to check any interlock on all tests that
>>> don't request "concurrency=1".
>>> -- Jon
More information about the jtreg-dev
mailing list