Closed
Bug 42943
Opened 25 years ago
Closed 25 years ago
Mozilla M16 is leaking shm segments in the X server
Categories
(SeaMonkey :: General, defect, P3)
Tracking
(Not tracked)
RESOLVED
INVALID
M18
People
(Reporter: elladan, Assigned: pavlov)
Details
(Keywords: helpwanted, memory-leak, Whiteboard: [nsbeta3+])
When Mozilla starts up, it leeches a whole bunch of SHM segments. Every time
you visit a page, it leeches some more.
I noticed this because other apps are unable to do MIT-XSHM connections while
Mozilla is running, presumably because it leeches so many SHM segments that it
runs into OS or X server limits.
Normal memory leaks are "ok". Do NOT leak shared resources!
Just a random guess, perhaps you're not releasing some X pixmaps etc?
Pasted below are diffs from ibcs -m:
Changes from "initial state" to "mozilla running" state:
[elladan@tandu elladan]$ diff /tmp/asdf.1 /tmp/asdf.2
12,13c12,13
< 0x00000000 154633 root 644 4096 14 dest
< 0x00000000 154634 root 644 4096 10 dest
---
> 0x00000000 154633 root 644 4096 15 dest
> 0x00000000 154634 root 644 4096 11 dest
51c51
< 0x00000000 205360 root 644 4096 2 dest
---
> 0x00000000 205360 root 644 4096 3 dest
52a53
> 0x00000000 534066 elladan 777 32768 2 dest
72a74,80
> 0x00000000 534087 elladan 777 32768 2 dest
> 0x00000000 534088 elladan 777 32768 2 dest
> 0x00000000 534089 elladan 777 32768 2 dest
> 0x00000000 534090 elladan 777 32768 2 dest
> 0x00000000 534091 elladan 777 32768 2 dest
> 0x00000000 534348 root 644 4096 2 dest
> 0x00000000 534349 root 644 4096 2 dest
75a84,88
> 0x00000000 534353 root 644 4096 2 dest
> 0x00000000 534354 root 644 4096 5 dest
> 0x00000000 535379 root 644 4096 2 dest
> 0x00000000 535380 root 644 4096 2 dest
> 0x00000000 535381 root 644 4096 2 dest
A page is loaded in mozilla:
[elladan@tandu elladan]$ diff /tmp/asdf.2 /tmp/asdf.3
88a89,97
> 0x00000000 535382 root 644 4096 2 dest
> 0x00000000 535383 root 644 4096 2 dest
> 0x00000000 535384 root 644 4096 2 dest
> 0x00000000 535385 root 644 4096 2 dest
> 0x00000000 535386 root 644 4096 2 dest
> 0x00000000 535387 root 644 4096 2 dest
> 0x00000000 535388 root 644 4096 2 dest
> 0x00000000 535389 root 644 4096 2 dest
> 0x00000000 535390 root 644 4096 2 dest
Another page is loaded:
[elladan@tandu elladan]$ diff /tmp/asdf.3 /tmp/asdf.4
97a98,111
> 0x00000000 535391 root 644 4096 2 dest
> 0x00000000 535392 root 644 4096 2 dest
> 0x00000000 535393 root 644 4096 2 dest
> 0x00000000 535394 root 644 4096 2 dest
> 0x00000000 535395 root 644 4096 2 dest
> 0x00000000 535396 root 644 4096 2 dest
> 0x00000000 535397 root 644 4096 2 dest
> 0x00000000 535398 root 644 4096 2 dest
> 0x00000000 535399 root 644 4096 2 dest
> 0x00000000 535400 root 644 4096 2 dest
> 0x00000000 535401 root 644 4096 2 dest
> 0x00000000 535402 root 644 4096 2 dest
> 0x00000000 535403 root 644 4096 2 dest
> 0x00000000 535404 root 644 4096 2 dest
Yet another page is loaded:
[elladan@tandu elladan]$ diff /tmp/asdf.4 /tmp/asdf.5
111a112,125
> 0x00000000 535405 root 644 4096 2 dest
> 0x00000000 535406 root 644 4096 2 dest
> 0x00000000 535407 root 644 4096 2 dest
> 0x00000000 535408 root 644 4096 2 dest
> 0x00000000 535409 root 644 4096 2 dest
> 0x00000000 535410 root 644 4096 2 dest
> 0x00000000 535411 root 644 4096 2 dest
> 0x00000000 535412 root 644 4096 2 dest
> 0x00000000 535413 root 644 4096 2 dest
> 0x00000000 535414 root 644 4096 2 dest
> 0x00000000 535415 root 644 4096 2 dest
> 0x00000000 535416 root 644 4096 2 dest
> 0x00000000 535417 root 644 765952 2 dest
> 0x00000000 535418 root 644 126976 2 dest
Mozilla is exited (shm segments release):
[elladan@tandu elladan]$ diff /tmp/asdf.5 /tmp/asdf.6
12,13c12,13
< 0x00000000 154633 root 644 4096 15 dest
< 0x00000000 154634 root 644 4096 11 dest
---
> 0x00000000 154633 root 644 4096 14 dest
> 0x00000000 154634 root 644 4096 10 dest
51c51
< 0x00000000 205360 root 644 4096 3 dest
---
> 0x00000000 205360 root 644 4096 2 dest
53d52
< 0x00000000 534066 elladan 777 32768 2 dest
74,80d72
< 0x00000000 534087 elladan 777 32768 2 dest
< 0x00000000 534088 elladan 777 32768 2 dest
< 0x00000000 534089 elladan 777 32768 2 dest
< 0x00000000 534090 elladan 777 32768 2 dest
< 0x00000000 534091 elladan 777 32768 2 dest
< 0x00000000 534348 root 644 4096 2 dest
< 0x00000000 534349 root 644 4096 2 dest
84,125d75
< 0x00000000 534353 root 644 4096 2 dest
< 0x00000000 534354 root 644 4096 5 dest
< 0x00000000 535379 root 644 4096 2 dest
< 0x00000000 535380 root 644 4096 2 dest
< 0x00000000 535381 root 644 4096 2 dest
< 0x00000000 535382 root 644 4096 2 dest
< 0x00000000 535383 root 644 4096 2 dest
< 0x00000000 535384 root 644 4096 2 dest
< 0x00000000 535385 root 644 4096 2 dest
< 0x00000000 535386 root 644 4096 2 dest
< 0x00000000 535387 root 644 4096 2 dest
< 0x00000000 535388 root 644 4096 2 dest
< 0x00000000 535389 root 644 4096 2 dest
< 0x00000000 535390 root 644 4096 2 dest
< 0x00000000 535391 root 644 4096 2 dest
< 0x00000000 535392 root 644 4096 2 dest
< 0x00000000 535393 root 644 4096 2 dest
< 0x00000000 535394 root 644 4096 2 dest
< 0x00000000 535395 root 644 4096 2 dest
< 0x00000000 535396 root 644 4096 2 dest
< 0x00000000 535397 root 644 4096 2 dest
< 0x00000000 535398 root 644 4096 2 dest
< 0x00000000 535399 root 644 4096 2 dest
< 0x00000000 535400 root 644 4096 2 dest
< 0x00000000 535401 root 644 4096 2 dest
< 0x00000000 535402 root 644 4096 2 dest
< 0x00000000 535403 root 644 4096 2 dest
< 0x00000000 535404 root 644 4096 2 dest
< 0x00000000 535405 root 644 4096 2 dest
< 0x00000000 535406 root 644 4096 2 dest
< 0x00000000 535407 root 644 4096 2 dest
< 0x00000000 535408 root 644 4096 2 dest
< 0x00000000 535409 root 644 4096 2 dest
< 0x00000000 535410 root 644 4096 2 dest
< 0x00000000 535411 root 644 4096 2 dest
< 0x00000000 535412 root 644 4096 2 dest
< 0x00000000 535413 root 644 4096 2 dest
< 0x00000000 535414 root 644 4096 2 dest
< 0x00000000 535415 root 644 4096 2 dest
< 0x00000000 535416 root 644 4096 2 dest
< 0x00000000 535417 root 644 765952 2 dest
< 0x00000000 535418 root 644 126976 2 dest
Comment 1•25 years ago
|
||
reporter - what linux version do you have? Asa, should we throw this to Build
Config?
Comment 4•25 years ago
|
||
asa - any ideas where this should go?
Updated•25 years ago
|
Assignee: asa → pavlov
Assignee | ||
Comment 6•25 years ago
|
||
so this problem worries me... when GdkImage creates a shared image, it adds it
to a list. then when they are destroyed, it removes them from the list.
gdk adds an atexit handler (which I have verified to be getting fired) which
goes through this list and destroys all the images in the list. So I don't
think any shared image should be leaking. All of the shm specific code in our
image code is turned off currently.
It is possible that we are leaking pixmaps, but they wouldn't be shared pixmaps,
so this wouldn't explain the problem you are seeing...
I will continue to think about this.
Status: NEW → ASSIGNED
Assignee | ||
Updated•25 years ago
|
Comment 7•25 years ago
|
||
nsbeta3+, HELP WANTED, cc blizzard.
Keywords: helpwanted
Whiteboard: [nsbeta3+]
Updated•25 years ago
|
Target Milestone: --- → M18
Assignee | ||
Comment 8•25 years ago
|
||
I am unable to reproduce this bug. I am running XFree86 4.0.1a. Mozilla tries
to grab 6 shared memory segments on startup, but it doesn't grab anymore (that
it holds on to) from page to page. I suspect that your X server is leaking
things, and that mozilla is, in fact, not leaking them.
Confirmed, I can no longer reproduce this bug on Redhat 6.2 and XFree86 4.0.1.
Previous XFree86 was 4.0.0 from a rawhide rpm set, with NV drivers. Current
XFree86 is a proper rebuild of 4.0.1 running MGA drivers (with a full OS
reinstall, too). I suspect it was either an XFree4.0 general bug, or possibly a
bug in the NVidia display driver.
Bug does not reproduce on my system with M15, M16, or a recent nightly.
Assignee | ||
Comment 10•25 years ago
|
||
ok. i'm gonna mark this invalid then. Please do let me know if you ever see us
leaking these, since that would be real bad(tm). thanks
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → INVALID
Updated•21 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•