Bug 1250

Summary: Gnome & Compiz Unity TestDisplayLifecycle02NEWT Assert.assertEquals(false,window1.isVisible()); failed.
Product: [JogAmp] Newt Reporter: Xerxes Rånby <xerxes>
Component: x11Assignee: Sven Gothel <sgothel>
Status: RESOLVED DUPLICATE    
Severity: normal    
Priority: P4    
Version: 2.3.2   
Hardware: All   
OS: all   
Type: DEFECT SCM Refs:
Workaround: ---
Bug Depends on:    
Bug Blocks: 1249    
Attachments: Fedora22.Gnome.TestDisplayLifecycle02NEWT.VERBOSE_ON.log
Ubuntu14.04.3.CompizUnity.TestDisplayLifecycle02NEWT.VERBOSE_ON.FAIL.log
Ubuntu14.04.3.CompizUnity.TestDisplayLifecycle02NEWT.VERBOSE_ON.PASS.log
Fedora22.Gnome.TestDisplayLifecycle02NEWT.VERBOSE_ON.PASS.log

Description Xerxes Rånby 2015-10-09 10:07:39 CEST
Created attachment 757 [details]
Fedora22.Gnome.TestDisplayLifecycle02NEWT.VERBOSE_ON.log

There was 1 failure:
1) testDisplayCreate02(com.jogamp.opengl.test.junit.newt.TestDisplayLifecycle02NEWT)
java.lang.AssertionError: expected:<false> but was:<true>
	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.Assert.failNotEquals(Assert.java:743)
	at org.junit.Assert.assertEquals(Assert.java:118)
	at org.junit.Assert.assertEquals(Assert.java:144)
	at com.jogamp.opengl.test.junit.newt.TestDisplayLifecycle02NEWT.testDisplayCreate02Impl(TestDisplayLifecycle02NEWT.java:299)


        // just make the Window invisible
        window1.setVisible(false);
        Assert.assertEquals(true,window1.isNativeValid());
        Assert.assertEquals(false,window1.isVisible());


(01:55:58) sgothel: src/newt/native/X11Common.h: enable the VERBOSE_ON <- if you encounter an issue

Attached log using VERBOSE_ON

