RFR: 8301302: Platform preferences API [v32]

Kevin Rushforth kcr at openjdk.org
Wed Nov 29 21:32:52 UTC 2023


On Fri, 24 Nov 2023 19:26:05 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:

>> Please read [this document](https://gist.github.com/mstr2/9f46f92c98d3c86aa6a0b4224a9a6548) for an introduction to the Platform Preferences API, and how it interacts with the proposed style theme and stage appearance features.
>
> Michael Strauß has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - typo
>  - rename local variables

I'm doing some additional testing of this, and ran a full test run on Ubuntu 20.04, 22.04, and 16.04. On 16.04, 33 of the system tests crashed while exiting (it likely would have been more, but I excluded running robot tests for my initial test run on 16.04). The crashes are intermittent, running a smaller batch of tests a few times results in varying numbers of them crashing (but always a couple of them do).

The crash point was the same for all of them. It's crashing in the `PlatformSupport` destructor when deleting a JNI global reference. Here is a portion of one of the log files showing the crash:


#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f2920eda3e3, pid=8065, tid=8103
#
# JRE version: Java(TM) SE Runtime Environment (19.0.2+7) (build 19.0.2+7-44)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (19.0.2+7-44, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x5473e3]  AccessInternal::PostRuntimeDispatch<G1BarrierSet::AccessBarrier<548964ul, G1BarrierSet>, (AccessInternal::BarrierType)0, 548964ul>::oop_access_barrier(void*, oopDesc*)+0x53
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P" (or dumping to /localhome/kcr/javafx/jfx-tmp/jfx/rt/tests/system/core.8065)
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#

...

Current thread (0x00007f2894193c00):  JavaThread "JavaFX Application Thread" [_thread_in_vm, id=8103, stack(0x00007f2880000000,0x00007f2880101000)]

Stack: [0x00007f2880000000,0x00007f2880101000],  sp=0x00007f28800feb30,  free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x5473e3]  AccessInternal::PostRuntimeDispatch<G1BarrierSet::AccessBarrier<548964ul, G1BarrierSet>, (AccessInternal::BarrierType)0, 548964ul>::oop_access_barrier(void*, oopDesc*)+0x53
V  [libjvm.so+0x95100a]  JNIHandles::destroy_global(_jobject*)+0x1a
V  [libjvm.so+0x912853]  jni_DeleteGlobalRef+0x63
C  [libglassgtk3.so+0x1c801]  PlatformSupport::~PlatformSupport()+0x31
C  [libglassgtk3.so+0x183d4]  Java_com_sun_glass_ui_gtk_GtkApplication__1terminateLoop+0x24
j  com.sun.glass.ui.gtk.GtkApplication._terminateLoop()V+0 javafx.graphics at 22-internal
j  com.sun.glass.ui.gtk.GtkApplication.finishTerminating()V+9 javafx.graphics at 22-internal
j  com.sun.glass.ui.Application.terminate()V+82 javafx.graphics at 22-internal
j  com.sun.javafx.tk.quantum.QuantumToolkit.lambda$exit$14()Ljava/lang/Object;+5 javafx.graphics at 22-internal
...

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

PR Comment: https://git.openjdk.org/jfx/pull/1014#issuecomment-1832729157


More information about the openjfx-dev mailing list