Multiple leaks rooted on XREMain::mGdkDisplay
Categories
(Core :: Widget: Gtk, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox91 | --- | fixed |
People
(Reporter: glandium, Assigned: glandium)
References
Details
Attachments
(2 files)
[task 2021-06-24T08:00:59.960Z] 08:00:59 INFO - 25:02.54 TEST-UNEXPECTED-FAIL | valgrind-test | 32 bytes in 1 blocks are definitely lost at malloc / XextAddDisplay / DRI2QueryExtension / dri2CreateDisplay
[task 2021-06-24T08:00:59.960Z] 08:00:59 INFO - 25:02.54 ==12430== 32 bytes in 1 blocks are definitely lost in loss record 5,201 of 11,617
[task 2021-06-24T08:00:59.960Z] 08:00:59 INFO - 25:02.54 ==12430== at 0x483577F: malloc+111 (vg_replace_malloc.c:307)
[task 2021-06-24T08:00:59.960Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x76F90BF: XextAddDisplay+47 (extutil.c:106)
[task 2021-06-24T08:00:59.960Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x119252E0: DRI2QueryExtension+16 (dri2.c:210)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11927B97: dri2CreateDisplay+39 (dri2_glx.c:1419)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11917909: __glXInitialize (glxext.c:929)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11917909: __glXInitialize+905 (glxext.c:857)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11912F63: GetGLXPrivScreenConfig+35 (glxcmds.c:174)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x119138B0: glXQueryServerString+48 (glxcmds.c:1352)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x6ECA878: epoxy_glx_version+40 (in /usr/lib/x86_64-linux-gnu/libepoxy.so.0.0.0)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63F7D64: gdk_x11_screen_init_gl+180 (gdkglcontext-x11.c:869)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63F8101: _gdk_x11_screen_update_visuals_for_gl+241 (gdkglcontext-x11.c:1213)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x6400B87: _gdk_x11_screen_init_visuals+1367 (gdkvisual-x11.c:309)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63FDDB5: _gdk_x11_screen_new+229 (gdkscreen-x11.c:940)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63EDF49: _gdk_x11_display_open+201 (gdkdisplay-x11.c:1602)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63C29EC: gdk_display_manager_open_display+332 (gdkdisplaymanager.c:472)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0xF3B3109: XREMain::XRE_mainStartup(bool*)+2505 (checkouts/gecko/toolkit/xre/nsAppRunner.cpp:4356)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0xF3B808B: XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&)+987 (checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5433)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0xF3B8469: XRE_main(int, char**, mozilla::BootstrapConfig const&)+153 (checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5504)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x12B0F3: do_main (checkouts/gecko/browser/app/nsBrowserApp.cpp:225)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x12B0F3: main+1203 (checkouts/gecko/browser/app/nsBrowserApp.cpp:378)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430==
[task 2021-06-24T08:00:59.960Z] 08:00:59 INFO - 25:02.54 TEST-UNEXPECTED-FAIL | valgrind-test | 32 bytes in 1 blocks are definitely lost at malloc / XextAddDisplay / DRI2QueryExtension / dri2CreateDisplay
[task 2021-06-24T08:00:59.960Z] 08:00:59 INFO - 25:02.54 ==12430== 32 bytes in 1 blocks are definitely lost in loss record 5,201 of 11,617
[task 2021-06-24T08:00:59.960Z] 08:00:59 INFO - 25:02.54 ==12430== at 0x483577F: malloc+111 (vg_replace_malloc.c:307)
[task 2021-06-24T08:00:59.960Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x76F90BF: XextAddDisplay+47 (extutil.c:106)
[task 2021-06-24T08:00:59.960Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x119252E0: DRI2QueryExtension+16 (dri2.c:210)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11927B97: dri2CreateDisplay+39 (dri2_glx.c:1419)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11917909: __glXInitialize (glxext.c:929)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11917909: __glXInitialize+905 (glxext.c:857)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11912F63: GetGLXPrivScreenConfig+35 (glxcmds.c:174)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x119138B0: glXQueryServerString+48 (glxcmds.c:1352)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x6ECA878: epoxy_glx_version+40 (in /usr/lib/x86_64-linux-gnu/libepoxy.so.0.0.0)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63F7D64: gdk_x11_screen_init_gl+180 (gdkglcontext-x11.c:869)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63F8101: _gdk_x11_screen_update_visuals_for_gl+241 (gdkglcontext-x11.c:1213)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x6400B87: _gdk_x11_screen_init_visuals+1367 (gdkvisual-x11.c:309)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63FDDB5: _gdk_x11_screen_new+229 (gdkscreen-x11.c:940)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63EDF49: _gdk_x11_display_open+201 (gdkdisplay-x11.c:1602)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63C29EC: gdk_display_manager_open_display+332 (gdkdisplaymanager.c:472)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0xF3B3109: XREMain::XRE_mainStartup(bool*)+2505 (checkouts/gecko/toolkit/xre/nsAppRunner.cpp:4356)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0xF3B808B: XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&)+987 (checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5433)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0xF3B8469: XRE_main(int, char**, mozilla::BootstrapConfig const&)+153 (checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5504)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x12B0F3: do_main (checkouts/gecko/browser/app/nsBrowserApp.cpp:225)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x12B0F3: main+1203 (checkouts/gecko/browser/app/nsBrowserApp.cpp:378)
[task 2021-06-24T08:00:59.962Z] 08:00:59 INFO - 25:02.54 ==12430==
[task 2021-06-24T08:00:59.965Z] 08:00:59 INFO - 25:02.54 TEST-UNEXPECTED-FAIL | valgrind-test | 32 bytes in 1 blocks are definitely lost at malloc / XextAddDisplay / XF86DRIQueryExtension / driCreateDisplay
[task 2021-06-24T08:00:59.965Z] 08:00:59 INFO - 25:02.54 ==12430== 32 bytes in 1 blocks are definitely lost in loss record 5,202 of 11,617
[task 2021-06-24T08:00:59.966Z] 08:00:59 INFO - 25:02.54 ==12430== at 0x483577F: malloc+111 (vg_replace_malloc.c:307)
[task 2021-06-24T08:00:59.966Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x76F90BF: XextAddDisplay+47 (extutil.c:106)
[task 2021-06-24T08:00:59.966Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11929170: XF86DRIQueryExtension+16 (XF86dri.c:101)
[task 2021-06-24T08:00:59.966Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11929046: driCreateDisplay+38 (dri_glx.c:1000)
[task 2021-06-24T08:00:59.966Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11917915: __glXInitialize (glxext.c:930)
[task 2021-06-24T08:00:59.966Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11917915: __glXInitialize+917 (glxext.c:857)
[task 2021-06-24T08:00:59.966Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x11912F63: GetGLXPrivScreenConfig+35 (glxcmds.c:174)
[task 2021-06-24T08:00:59.966Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x119138B0: glXQueryServerString+48 (glxcmds.c:1352)
[task 2021-06-24T08:00:59.966Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x6ECA878: epoxy_glx_version+40 (in /usr/lib/x86_64-linux-gnu/libepoxy.so.0.0.0)
[task 2021-06-24T08:00:59.967Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63F7D64: gdk_x11_screen_init_gl+180 (gdkglcontext-x11.c:869)
[task 2021-06-24T08:00:59.967Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63F8101: _gdk_x11_screen_update_visuals_for_gl+241 (gdkglcontext-x11.c:1213)
[task 2021-06-24T08:00:59.967Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x6400B87: _gdk_x11_screen_init_visuals+1367 (gdkvisual-x11.c:309)
[task 2021-06-24T08:00:59.967Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63FDDB5: _gdk_x11_screen_new+229 (gdkscreen-x11.c:940)
[task 2021-06-24T08:00:59.967Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63EDF49: _gdk_x11_display_open+201 (gdkdisplay-x11.c:1602)
[task 2021-06-24T08:00:59.967Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x63C29EC: gdk_display_manager_open_display+332 (gdkdisplaymanager.c:472)
[task 2021-06-24T08:00:59.967Z] 08:00:59 INFO - 25:02.54 ==12430== by 0xF3B3109: XREMain::XRE_mainStartup(bool*)+2505 (checkouts/gecko/toolkit/xre/nsAppRunner.cpp:4356)
[task 2021-06-24T08:00:59.968Z] 08:00:59 INFO - 25:02.54 ==12430== by 0xF3B808B: XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&)+987 (checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5433)
[task 2021-06-24T08:00:59.968Z] 08:00:59 INFO - 25:02.54 ==12430== by 0xF3B8469: XRE_main(int, char**, mozilla::BootstrapConfig const&)+153 (checkouts/gecko/toolkit/xre/nsAppRunner.cpp:5504)
[task 2021-06-24T08:00:59.968Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x12B0F3: do_main (checkouts/gecko/browser/app/nsBrowserApp.cpp:225)
[task 2021-06-24T08:00:59.968Z] 08:00:59 INFO - 25:02.54 ==12430== by 0x12B0F3: main+1203 (checkouts/gecko/browser/app/nsBrowserApp.cpp:378)
[task 2021-06-24T08:00:59.968Z] 08:00:59 INFO - 25:02.54 ==12430==
Assignee | ||
Comment 1•2 years ago
|
||
Pushed by mh@glandium.org: https://hg.mozilla.org/integration/autoland/rev/19805fbf94a3 Close GdkDisplay in XREMain destructor. r=stransky
Comment 3•2 years ago
|
||
Backed out 2 changesets (Bug 1695118, Bug 1718131) for causing leaks.
Backout link: https://hg.mozilla.org/integration/autoland/rev/a8bbda789e1211440e02049837869b6c6b0b2daa
Push with failures, failure log.
Assignee | ||
Comment 4•2 years ago
|
||
Off the top of your head, any idea how releasing the gdk display on shutdown could cause leaks in servo?
Assignee | ||
Comment 5•2 years ago
|
||
(well I guess it doesn't cause them, it unveils them)
Assignee | ||
Comment 6•2 years ago
|
||
AFAICT, it's a voluntary leak. https://searchfox.org/mozilla-central/rev/fc95c6ad297d9d257f05599d01741503f3f57326/servo/components/style/sharing/mod.rs#511
I'm mystified that ASan doesn't complain about it already...
Assignee | ||
Comment 8•2 years ago
|
||
Pushed by mh@glandium.org: https://hg.mozilla.org/integration/autoland/rev/e301f30010f4 Add LSan suppressions for intentional leaks that somehow LSan didn't catch before. r=emilio https://hg.mozilla.org/integration/autoland/rev/41d6f4cf3ec3 Close GdkDisplay in XREMain destructor. r=stransky
Comment 10•2 years ago
|
||
(In reply to Mike Hommey [:glandium] from comment #6)
I'm mystified that ASan doesn't complain about it already...
Unlike our other leak checkers, LSan doesn't report leaked objects that are transitively reachable from global data. That might be the cause of this.
There's some discussion of precisely what that means (which you probably understand better than me) on this page, in the discussion of the "root set": https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizerDesignDocument
Assignee | ||
Comment 11•2 years ago
|
||
(In reply to Andrew McCreight [:mccr8] from comment #10)
(In reply to Mike Hommey [:glandium] from comment #6)
I'm mystified that ASan doesn't complain about it already...
Unlike our other leak checkers, LSan doesn't report leaked objects that are transitively reachable from global data. That might be the cause of this.
There's some discussion of precisely what that means (which you probably understand better than me) on this page, in the discussion of the "root set": https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizerDesignDocument
I don't see the connection between GDK display state and servo global state, though...
Assignee | ||
Comment 12•2 years ago
|
||
Also, that document suggests those leaks should be ignored. How are they appearing now?
Comment 13•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/e301f30010f4
https://hg.mozilla.org/mozilla-central/rev/41d6f4cf3ec3
Description
•