RFR: JDK-8298104: NPE on synchronizeSceneNodes()

John Hendrikx jhendrikx at openjdk.org
Thu May 4 15:17:24 UTC 2023


On Thu, 4 May 2023 12:11:13 GMT, buedi <duke at openjdk.org> wrote:

> Hello John, this issue occurs very rarely, approximately 1-2 times per month, on systems that run 24/7. However, when it does occur, the JavaFx application gets stuck in an endless loop (--> [logError-JavaFxScene.txt](https://github.com/openjdk/jfx/files/11397119/logError-JavaFxScene.txt)) and cannot recover from it. Currently, I am unable to replicate this phenomenon. I fully agree with you that it's essential to address the problem at its root cause. However, adding an additional check for a null value would at least solve a rare but blocking issue.
> 
> ![sceneError_](https://user-images.githubusercontent.com/5691507/236197639-8c240ed2-d135-4abc-9a29-5d1cfa3e0984.png)

The problem is, this kind of fix is unlikely to be accepted as it hides the root cause of perhaps a much more serious issue. Skipping `null`s for example will mean that some nodes probably didn't get synced in the last run due to an exception or some other kind of bug in the code (I was looking at Node reuse as a possible cause for this problem).

The NPE you show is probably not the first exception that is logged, but the one that is most visible because it keeps being repeated once the dirty nodes list gets into a bad state.

You said you already fixed this yourself, would you be willing to add diagnostics to your build that you could share so the root cause can be tracked down? A few log lines when a bad state is detected that could give us insights into what went wrong could go a long way. I will take another look tonight to see if I can find how this list is getting corrupted; most likely it is an exception thrown by `syncPeer`; if that could be caught and logged it will probably tell us the rest of the story.

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

PR Comment: https://git.openjdk.org/jfx/pull/1123#issuecomment-1534960245


More information about the openjfx-dev mailing list