RFR: 7903188: Log time spent waiting to acquire exclusive access lock
Jaikiran Pai
jpai at openjdk.org
Thu Jun 20 07:22:21 UTC 2024
On Wed, 19 Jun 2024 09:39:04 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
> Can I please get a review of this change which proposes to implement the enhancement requested in https://bugs.openjdk.org/browse/CODETOOLS-7903188?
>
> jtreg supports the ability to sequentially execute tests, instead of concurrently, for tests belonging to a pre-configured `exclusiveAccess.dirs` directory. The `MainAction` and `ShellAction` before launching the test, first acquire a lock. The lock acquisition can be time consuming and depends on how long an already running test from that directory takes to complete. This lock acquisiton time isn't reported anywhere in the jtreg action's `section` in the report. Because of this, it sometimes makes it difficult to determine where the unaccounted time is spent.
>
> The change in this PR prints out how long it took to acquire a exclusive access before launching the test. It's only printed if the test was configured with exclusiveAccess. The reported message will look like:
>
>
> #section:main
> ----------messages:(7/230)----------
> command: main Test
> reason: User specified action: run main Test
> started: Wed Jun 19 14:45:21 IST 2024
> exclusiveAccess wait time (seconds): 20.289
> Mode: othervm
> finished: Wed Jun 19 14:45:21 IST 2024
> elapsed time (seconds): 0.123
>
>
> An existing self test has been updated to verify this change. All existing tests continue to pass with this change.
Hello Alan,
> I wonder if "exclusiveAccess wait time ..." could be printed before the "started ..." line. That is, the waiting happens before the test starts so would be confusing to have a "wait" log message between "started" and "finished".
I had thought of that, but it would need a slightly more involved change because the construct that allows the code write these messages (the `section`) is instantiated within the `startAction()` method which writes the `started` message. So it's only after that `startAction()` method returns, we get a `section` instance through which we can write out the exclusive access wait time.
Having said that, I do agree with what you state. Let me see if I can keep it simple and yet be able to write it in that sequence.
-------------
PR Comment: https://git.openjdk.org/jtreg/pull/208#issuecomment-2179988066
More information about the jtreg-dev
mailing list