adoptium / adoptium-support

For end-user problems reported with our binary distributions
Apache License 2.0
45 stars 15 forks source link

Java fx native crash in build pipline (javafx_font_freetype) #7

Closed 1-alex98 closed 4 years ago

1-alex98 commented 5 years ago

Enviroment Linux inside Docker (Ubuntu 14.04.5 LTS)

In our travis build pipeline our unit tests (which load java fx Elements) fail. https://travis-ci.org/FAForever/downlords-faf-client/builds/553860824?utm_source=github_status&utm_medium=notification For the full error log see line 744 in the Travis build.

---------------  T H R E A D  ---------------
Current thread (0x00007fbb000a0000):  JavaThread "JavaFX Application Thread" daemon [_thread_in_native, id=5831, stack(0x00007fbad6a47000,0x00007fbad6b48000)]
Stack: [0x00007fbad6a47000,0x00007fbad6b48000],  sp=0x00007fbad6b42950,  free space=1006k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libfreetype.so.6+0x19f4a]  FT_Done_Library+0x9a
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.sun.javafx.font.freetype.OSFreetype.FT_Done_FreeType(J)I+0
j  com.sun.javafx.font.freetype.FTFactory.getFactory()Lcom/sun/javafx/font/PrismFontFactory;+116
v  ~StubRoutines::call_stub
J 1809  jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@10.0.2 (0 bytes) @ 0x00007fbb276686b7 [0x00007fbb27668640+0x0000000000000077]
J 1808 c1 jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@10.0.2 (104 bytes) @ 0x00007fbb204516ec [0x00007fbb20451340+0x00000000000003ac]
J 1740 c1 jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@10.0.2 (10 bytes) @ 0x00007fbb27666184 [0x00007fbb27666140+0x0000000000000044]
J 1515 c1 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@10.0.2 (65 bytes) @ 0x00007fbb203d4294 [0x00007fbb203d4180+0x0000000000000114]
j  com.sun.javafx.font.PrismFontFactory.getFontFactory(Ljava/lang/String;)Lcom/sun/javafx/font/PrismFontFactory;+36
j  com.sun.javafx.font.PrismFontFactory.getFontFactory()Lcom/sun/javafx/font/PrismFontFactory;+174
j  com.sun.prism.GraphicsPipeline.getFontFactory()Lcom/sun/javafx/font/FontFactory;+25
v  ~StubRoutines::call_stub
J 1809  jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@10.0.2 (0 bytes) @ 0x00007fbb276686b7 [0x00007fbb27668640+0x0000000000000077]
J 1808 c1 jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@10.0.2 (104 bytes) @ 0x00007fbb204516ec [0x00007fbb20451340+0x00000000000003ac]
J 1740 c1 jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@10.0.2 (10 bytes) @ 0x00007fbb27666184 [0x00007fbb27666140+0x0000000000000044]
J 1515 c1 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; java.base@10.0.2 (65 bytes) @ 0x00007fbb203d4294 [0x00007fbb203d4180+0x0000000000000114]
j  com.sun.javafx.font.PrismFontLoader.getFontFactoryFromPipeline()Lcom/sun/javafx/font/FontFactory;+97
j  com.sun.javafx.font.PrismFontLoader.loadFont(Ljavafx/scene/text/Font;)V+5
j  javafx.scene.text.Font.<init>(Ljava/lang/String;D)V+115
j  javafx.scene.text.Font.getDefault()Ljavafx/scene/text/Font;+31
j  javafx.scene.CssStyleHelper.<clinit>()V+60
v  ~StubRoutines::call_stub
j  javafx.scene.Node.reapplyCss()V+24
j  javafx.scene.Node.reapplyCSS()V+70
j  javafx.scene.Node.invalidatedScenes(Ljavafx/scene/Scene;Ljavafx/scene/SubScene;)V+301
j  javafx.scene.Node.setScenes(Ljavafx/scene/Scene;Ljavafx/scene/SubScene;)V+84
j  javafx.scene.Scene$8.invalidated()V+344
j  javafx.beans.property.ObjectPropertyBase.markInvalid()V+30
j  javafx.beans.property.ObjectPropertyBase.set(Ljava/lang/Object;)V+130
j  javafx.scene.Scene.setRoot(Ljavafx/scene/Parent;)V+9
j  javafx.scene.Scene.<init>(Ljavafx/scene/Parent;DDLjavafx/scene/paint/Paint;ZLjavafx/scene/SceneAntialiasing;)V+463
j  javafx.scene.Scene.<init>(Ljavafx/scene/Parent;DD)V+17
j  com.faforever.client.test.AbstractPlainJavaFxTest.createScene(Ljavafx/stage/Stage;)Ljavafx/scene/Scene;+14
j  com.faforever.client.test.AbstractPlainJavaFxTest.start(Ljavafx/stage/Stage;)V+24
j  org.testfx.framework.junit.ApplicationAdapter.start(Ljavafx/stage/Stage;)V+9
j  org.testfx.toolkit.impl.ApplicationServiceImpl.lambda$start$0(Ljavafx/application/Application;Ljavafx/stage/Stage;)Ljava/lang/Void;+6
j  org.testfx.toolkit.impl.ApplicationServiceImpl$$Lambda$158.call()Ljava/lang/Object;+8
j  java.util.concurrent.FutureTask.run()V+39 java.base@10.0.2
j  com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Ljava/lang/Runnable;)Ljava/lang/Void;+5
j  com.sun.javafx.application.PlatformImpl$$Lambda$148.run()Ljava/lang/Object;+4
v  ~StubRoutines::call_stub
j  java.security.AccessController.doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;+0 java.base@10.0.2
j  com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Ljava/lang/Runnable;Ljava/security/AccessControlContext;)V+11
j  com.sun.javafx.application.PlatformImpl$$Lambda$146.run()V+8
j  com.sun.glass.ui.InvokeLaterDispatcher$Future.run()V+8
v  ~StubRoutines::call_stub
j  com.sun.glass.ui.gtk.GtkApplication._runLoop(Ljava/lang/Runnable;Z)V+0
j  com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(Ljava/lang/Runnable;Z)V+16
j  com.sun.glass.ui.gtk.GtkApplication$$Lambda$137.run()V+12
j  java.lang.Thread.run()V+11 java.base@10.0.2
v  ~StubRoutines::call_stub

If you wanna see what exactly we called see https://github.com/FAForever/downlords-faf-client/pull/1340 .

1-alex98 commented 5 years ago

We did not really change anything on that code segment of ours since it keeps happening.

1-alex98 commented 5 years ago

This is probably the wrong repo right?

1-alex98 commented 5 years ago

Happens since travis switched to AdoptOpenJDK

karianna commented 5 years ago

@johanvos I'm assuming this is because AdoptOpenJDK needs to be bundled with a certain freetype lib or that travis needs to run an apt-get install of freettype?

karianna commented 5 years ago

Aslo see AdoptOpenJDK/openjdk-build#577

1-alex98 commented 5 years ago

Well we have added javfx our selves and it worked with normal openjdk before

1-alex98 commented 5 years ago

I switched back to openjdk https://openjdk.java.net and it started working again

karianna commented 5 years ago

OK, thanks - I'm not sure what's causing that crash but I can only imagine it's a difference in freetype version.

1-alex98 commented 5 years ago

Yeah i am not sure either. Not too much into this.

aahlenst commented 4 years ago

Closing due to inactivity. If you want us to pursue this, please test with recent versions and provide an executable test case.