2,400 instances of "nsWindow::GetNativeData called with bad value" emitted from widget/gtk/nsWindow.cpp during linux64 debug testing

RESOLVED FIXED in Firefox 52

Status

()

defect
P3
normal
RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: erahm, Assigned: rhunt)

Tracking

(Blocks 1 bug)

Trunk
mozilla52
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox52 fixed)

Details

(Whiteboard: tpi:+)

Attachments

(1 attachment)

> 2412 WARNING: nsWindow::GetNativeData called with bad value: file widget/gtk/nsWindow.cpp, line 1756

This warning [1] shows up in the following test suites:

>    468 - desktop-test-linux64/debug-web-platform-tests-reftests-e10s Wr
>    468 - desktop-test-linux64/debug-web-platform-tests-reftests Wr
>    272 - desktop-test-linux64/debug-mochitest-media-e10s mda
>    266 - desktop-test-linux64/debug-mochitest-media mda
>    213 - desktop-test-linux64/debug-mochitest-chrome-3 c3
>    125 - desktop-test-linux64/debug-mochitest-jetpack JP
>     96 - desktop-test-linux64/debug-mochitest-chrome-1 c1
>     77 - desktop-test-linux64/debug-mochitest-clipboard cl
>     71 - desktop-test-linux64/debug-mochitest-clipboard-e10s cl
>     63 - desktop-test-linux64/debug-mochitest-chrome-2 c2
>     36 - desktop-test-linux64/debug-mochitest-a11y a11y
>     36 - desktop-test-linux64/debug-firefox-ui-functional-local en-US
>     28 - desktop-test-linux64/debug-firefox-ui-functional-local-e10s en-US
>     16 - desktop-test-linux64/debug-firefox-ui-functional-remote en-US
>     11 - desktop-test-linux64/debug-firefox-ui-functional-remote-e10s en-US
>      8 - desktop-test-linux64/debug-mochitest-gpu-e10s gpu
>      8 - desktop-test-linux64/debug-mochitest-gpu gpu
>      6 - desktop-test-linux64/debug-crashtest-e10s C
>      6 - desktop-test-linux64/debug-crashtest C
>      3 - desktop-test-linux64/debug-reftest-no-accel-7 Ru7
>      3 - desktop-test-linux64/debug-reftest-no-accel-e10s-8 Ru8
>      3 - desktop-test-linux64/debug-reftest-no-accel-e10s-7 Ru7
>      3 - desktop-test-linux64/debug-reftest-no-accel-5 Ru5
>      3 - desktop-test-linux64/debug-reftest-8 R8
>      3 - desktop-test-linux64/debug-reftest-7 R7
>      3 - desktop-test-linux64/debug-web-platform-tests-e10s-5 5
>      3 - desktop-test-linux64/debug-reftest-no-accel-8 Ru8
>      3 - desktop-test-linux64/debug-reftest-no-accel-e10s-4 Ru4
>      3 - desktop-test-linux64/debug-reftest-no-accel-6 Ru6
>      3 - desktop-test-linux64/debug-reftest-e10s-5 R5
>      3 - desktop-test-linux64/debug-reftest-e10s-3 R3
>      3 - desktop-test-linux64/debug-reftest-e10s-1 R1
>      3 - desktop-test-linux64/debug-jsreftest-e10s-1 J1
>      3 - desktop-test-linux64/debug-reftest-2 R2
>      3 - desktop-test-linux64/debug-reftest-e10s-6 R6
>      3 - desktop-test-linux64/debug-reftest-5 R5
>      3 - desktop-test-linux64/debug-reftest-e10s-7 R7
>      3 - desktop-test-linux64/debug-reftest-e10s-2 R2
>      3 - desktop-test-linux64/debug-reftest-4 R4
>      3 - desktop-test-linux64/debug-reftest-no-accel-4 Ru4
>      3 - desktop-test-linux64/debug-reftest-no-accel-e10s-1 Ru1
>      3 - desktop-test-linux64/debug-reftest-no-accel-e10s-5 Ru5
>      3 - desktop-test-linux64/debug-jsreftest-e10s-2 J2
>      3 - desktop-test-linux64/debug-reftest-no-accel-e10s-3 Ru3
>      3 - desktop-test-linux64/debug-reftest-3 R3
>      3 - desktop-test-linux64/debug-reftest-6 R6
>      3 - desktop-test-linux64/debug-reftest-e10s-4 R4
>      3 - desktop-test-linux64/debug-reftest-e10s-8 R8
>      3 - desktop-test-linux64/debug-reftest-no-accel-2 Ru2
>      3 - desktop-test-linux64/debug-reftest-no-accel-3 Ru3
>      3 - desktop-test-linux64/debug-reftest-no-accel-1 Ru1
>      3 - desktop-test-linux64/debug-reftest-1 R1
>      3 - desktop-test-linux64/debug-web-platform-tests-5 5
>      3 - desktop-test-linux64/debug-reftest-no-accel-e10s-6 Ru6
>      3 - desktop-test-linux64/debug-reftest-no-accel-e10s-2 Ru2
>      3 - desktop-test-linux64/debug-jsreftest-1 J1
>      3 - desktop-test-linux64/debug-jsreftest-2 J2
>      2 - desktop-test-linux64/debug-web-platform-tests-e10s-7 7
>      2 - desktop-test-linux64/debug-web-platform-tests-7 7
>      1 - desktop-test-linux64/debug-web-platform-tests-e10s-8 8
>      1 - desktop-test-linux64/debug-web-platform-tests-2 2
>      1 - desktop-test-linux64/debug-web-platform-tests-e10s-1 1
>      1 - desktop-test-linux64/debug-web-platform-tests-e10s-6 6
>      1 - desktop-test-linux64/debug-web-platform-tests-12 12
>      1 - desktop-test-linux64/debug-web-platform-tests-4 4
>      1 - desktop-test-linux64/debug-web-platform-tests-9 9
>      1 - desktop-test-linux64/debug-web-platform-tests-e10s-4 4
>      1 - desktop-test-linux64/debug-web-platform-tests-8 8
>      1 - desktop-test-linux64/debug-web-platform-tests-e10s-11 11
>      1 - desktop-test-linux64/debug-web-platform-tests-e10s-12 12
>      1 - desktop-test-linux64/debug-web-platform-tests-1 1
>      1 - desktop-test-linux64/debug-web-platform-tests-6 6
>      1 - desktop-test-linux64/debug-web-platform-tests-e10s-9 9
>      1 - desktop-test-linux64/debug-web-platform-tests-10 10
>      1 - desktop-test-linux64/debug-web-platform-tests-3 3
>      1 - desktop-test-linux64/debug-web-platform-tests-e10s-10 10
>      1 - desktop-test-linux64/debug-web-platform-tests-11 11
>      1 - desktop-test-linux64/debug-web-platform-tests-e10s-2 2
>      1 - desktop-test-linux64/debug-web-platform-tests-e10s-3 3

