You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ignite.apache.org by "chesnokoff (via GitHub)" <gi...@apache.org> on 2026/10/02 12:45:51 UTC
[PR] IGNITE-29086 Fix loss of performance statistics records on stop for JDK 21 [ignite]
chesnokoff opened a new pull request, #13642:
URL: https://github.com/apache/ignite/pull/13642
Thank you for submitting the pull request to the Apache Ignite.
In order to streamline the review of the contribution
we ask you to ensure the following steps have been taken:
### The Contribution Checklist
- [ ] There is a single JIRA ticket related to the pull request.
- [ ] The web-link to the pull request is attached to the JIRA ticket.
- [ ] The JIRA ticket has the _Patch Available_ state.
- [ ] The pull request body describes changes that have been made.
The description explains _WHAT_ and _WHY_ was made instead of _HOW_.
- [ ] The pull request title is treated as the final commit message.
The following pattern must be used: `IGNITE-XXXX Change summary` where `XXXX` - number of JIRA issue.
- [ ] A reviewer has been mentioned through the JIRA comments
(see [the Maintainers list](https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute#HowtoContribute-ReviewProcessandMaintainers))
- [ ] The pull request has been checked by the Teamcity Bot and
the `green visa` attached to the JIRA ticket (see tab `PR Check` at [TC.Bot - Instance 1](https://tcbot2.sbt-ignite-dev.ru/prs.html) or [TC.Bot - Instance 2](https://mtcga.gridgain.com/prs.html))
### Notes
- [How to Contribute](https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute)
- [Coding abbreviation rules](https://cwiki.apache.org/confluence/display/IGNITE/Abbreviation+Rules)
- [Coding Guidelines](https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines)
- [Apache Ignite Teamcity Bot](https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+Teamcity+Bot)
If you need any help, please email dev@ignite.apache.org or ask anу advice on http://asf.slack.com _#ignite_ channel.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] IGNITE-29086 Fix loss of performance statistics records on stop for JDK 21 [ignite]
Posted by "chesnokoff (via GitHub)" <gi...@apache.org>.
chesnokoff commented on code in PR #13642:
URL: https://github.com/apache/ignite/pull/13642#discussion_r4181657411
##########
modules/core/src/main/java/org/apache/ignite/internal/processors/performancestatistics/FilePerformanceStatisticsWriter.java:
##########
Review Comment:
PerformanceStatisticsSelfTest#testCacheOperation sometimes fails on JDK 21
(https://ci2.ignite.apache.org/test/1357538850106251069?currentProjectId=IgniteTests24Java8&branch=%3Cdefault%3E) because last records are lost from the performance statistics file. On JDK 17 the test is OK.
Reason is https://bugs.openjdk.org/browse/JDK-8323782 because it changed order of steps in Thread.interrupt():
Before: 1) close the channel, 2) wake up the thread
After: 1) wake up the thread, 2) close the channel
Now one `Thread.interrupt` can hit the writer thread two times:
1) `stop` interrupts the FileWriter thread. The thread was in `wait`
2) The thread wakes up, goes to ```catch (InterruptedException e)``` and calls `flush` which starts `FileChannel.write`
3) Only now `Thread.interrupt` checks the channel and closes it
4) `write` fails with ClosedByInterruptException. The exception is ignored, so the rest of
the buffer is lost. Then `fileIo.force` in `stop` logs `Failed to fsync the performance
statistics file`.
Let's not interrupt the writer thread and just notify it about cancelling
patch with fix is green for more than 30 runs: https://ci2.ignite.apache.org/test/1357538850106251069?currentProjectId=IgniteTests24Java8&branch=pull%2F13642%2Fhead
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] IGNITE-29086 Fix loss of performance statistics records on stop for JDK 21 [ignite]
Posted by "NSAmelchev (via GitHub)" <gi...@apache.org>.
NSAmelchev merged PR #13642:
URL: https://github.com/apache/ignite/pull/13642
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] IGNITE-29086 Fix loss of performance statistics records on stop for JDK 21 [ignite]
Posted by "chesnokoff (via GitHub)" <gi...@apache.org>.
chesnokoff commented on code in PR #13642:
URL: https://github.com/apache/ignite/pull/13642#discussion_r4181657411
##########
modules/core/src/main/java/org/apache/ignite/internal/processors/performancestatistics/FilePerformanceStatisticsWriter.java:
##########
Review Comment:
PerformanceStatisticsSelfTest#testCacheOperation sometimes fails on JDK 21
(https://ci2.ignite.apache.org/test/1357538850106251069?currentProjectId=IgniteTests24Java8&branch=%3Cdefault%3E) because last records are lost from the performance statistics file. On JDK 17 the test is OK.
Reason is https://bugs.openjdk.org/browse/JDK-8323782 because it changed order of steps in Thread.interrupt():
Before: 1) close the channel, 2) wake up the thread
After: 1) wake up the thread, 2) close the channel
Now one `Thread.interrupt` can hit the writer thread two times:
1) `stop` interrupts the FileWriter thread. The thread was in `wait`
2) The thread wakes up, goes to ```catch (InterruptedException e)``` and calls `flush` which starts `FileChannel.write`
3) Only now `Thread.interrupt` checks the channel and closes it
4) `write` fails with ClosedByInterruptException. The exception is ignored, so the rest of
the buffer is lost. Then `fileIo.force` in `stop` logs `Failed to fsync the performance
statistics file`.
Let's not interrupt the writer thread and just notify it about cancelling
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] IGNITE-29086 Fix loss of performance statistics records on stop for JDK 21 [ignite]
Posted by "ignitetcbot (via GitHub)" <gi...@apache.org>.
ignitetcbot commented on PR #13642:
URL: https://github.com/apache/ignite/pull/13642#issuecomment-5983414523
<!-- tcbot-analysis-comment chainBuildId=9380876 rerunBuildIds=9385970,9385972 -->
### TCBot Test Analysis
* TeamCity: [--> Run :: All Results](https://ci2.ignite.apache.org/viewLog.html?buildId=9380876&buildTypeId=IgniteTests24Java8_RunAll)
* Branch: `pull/13642/head`
* Base: `master`
* Tested commit: [bbaa245](https://github.com/apache/ignite/pull/13642/commits/bbaa245e58239a0a1f0acd6fcdc39151d4ce1205)
#### Possible Blockers (0)
No blockers found.
#### New Tests (0)
No new tests found.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org