RFR: 8267926: AsyncLogGtest.java fails on assert with: decorator was not part of the decorator set specified at creation. [v4]

Xin Liu xliu at openjdk.java.net
Wed Jun 2 07:06:59 UTC 2021


> The root cause of the intermittent failure is that _decorators in LogDecorations 
> may be inconsistent with LogOutput::_decorators. It could happen when gtest disables a
> Log output via set_log_config(TestLogFileName, "all=off").
> 
> Since we copy the entire logDecorations, it's reasonable to copy _decorator as well. 
> LogDecorator is a bitmask of uint. It's even smaller than a reference on LP64 platforms.
> 
> This patch not only fixes intermittent crash in JDK-8267926, but also fixes JDK-8267952.
> Two hazards of async logging in `LogConfiguration::configure_output` are eliminated. 
> This patch also adds a storestore barrier to make sure it's safe on weak consistency machines.

Xin Liu has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:

 - resume gtest/AsyncLogGtest.java
 - Merge branch 'master' into JDK-8267926
 - Add another regression test.
 - Increase reader's counter before creating LogDecoration.
 - 8267926: AsyncLogGtest.java fails on assert with: decorator was not part of the decorator set specified at creation.
 - 8267926: AsyncLogGtest.java fails on assert with: decorator was not part of the decorator set specified at creation.

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/4257/files
  - new: https://git.openjdk.java.net/jdk/pull/4257/files/3b2d7636..9632e705

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=4257&range=03
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=4257&range=02-03

  Stats: 27659 lines in 947 files changed: 5648 ins; 19995 del; 2016 mod
  Patch: https://git.openjdk.java.net/jdk/pull/4257.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/4257/head:pull/4257

PR: https://git.openjdk.java.net/jdk/pull/4257


More information about the hotspot-runtime-dev mailing list