Using:
jogl git c1594efa78951f187a75ec0b9a85cf64fba418d4
gluegen git cc1e9bc698b7f11097c1e114027e53121552f280
+ following changes to enable VERBOSE_ON
diff --git a/make/scripts/tests.sh b/make/scripts/tests.sh
index 60ef1e9..9f6803a 100644
--- a/make/scripts/tests.sh
+++ b/make/scripts/tests.sh
@@ -474,7 +474,7 @@ function testawtswt() {
 #testawt com.jogamp.opengl.test.junit.jogl.demos.gl2.awt.TestGearsAWTAnalyzeBug455 $*
 #testawt com.jogamp.opengl.test.junit.jogl.demos.gl2.awt.TestGearsGLJPanelAWT $*
 #testawt com.jogamp.opengl.test.junit.jogl.demos.gl2.awt.TestGearsGLJPanelAWTBug450 $*
-testawt com.jogamp.opengl.test.junit.jogl.demos.gl2.newt.TestGearsNewtAWTWrapper $*
+#testawt com.jogamp.opengl.test.junit.jogl.demos.gl2.newt.TestGearsNewtAWTWrapper $*
 #testnoawt com.jogamp.opengl.test.junit.jogl.demos.gl2.newt.TestGearsNEWT $*
 #testnoawt com.jogamp.opengl.test.junit.jogl.demos.gl2.newt.TestTeapotNEWT $*
 #testnoawt com.jogamp.opengl.test.junit.jogl.demos.gl3.newt.TestGeomShader01TextureGL3NEWT $*
@@ -644,12 +644,12 @@ testawt com.jogamp.opengl.test.junit.jogl.demos.gl2.newt.TestGearsNewtAWTWrapper
 #testnoawt com.jogamp.opengl.test.junit.newt.TestGLWindows03NEWTAnimResize $*
 #testnoawt com.jogamp.opengl.test.junit.newt.TestGLWindowInvisiblePointer01NEWT $*
 #testnoawt com.jogamp.opengl.test.junit.newt.TestDisplayLifecycle01NEWT
-#testnoawt com.jogamp.opengl.test.junit.newt.TestDisplayLifecycle02NEWT
+testnoawt com.jogamp.opengl.test.junit.newt.TestDisplayLifecycle02NEWT
 #testnoawt com.jogamp.opengl.test.junit.newt.TestBug1211IRQ00NEWT $*
 #testnoawt com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT $*
 #testnoawt com.jogamp.opengl.test.junit.newt.mm.TestScreenMode00aNEWT $*
 #testnoawt com.jogamp.opengl.test.junit.newt.mm.TestScreenMode00bNEWT $*
-#testnoawt com.jogamp.opengl.test.junit.newt.mm.TestScreenMode00cNEWT $*
+##testnoawt com.jogamp.opengl.test.junit.newt.mm.TestScreenMode00cNEWT $*
 #testnoawt com.jogamp.opengl.test.junit.newt.mm.TestScreenMode01aNEWT $*
 #testnoawt com.jogamp.opengl.test.junit.newt.mm.TestScreenMode01bNEWT $*
 #testnoawt com.jogamp.opengl.test.junit.newt.mm.TestScreenMode01cNEWT $*
@@ -776,7 +776,7 @@ testawt com.jogamp.opengl.test.junit.jogl.demos.gl2.newt.TestGearsNewtAWTWrapper
 #testawt com.jogamp.opengl.test.junit.newt.event.TestNewtEventModifiersNEWTWindowAWT $*
 #testawt com.jogamp.opengl.test.junit.newt.event.TestNewtEventModifiersAWTCanvas $*
 #testawt com.jogamp.opengl.test.junit.newt.event.TestNewtEventModifiersNewtCanvasAWT $*
-#testawtswt com.jogamp.opengl.test.junit.newt.event.TestNewtEventModifiersNewtCanvasSWTAWT $*
+##testawtswt com.jogamp.opengl.test.junit.newt.event.TestNewtEventModifiersNewtCanvasSWTAWT $*
 #testawt com.jogamp.opengl.test.junit.newt.event.TestParentingFocus01SwingAWTRobot $*
 #testawt com.jogamp.opengl.test.junit.newt.event.TestParentingFocus02SwingAWTRobot $*
 #testawt com.jogamp.opengl.test.junit.newt.event.TestParentingFocus03KeyTraversalAWT $*
diff --git a/src/newt/native/X11Common.h b/src/newt/native/X11Common.h
index f9254ab..ef7fcf9 100644
--- a/src/newt/native/X11Common.h
+++ b/src/newt/native/X11Common.h
@@ -60,7 +60,7 @@
 
 #include "NewtCommon.h"
 
-// #define VERBOSE_ON 1
+#define VERBOSE_ON 1
 
 #ifdef VERBOSE_ON
     #define DBG_PRINT(...) fprintf(stderr, __VA_ARGS__); fflush(stderr)
Comment 1 Xerxes Rånby 2015-10-09 14:17:58 CEST
This bug trigger using Ubuntu 14.04.3 LTS using the Compiz Unity window manager as well

./TEST-com.jogamp.opengl.test.junit.newt.TestDisplayLifecycle02NEWT.xml:    <failure message="expected:&lt;false&gt; but was:&lt;true&gt;" type="junit.framework.AssertionFailedError">junit.framework.AssertionFailedError: expected:&lt;false&gt; but was:&lt;true&gt;
./TEST-com.jogamp.opengl.test.junit.newt.TestDisplayLifecycle02NEWT.xml-	at com.jogamp.opengl.test.junit.newt.TestDisplayLifecycle02NEWT.testDisplayCreate02Impl(TestDisplayLifecycle02NEWT.java:299)
./TEST-com.jogamp.opengl.test.junit.newt.TestDisplayLifecycle02NEWT.xml-	at com.jogamp.opengl.test.junit.newt.TestDisplayLifecycle02NEWT.testDisplayCreate02(TestDisplayLifecycle02NEWT.java:357)
Comment 2 Xerxes Rånby 2015-10-09 14:49:25 CEST
Created attachment 758 [details]
Ubuntu14.04.3.CompizUnity.TestDisplayLifecycle02NEWT.VERBOSE_ON.FAIL.log
Comment 3 Xerxes Rånby 2015-10-09 14:50:41 CEST
Created attachment 759 [details]
Ubuntu14.04.3.CompizUnity.TestDisplayLifecycle02NEWT.VERBOSE_ON.PASS.log

occasionally this test passes using Compiz Unity, attaching PASS log to ease compare.
Comment 4 Sven Gothel 2015-10-09 22:25:11 CEST
issues are of Bug 1249, which has been reopened now
Comment 5 Xerxes Rånby 2015-10-09 23:03:14 CEST
Created attachment 760 [details]
Fedora22.Gnome.TestDisplayLifecycle02NEWT.VERBOSE_ON.PASS.log

Attaching log from Fedora22 Gnome when it occasionally pass.

Comparing the four logs

+++ when gnome pass it do:

Fedora22.Gnome.TestDisplayLifecycle02NEWT.VERBOSE_ON.PASS.log

Thread[main,5,main] GearsES2.display 0x34c4973 640x480, swapInterval 1, drawable 0x2c00002
duration: 144
X11: reconfigureWindow0 dpy 0x7f171c1862a0, scrn 0, parent (nil)/0x29b, win 0x2c00002, 0/0 640x480, parentChange 0, isChild 0, undecorated[change 0, val 0], fullscreen[change 0, val 0 (span 0)], alwaysOn[Top[change 0, val 0], Bottom[change 0, val 0]], visible[change 1, val 0, tempInvisible 0], resizable[change 0, val 1], sticky[change 0, val 0], fsEWMHFlags 0
X11: reconfigureWindow0 setPosSize 0/0 640x480
X11: reconfigureWindow0 VISIBLE OFF
X11: setVisible -> 0, useWM: 1, wait 0, window 0x2c00002
X11: reconfigureWindow0 X (full)
X11: event . ConfigureNotify call 0x2c00002 (parent 0x2c00002, above (nil)) 0/37 640x480 0, child-event: 0
...... [0] -> [8/25]: _NET_WM_STATE_HIDDEN
**************** X11: WM_STATE of 0x2c00002: 1 props -> 0x100
X11: event . ConfigureNotify call 0x2c00002 - isMapped 1, visibleChanged 0, map_state 2


+++ when gnome fail it do:

Fedora22.Gnome.TestDisplayLifecycle02NEWT.VERBOSE_ON.FAIL.log

Thread[main,5,main] GearsES2.display 0x34c4973 640x480, swapInterval 1, drawable 0x2c00002
duration: 120
X11: reconfigureWindow0 dpy 0x7f73c4186660, scrn 0, parent (nil)/0x29b, win 0x2c00002, 0/27 640x480, parentChange 0, isChild 0, undecorated[change 0, val 0], fullscreen[change 0, val 0 (span 0)], alwaysOn[Top[change 0, val 0], Bottom[change 0, val 0]], visible[change 1, val 0, tempInvisible 0], resizable[change 0, val 1], sticky[change 0, val 0], fsEWMHFlags 0
X11: reconfigureWindow0 setPosSize 0/27 640x480
X11: reconfigureWindow0 VISIBLE OFF
X11: setVisible -> 0, useWM: 1, wait 0, window 0x2c00002
X11: reconfigureWindow0 X (full)
X11: event . ConfigureNotify call 0x2c00002 (parent 0x2c00002, above (nil)) 0/64 640x480 0, child-event: 0
**************** X11: WM_STATE of 0x2c00002: 0 props -> 0x0
X11: event . ConfigureNotify call 0x2c00002 - isMapped 1, visibleChanged 1, map_state 2
Comment 6 Xerxes Rånby 2015-10-09 23:09:17 CEST
+++ when compiz unity pass it do:

Ubuntu14.04.3.CompizUnity.TestDisplayLifecycle02NEWT.VERBOSE_ON.PASS.log

Thread[main,5,main] GearsES2.display 0x7a6a906f 640x480, swapInterval 1, drawable 0x4400002
X11: event . ConfigureNotify call 0x4400004 (parent 0x4400004, above (nil)) 1280/52 640x480 0, child-event: 0
...... [0] -> [13/25]: _NET_WM_STATE_FOCUSED
**************** X11: WM_STATE of 0x4400004: 1 props -> 0x2000
X11: event . ConfigureNotify call 0x4400004 - isMapped 1, visibleChanged 1, map_state 2
NewtWindows_updateInsets: insets by _NET_FRAME_EXTENTS [ l 0, r 0, t 28, b 0 ]
X11: event . ConfigureNotify call 0x4400004 (parent 0x4400004, above (nil)) 1280/52 640x480 0, child-event: 0
...... [0] -> [13/25]: _NET_WM_STATE_FOCUSED
**************** X11: WM_STATE of 0x4400004: 1 props -> 0x2000
X11: event . ConfigureNotify call 0x4400004 - isMapped 1, visibleChanged 1, map_state 2
NewtWindows_updateInsets: insets by _NET_FRAME_EXTENTS [ l 0, r 0, t 28, b 0 ]
duration: 150
X11: reconfigureWindow0 dpy 0x7fe6f016f4b0, scrn 0, parent (nil)/0x295, win 0x4400002, 65/24 640x480, parentChange 0, isChild 0, undecorated[change 0, val 0], fullscreen[change 0, val 0 (span 0)], alwaysOn[Top[change 0, val 0], Bottom[change 0, val 0]], visible[change 1, val 0, tempInvisible 0], resizable[change 0, val 1], sticky[change 0, val 0], fsEWMHFlags 0
X11: reconfigureWindow0 setPosSize 65/24 640x480
X11: reconfigureWindow0 VISIBLE OFF
X11: setVisible -> 0, useWM: 1, wait 0, window 0x4400002
X11: reconfigureWindow0 X (full)
X11: event . ConfigureNotify call 0x4400002 (parent 0x4400002, above (nil)) 75/62 640x480 0, child-event: 0
...... [0] -> [8/25]: _NET_WM_STATE_HIDDEN
**************** X11: WM_STATE of 0x4400002: 1 props -> 0x100
X11: event . ConfigureNotify call 0x4400002 - isMapped 1, visibleChanged 0, map_state 2

+++ when compiz unity fail it do:

Ubuntu14.04.3.CompizUnity.TestDisplayLifecycle02NEWT.VERBOSE_ON.FAIL.log

Thread[main,5,main] GearsES2.display 0x10e155fb 640x480, swapInterval 1, drawable 0x4400002
X11: event . ConfigureNotify call 0x4400004 - isMapped 1, visibleChanged 1, map_state 2
NewtWindows_updateInsets: insets by _NET_FRAME_EXTENTS [ l 0, r 0, t 28, b 0 ]
duration: 148
X11: reconfigureWindow0 dpy 0x7f65940215b0, scrn 0, parent (nil)/0x295, win 0x4400002, 65/24 640x480, parentChange 0, isChild 0, undecorated[change 0, val 0], fullscreen[change 0, val 0 (span 0)], alwaysOn[Top[change 0, val 0], Bottom[change 0, val 0]], visible[change 1, val 0, tempInvisible 0], resizable[change 0, val 1], sticky[change 0, val 0], fsEWMHFlags 0
X11: reconfigureWindow0 setPosSize 65/24 640x480
X11: reconfigureWindow0 VISIBLE OFF
X11: setVisible -> 0, useWM: 1, wait 0, window 0x4400002
X11: reconfigureWindow0 X (full)
X11: event . ConfigureNotify call 0x4400002 (parent 0x4400002, above (nil)) 75/62 640x480 0, child-event: 0
**************** X11: WM_STATE of 0x4400002: 0 props -> 0x0
X11: event . ConfigureNotify call 0x4400002 - isMapped 1, visibleChanged 1, map_state 2
Comment 7 Sven Gothel 2015-10-10 02:30:51 CEST
issues fixed w/ fixes for Bug 1249, addressing same/similar cause.

*** This bug has been marked as a duplicate of bug 1249 ***