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•3 years ago
|
||
Comment 3•3 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•3 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•3 years ago
|
||
(well I guess it doesn't cause them, it unveils them)
Assignee | ||
Comment 6•3 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•3 years ago
|
||
Comment 10•3 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•3 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•3 years ago
|
||
Also, that document suggests those leaks should be ignored. How are they appearing now?
Comment 13•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/e301f30010f4
https://hg.mozilla.org/mozilla-central/rev/41d6f4cf3ec3
Description
•