It shows up in 1552 tests. A few of the most prevalent:

>    152 -        Shutdown
>     96 -        jetpack-package/addon-sdk/source/test/test-simple-prefs.js.testUnloadOfDynamicPrefGeneration
>     54 - [e10s] Shutdown
>     14 - [e10s] dom/plugins/test/mochitest/test_pluginstream_err.html
>     14 -        dom/plugins/test/mochitest/test_pluginstream_err.html
>     12 -        layout/xul/test/test_windowminmaxsize.xul
>     10 - [e10s] dom/media/tests/mochitest/test_getUserMedia_mediaStreamConstructors.html
>      9 -        toolkit/content/tests/chrome/test_dialogfocus.xul
>      9 -        test_restore_windows_after_restart.py TestRestoreWindowsAfterRestart.test_with_variety
>      9 -        toolkit/content/tests/chrome/test_preferences.xul

[1] https://hg.mozilla.org/mozilla-central/annotate/62f79d676e0e/widget/gtk/nsWindow.cpp#l1756
Bisection points to this push on m-c: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=1789229965bfc5e7b08dfcf1c054c366abe1267a&tochange=d61bbdd0b155f76170adef0e9433e2166c606483

My best guess is this is bug 1289251. rhunt can you take a look?
Blocks: 1289251
Flags: needinfo?(ryanhunt)
The offending line seems to be CompositorOGL.cpp:113 [1], which is odd because I don't see how that patch would have caused this to get worse. Changing nsWindow to handle NS_NATIVE_OPENGL_CONTEXT by returning nullptr fixed the issue for me.

[1] http://searchfox.org/mozilla-central/source/gfx/layers/opengl/CompositorOGL.cpp#113
Flags: needinfo?(ryanhunt)
Changes GTK nsWindow to return nullptr for NS_NATIVE_OPENGL_CONTEXT and not warn.
Attachment #8793461 - Flags: review?(erahm)
Comment on attachment 8793461 [details] [diff] [review]
native-data.patch

Review of attachment 8793461 [details] [diff] [review]:
-----------------------------------------------------------------

This seems okay to me, I looked around and it seems like the only platform that sets native data for NS_NATIVE_OPENGL_CONTEXT is gonk (and a test widget), and that's got it's own widget.
Attachment #8793461 - Flags: review?(erahm) → review+
Okay that looks good to me. I don't have commit rights/can't checkin-needed so someone else will need to. Thanks!
Keywords: checkin-needed
Priority: -- → P3
Whiteboard: tpi:+
Assignee: nobody → ryanhunt
Pushed by ryanvm@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/f65a03612d32
Fix nsWindow::GetNativeData called with bad value. r=erahm
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/f65a03612d32
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla52
You need to log in before you can comment on or make changes to this bug.