Closed Bug 1297525 Opened 8 years ago Closed 4 years ago

Network monitor keeps an unbounded number of responses in memory (leads to OOM)

Categories

(DevTools :: Netmonitor, defect, P2)

defect

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 1594378

People

(Reporter: cpearce, Unassigned)

References

(Blocks 2 open bugs)

Details

On Win32 Nightly builds, it appears that the Developer Console is leaking memory.

We noticed this because in Bug 1296453 if the heap expands enough, video playback can fail to allocate a shmem for shuffling video frames between processes, and Firefox fails to play video.

This appears to only affect Win32 builds. I expect that 64 bit Firefox has enough virtual address space that the issue isn't a problem there.

STR:
1. Open https://shaka-player-demo.appspot.com/demo/?asset=https://indiereign02-a.akamaihd.net/1b24bcca-ca60-4fbb-b7f3-880c313aa628/1723/big_buck_bunny.mpd;license=https://staging-wwdits.shift72.com/services/license/widevine/cenc/fallback
2. Click "Load".
3. Open Developer Console (CTRL+SHIFT+K)
4. Open about:memory.
5. Click "measure and save".
6. Wait a while say 1 minute.
7. Click "measure and save again.
8. Click "load and diff", comparing the first memory report with the second.
9. Observe lots of strings, i.e., output such as:

266.38 MB (100.0%) -- explicit
├───88.10 MB (33.07%) -- js-non-window
│   ├──69.84 MB (26.22%) -- zones
│   │  ├──66.04 MB (24.79%) -- zone(0xe2a000)
│   │  │  ├──33.95 MB (12.74%) -- strings
│   │  │  │  ├───1.36 MB (00.51%) ++ string(length=1427864, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACuAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAAL5A6AAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAAUaOwIAAAAAADOGAAEAAAAAOa8AAQAAAAA5zgABAAAAADo+AAEAAAAAPVgAAQAAAAAszAABAAAAACfaAAEAAAAAFhwAAQAAAAAOJAABAAAAAAtqAAEAAAAACusAAQAAAAAMjwABAAAAAA3QAAEAAAAABscAAQAAAAAHngABAAAAAAYxAAEAAAAACCkAAQAAAAAH/AABAAAAAARYAAEAAAAAAw0AAQAAAAACWgABAAAAAAFWAAEAAAAAATAAAQAAAASTtwIAAAAAAAOhAAEAAAAABT8AAQAAAAAJlQABAAAAAAdBAAEAAAAABH0AAQAAAAAGsgABAAAAAAaOAAEAAAAABSoAAQAAAAAGTAABAAAAAAjFAAEAAAAABLoAAQAAAAAEAgABAAAAAAOHAAEAAAAAAWwAAQAAAACKBQABAAAAACqCAAEAAAAAG0cAAQAAAAAc0QABAAAAABuhAAEAAAAAH54AAQAAAAAdUgABAAAAABxgAAEAAAAAHjwAAQAAAACnSQIAAAAAAB3cAAEAAAAAHqQAAQAAAAAd/gABAAAAAB3lAAEAAAAAITMAAQAAAAAZswABAAAAABazAAEAAAAAJXsAAQAAAAAfGAABAAAAACDgAAEAAAAAIRYAAQAAAAAcIQABAAAAAB7qAAEAAAAAIB4AAQAAAAAejAABAAAAACHJAAEAAAAAHKQAAQAAAAAc6QABAAAAACBgAAEAAAAAGCgAAQAAAAA" (truncated))
│   │  │  │  ├───1.36 MB (00.51%) ++ string(length=1418688, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACwAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAAMBz+AAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAAJMHQIAAAAAACp3AAEAAAAAINYAAQAAAAAqyQABAAAAADBZAAEAAAAARpwAAQAAAAA7qwABAAAAADQTAAEAAAAAStEAAQAAAABOyQABAAAAAFFXAAEAAAAAMtIAAQAAAAAm5AABAAAAABjzAAEAAAAAGIQAAQAAAAKNvwABAAAAAA2iAAEAAAAACl4AAQAAAAAOwwABAAAAABIoAAEAAAAAFA4AAQAAAAAS+AABAAAAABIUAAEAAAAAFCoAAQAAAAMfmAIAAAAAAAivAAEAAAAAE58AAQAAAAAQswABAAAAAA9OAAEAAAAAEkkAAQAAAAATUwABAAAAAA+UAAEAAAAAE8sAAQAAAAAPHgABAAAAABJYAAEAAAAADSwAAQAAAAAPxgABAAAAAAvWAAEAAAAACFcAAQAAAAAHaAABAAAAAL+LAAEAAAAAGaIAAQAAAAAVwAABAAAAABOQAAEAAAAAFoAAAQAAAAAjhQABAAAAABXrAAEAAAAAFVIAAQAAAAM1lgIAAAAAABBOAAEAAAAAE60AAQAAAAANkAABAAAAABcFAAEAAAAAELYAAQAAAAARygABAAAAABfSAAEAAAAAGs4AAQAAAAAOqAABAAAAABeeAAEAAAAAFOIAAQAAAAAQrwABAAAAABTWAAEAAAAAGHUAAQAAAAANuQABAAAAABnPAAEAAAAAFZUAAQAAAAARcwABAAAAABVFAAEAAAAAGjMAAQAAAAA" (truncated))
│   │  │  │  ├───1.36 MB (00.51%) ++ string(length=1419392, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACtAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAAL0nYAAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAAAtYAIAAAAAAB2cAAEAAAAAIoYAAQAAAAAiQwABAAAAAB6rAAEAAAAAHoQAAQAAAAAlhAABAAAAABs9AAEAAAAAGJEAAQAAAAAVtgABAAAAABf8AAEAAAAAFesAAQAAAAATngABAAAAABNPAAEAAAAAEHwAAQAAAAALVAABAAAABKI6AAEAAAAACtQAAQAAAAAEhwABAAAAAAO0AAEAAAAAA3EAAQAAAAAFEQABAAAAAAT+AAEAAAAABZQAAQAAAAWmPgIAAAAAAAScAAEAAAAAB7MAAQAAAAAK3QABAAAAAA7KAAEAAAAAFj8AAQAAAAAjeAABAAAAACZUAAEAAAAAKlQAAQAAAAAguwABAAAAADHUAAEAAAAAKmgAAQAAAAAwlAABAAAAACNjAAEAAAAADSYAAQAAAAAHwwABAAAAAAiIAAEAAAAACqUAAQAAAAAJfAABAAAAAAZYAAEAAAAABVIAAQAAAAAIzgABAAAAAAl/AAEAAAAAB3oAAQAAAAWSWQIAAAAAAAPOAAEAAAAABAsAAQAAAAAISAABAAAAAAloAAEAAAAABy4AAQAAAAAJ/wABAAAAAAffAAEAAAAABnIAAQAAAAAHOwABAAAAAAkBAAEAAAAABqMAAQAAAAAFlAABAAAAAAckAAEAAAAAA80AAQAAAAADCAABAAAAAARtAAEAAAAADlUAAQAAAAAVeAABAAAAABYVAAEAAAAAFN8AAQAAAAA" (truncated))
│   │  │  │  ├───1.35 MB (00.51%) ++ string(length=1413508, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACiAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAALEOiAAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAAOFvwIAAAAAAAmBAAEAAAAACTUAAQAAAAAHpQABAAAAAAaPAAEAAAAABB0AAQAAAAADigABAAAAAAINAAEAAAAAAX4AAQAAAAK+WwABAAAAAAumAAEAAAAABQQAAQAAAAAGwAABAAAAABGWAAEAAAAAJBwAAQAAAAA0WwABAAAAACfRAAEAAAAAEt0AAQAAAAAR/gABAAAAAA6PAAEAAAAADIIAAQAAAAALswABAAAAAAeQAAEAAAAACIwAAQAAAANdYwIAAAAAAATvAAEAAAAAElYAAQAAAAAd2AABAAAAACihAAEAAAAAI5kAAQAAAAAwxwABAAAAADIqAAEAAAAAMjAAAQAAAAAjYQABAAAAACFSAAEAAAAAEvsAAQAAAAAW2QABAAAAAA8AAAEAAAAAGaYAAQAAAAAUBQABAAAAABnwAAEAAAAADLgAAQAAAAAQ1AABAAAAAAguAAEAAAAAC5oAAQAAAAAGKAABAAAAAAdKAAEAAAAABaIAAQAAAAOFeAIAAAAAAASbAAEAAAAACDEAAQAAAAAIMAABAAAAAAv7AAEAAAAADewAAQAAAAARdwABAAAAABOyAAEAAAAAFDcAAQAAAAAPygABAAAAABMJAAEAAAAADuIAAQAAAAAPngABAAAAAAiUAAEAAAAACnoAAQAAAAAHzwABAAAAAAufAAEAAAAAB7UAAQAAAAAMHAABAAAAAAVnAAEAAAAACYAAAQAAAAA" (truncated))
│   │  │  │  ├───1.35 MB (00.51%) ++ string(length=1414504, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACeAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAAKyoaAAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAANGRAIAAAAAAC8lAAEAAAAAN+EAAQAAAAA8TQABAAAAAD9oAAEAAAAAOBwAAQAAAABC+wABAAAAAD2XAAEAAAAASMIAAQAAAAA/jwABAAAAAFvDAAEAAAAAOD4AAQAAAAAzXAABAAAAADjrAAEAAAAARscAAQAAAABBkgABAAAAAEQpAAEAAAAANfwAAQAAAAA2sgABAAAAADg9AAEAAAAAPoYAAQAAAAA0dQABAAAAADuTAAEAAAAAMk4AAQAAAANeNAIAAAAAABdnAAEAAAAALFsAAQAAAAAvCgABAAAAACgSAAEAAAAALiAAAQAAAAArUAABAAAAAC/2AAEAAAAAM2sAAQAAAAAvvQABAAAAADcKAAEAAAAALZAAAQAAAAA6ZAABAAAAADTRAAEAAAAAOJwAAQAAAAAkxQABAAAAAH7rAAEAAAAAEdsAAQAAAAAR3AABAAAAAA4jAAEAAAAADCcAAQAAAAAOUQABAAAAAAwXAAEAAAAADhoAAQAAAAQjiAIAAAAAAAyGAAEAAAAACZMAAQAAAAAJZwABAAAAAAeHAAEAAAAAB1gAAQAAAAAHUQABAAAAAAQXAAEAAAABcIAAAQAAAAAqQgABAAAAABtFAAEAAAAAFjQAAQAAAAASwQABAAAAABM8AAEAAAAAD6cAAQAAAAAR/QABAAAAAAwoAAEAAAAAENsAAQAAAAANHQABAAAAAA3aAAEAAAAAC6gAAQAAAAA" (truncated))
│   │  │  │  ├───1.35 MB (00.51%) ++ string(length=1413016, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACoAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAALenuAAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAAFazAIAAAAAAAYSAAEAAAAF8AsAAQAAAAASLwABAAAAAA+NAAEAAAAADdIAAQAAAAAOpgABAAAAAAzPAAEAAAAAEOoAAQAAAAAODgABAAAAAAs/AAEAAAAADMgAAQAAAAALpQABAAAAAAuBAAEAAAAACoIAAQAAAAAM+QABAAAAAAvKAAEAAAAADL8AAQAAAAANQwABAAAAAA2EAAEAAAAADhoAAQAAAAAMNAABAAAAAA7IAAEAAAAADEEAAQAAAAeH7gIAAAAAAAlkAAEAAAAACcIAAQAAAAAJPAABAAAAAAoPAAEAAAAACE4AAQAAAAAHSwABAAAAAAatAAEAAAAACfgAAQAAAAAHkgABAAAAAAdtAAEAAAAABgcAAQAAAAAFSwABAAAAAAQ2AAEAAAAABOcAAQAAAAADmgABAAAAAANPAAEAAAAAAvIAAQAAAAACZAABAAAAAAHsAAEAAAAAAoMAAQAAAAACcAABAAAAAALuAAEAAAAAA0QAAQAAAAb5LAIAAAAAAASZAAEAAAAABTkAAQAAAAAEPgABAAAAAATyAAEAAAAAA50AAQAAAAADswABAAAAAANuAAEAAAAAApoAAQAAAAAB7gABAAAAAAGIAAEAAAAAARsAAQAAAAAA+AABAAAAAAB6AAEAAAABalUAAQAAAAAJaAABAAAAAATaAAEAAAAABiAAAQAAAAAHywABAAAAAAeiAAEAAAAACiEAAQAAAAA" (truncated))
│   │  │  │  ├───1.34 MB (00.50%) ++ string(length=1405332, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACjAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAALIoEAAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAANFDAIAAAAAAAe3AAEAAAAAFC0AAQAAAAAexAABAAAAACD7AAEAAAAAKRgAAQAAAAAqVwABAAAAADNnAAEAAAAAObwAAQAAAAAw/wABAAAAAD7nAAEAAAAAN3UAAQAAAAA61wABAAAAACZxAAEAAAAAIncAAQAAAAAjIQABAAAAAG9YAAEAAAAAO5kAAQAAAAA1+wABAAAAAC4WAAEAAAAAHrcAAQAAAAAZmQABAAAAAhVeAAEAAAAADx8AAQAAAAKvtQIAAAAAABNtAAEAAAAAD0MAAQAAAAAGfAABAAAAAAQ2AAEAAAAABR0AAQAAAAAEcgABAAAAAAg/AAEAAAAADG0AAQAAAAAMdAABAAAAABUlAAEAAAAADtAAAQAAAAAchAABAAAAACT0AAEAAAAANJ0AAQAAAAA1cAABAAAAADz6AAEAAAAAQGgAAQAAAABElwABAAAAAEKdAAEAAAAAPWMAAQAAAABDrgABAAAAAC/wAAEAAAAAJc0AAQAAAAKNgQIAAAAAACOJAAEAAAAAHsEAAQAAAAAfDAABAAAAADNoAAEAAAAAHhcAAQAAAAAYHQABAAAAABLQAAEAAAAADXIAAQAAAAAPAAABAAAAAAyGAAEAAAAADZIAAQAAAAAMLQABAAAAAAvQAAEAAAAACdAAAQAAAAAPDgABAAAAABQTAAEAAAAACgcAAQAAAAAKIgABAAAAAAnvAAEAAAAACKcAAQAAAAA" (truncated))
│   │  │  │  ├───1.34 MB (00.50%) ++ string(length=1408932, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAAChAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAAK/1AAAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAARv5gIAAAAAAAKYAAEAAAAAAxsAAQAAAAAJIAABAAAAAAThAAEAAAAADMIAAQAAAAAHfQABAAAAABAQAAEAAAAABsgAAQAAAAARsAABAAAAAAeuAAEAAAAAEosAAQAAAAAIEQABAAAAABM8AAEAAAAACJkAAQAAAAAR3AABAAAAABAaAAEAAAAAFEEAAQAAAAAInwABAAAAABNkAAEAAAAACT0AAQAAAAARzAABAAAAACEMAAEAAAAAEpAAAQAAAAQ+RAIAAAAAAA9XAAEAAAAACBAAAQAAAAAR0gABAAAAAAlyAAEAAAAAFWkAAQAAAAAIRAABAAAAABYUAAEAAAAAFQIAAQAAAAAXRgABAAAAAAlXAAEAAAAAGuQAAQAAAAAO2wABAAAAABkPAAEAAAAACiQAAQAAAAAZSAABAAAAAAtLAAEAAAAAF94AAQAAAAALGwABAAAAABasAAEAAAAACkkAAQAAAAAV8AABAAAAAAnpAAEAAAAAEzYAAQAAAAQWeQIAAAAAAAzpAAEAAAAAB4wAAQAAAAALggABAAAAABv0AAEAAAAAH6kAAQAAAAAoIgABAAAAADOlAAEAAAAAMFoAAQAAAAA0WAABAAAAADKwAAEAAAAANqYAAQAAAAAxFwABAAAAAEZ0AAEAAAAANB8AAQAAAAAaxwABAAAAACokAAEAAAAAHdQAAQAAAAAfhAABAAAAABumAAEAAAAAF6kAAQAAAAA" (truncated))
│   │  │  │  ├───1.34 MB (00.50%) ++ string(length=1401976, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACbAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAAKlb0AAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAARpcAIAAAAAAAokAAEAAAAAGcUAAQAAAAATvgABAAAAAA+KAAEAAAAAHM0AAQAAAAAYWQABAAAAABg8AAEAAAAAE4QAAQAAAAATJwABAAAAABCgAAEAAAAAD60AAQAAAAAM2gABAAAAAA1iAAEAAAAADicAAQAAAAAdbgABAAAAAGodAAEAAAAAFxIAAQAAAAAQ8QABAAAAAA5OAAEAAAAADskAAQAAAAATqAABAAAAAA5vAAEAAAAAEs8AAQAAAAR7IgIAAAAAAAvmAAEAAAAADPIAAQAAAAAOugABAAAAAAzEAAEAAAAAEaQAAQAAAAALwgABAAAAABl4AAEAAAAAFqYAAQAAAAASWgABAAAAAA2TAAEAAAAAEp8AAQAAAAAQtgABAAAAABFLAAEAAAAADW0AAQAAAAATngABAAAAAA1/AAEAAAAAEfoAAQAAAAALpwABAAAAABTfAAEAAAAADa0AAQAAAAAXtAABAAAAACKkAAEAAAAAFzIAAQAAAARlOQIAAAAAAAf9AAEAAAAAD3sAAQAAAAAf3QABAAAAACFbAAEAAAAAIucAAQAAAAAoOgABAAAAAC6hAAEAAAAAIcoAAQAAAAAfnwABAAAAABRMAAEAAAAAHUgAAQAAAAAScgABAAAAABc/AAEAAAAADvgAAQAAAAAd4AABAAAAABi5AAEAAAAAFUIAAQAAAAAYwwABAAAAABkpAAEAAAAAGjsAAQAAAAA" (truncated))
│   │  │  │  ├───1.34 MB (00.50%) ++ string(length=1403836, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACvAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAAL9acAAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAACPVgIAAAAAABv9AAEAAAAAGQEAAQAAAAAZSQABAAAAACAJAAEAAAAAHFIAAQAAAAAWmwABAAAAABRgAAEAAAAAGdgAAQAAAAAUYAABAAAAABgJAAEAAAAAGjAAAQAAAAAXuQABAAAAABVxAAEAAAAAFxAAAQAAAAAeGgABAAAAABumAAEAAAAAG/sAAQAAAAAf/wABAAAAABuJAAEAAAAAJCUAAQAAAAAeWgABAAAAABzkAAEAAAAAKpoAAQAAAACUoAIAAAAAABsmAAEAAAAALPkAAQAAAAAoAgABAAAAACIJAAEAAAAAMdMAAQAAAAArJgABAAAAACIuAAEAAAAAMwYAAQAAAAAnZgABAAAAACUrAAEAAAAAF1kAAQAAAAIsFAABAAAAAA5ZAAEAAAAACzUAAQAAAAAOJAABAAAAAA9vAAEAAAAAEUkAAQAAAAAPDQABAAAAAA78AAEAAAAAEvQAAQAAAAAZPQABAAAAABwKAAEAAAAAIGIAAQAAAAI54QIAAAAAAD+CAAEAAAAAa0kAAQAAAABd4QABAAAAAFTGAAEAAAAASQIAAQAAAAA/WgABAAAAADPWAAEAAAAAPwoAAQAAAABcDgABAAAAAGD0AAEAAAAAVo4AAQAAAABSmgABAAAAAFCIAAEAAAAAT7sAAQAAAABPFAABAAAAAEJJAAEAAAAAK2MAAQAAAAA1bAABAAAAAECJAAEAAAAAPT8AAQAAAAB" (truncated))
│   │  │  │  ├───1.34 MB (00.50%) ++ string(length=1404380, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACfAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAAK3B8AAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAAQFewIAAAAAAAJMAAEAAAAABOcAAQAAAAAEbAABAAAAAAMcAAEAAAAAA14AAQAAAAACHgABAAAAAAIAAAEAAAAAAOAAAQAAAAAKhgABAAAAAJgzAAEAAAAA60wAAQAAAAEPdQABAAAAAShWAAEAAAABpS0AAQAAAAGzuwABAAAAABLLAAEAAAAALsMAAQAAAAAZIwABAAAAACSkAAEAAAAAGGQAAQAAAAAe6wABAAAAABRdAAEAAAAAHWEAAQAAAAOX8AIAAAAAABCQAAEAAAAACWwAAQAAAAAL2wABAAAAADFKAAEAAAAADOgAAQAAAAALLgABAAAAAA+1AAEAAAAAGdYAAQAAAAASDgABAAAAAAdxAAEAAAAADt8AAQAAAAAH9QABAAAAABJbAAEAAAAAYFgAAQAAAABfFAABAAAAAD94AAEAAAAAJLMAAQAAAAAxIgABAAAAAD9OAAEAAAAAHiIAAQAAAAAp/gABAAAAACGIAAEAAAAAIhUAAQAAAAMMWAIAAAAAAA5uAAEAAAAAGN0AAQAAAAAPNAABAAAAAAzPAAEAAAAAClEAAQAAAAAEPwABAAAAAASQAAEAAAACoWIAAQAAAAAIgAABAAAAAAR2AAEAAAAAAtkAAQAAAAACHQABAAAAAAJvAAEAAAAAAc0AAQAAAAAC4gABAAAAAAfUAAEAAAAAB70AAQAAAAAGCwABAAAAAAbNAAEAAAAABioAAQAAAAA" (truncated))
│   │  │  │  ├───1.34 MB (00.50%) ++ string(length=1398828, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACdAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAAKuO4AAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAANcsgIAAAAAADW6AAEAAAAAQ9YAAQAAAAA8agABAAAAAETWAAEAAAAARNMAAQAAAABQrAABAAAAAEgcAAEAAAAAT7kAAQAAAABCswABAAAAAE+IAAEAAAAAQ78AAQAAAABN5AABAAAAAFGVAAEAAAAAUcoAAQAAAABF4AABAAAAAFy1AAEAAAAARrUAAQAAAABL9gABAAAAAEVnAAEAAAAAU24AAQAAAABMJAABAAAAAGxXAAEAAAAAQ5AAAQAAAANCcwIAAAAAADVhAAEAAAAASw8AAQAAAAA6RQABAAAAAE1hAAEAAAAAQ9sAAQAAAABM+wABAAAAAEnvAAEAAAAAW1AAAQAAAAA+qQABAAAAAE8HAAEAAAAASy8AAQAAAABHVwABAAAAAEe+AAEAAAAAT0UAAQAAAABDTQABAAAAAE+dAAEAAAAAR+AAAQAAAABP4AABAAAAAEzCAAEAAAAAVWYAAQAAAABEPgABAAAAAFF8AAEAAAAASPEAAQAAAANI6AIAAAAAAC5/AAEAAAAAQdwAAQAAAABJkAABAAAAAF/cAAEAAAAAOxAAAQAAAABIvwABAAAAAERbAAEAAAAATkEAAQAAAABAFwABAAAAAExbAAEAAAAAPwEAAQAAAABKWwABAAAAAEImAAEAAAAARSoAAQAAAABJtwABAAAAAE7/AAEAAAAAO6IAAQAAAABI5gABAAAAAEiNAAEAAAAAQm4AAQAAAAB" (truncated))
│   │  │  │  ├───1.34 MB (00.50%) ++ string(length=1399136, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACcAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAAKp1WAAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAARaIgIAAAAAABdKAAEAAAAAGU0AAQAAAAAXjgABAAAAACtFAAEAAAAAHW4AAQAAAAAVxAABAAAAABowAAEAAAAAIhEAAQAAAAAd2AABAAAAABvfAAEAAAAAHH0AAQAAAAAceAABAAAAABuxAAEAAAAAIoYAAQAAAAAfTQABAAAAABz5AAEAAAAAGqcAAQAAAAAbrgABAAAAABonAAEAAAAAFoYAAQAAAAAdRwABAAAAACEhAAEAAAAAIf0AAQAAAANsEwIAAAAAABnoAAEAAAAAJgsAAQAAAAAwDAABAAAAACZKAAEAAAAAMjwAAQAAAAA2HwABAAAAADdcAAEAAAAAQdwAAQAAAAA75wABAAAAAFmEAAEAAAAAPjUAAQAAAABGCAABAAAAAEhMAAEAAAAASaMAAQAAAAA42QABAAAAAR+jAAEAAAAAUl4AAQAAAABU3wABAAAAAFB1AAEAAAAAWYEAAQAAAABMuQABAAAAAFvIAAEAAAAASWkAAQAAAANsuAIAAAAAADmmAAEAAAAAUpQAAQAAAABKPAABAAAAAFAJAAEAAAAATp0AAQAAAABQ/wABAAAAAE7wAAEAAAAAWFQAAQAAAABBNwABAAAAAE20AAEAAAAATSEAAQAAAABPNwABAAAAAElMAAEAAAAAU9sAAQAAAABWMQABAAAAAHBgAAEAAAAAR2EAAQAAAABW2AABAAAAAFIGAAEAAAAAVEMAAQAAAAB" (truncated))
│   │  │  │  ├───1.31 MB (00.49%) ++ string(length=1371292, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACqAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAALnayAAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAAHWlAIAAAAAABPeAAEAAAAAE1kAAQAAAAARpQABAAAAABToAAEAAAAAEx4AAQAAAAARQQABAAAAABODAAEAAAAAFHEAAQAAAAAUZQABAAAAABIRAAEAAAAAE1QAAQAAAAAUpwABAAAAABBsAAEAAAAAEnAAAQAAAAAQyQABAAAAAA7EAAEAAAAADtwAAQAAAAARHgABAAAAAA96AAEAAAAADbsAAQAAAAANyQABAAAAAA6OAAEAAAAADQMAAQAAAAH1+gIAAAAAAAxvAAEAAAAACyAAAQAAAAAOngABAAAAAAqEAAEAAAAACt4AAQAAAAAJjwABAAAAAAf7AAEAAAAACSoAAQAAAAAHGgABAAAAAAXGAAEAAAAABB4AAQAAAAACHAABAAAAAAJvAAEAAAAABR0AAQAAAAAScAABAAAAABd5AAEAAAAAHgUAAQAAAAAg4wABAAAAADFmAAEAAAAAOBIAAQAAAAA65QABAAAAAEMeAAEAAAAARX4AAQAAAAGNtQIAAAAAABkWAAEAAAAAErQAAQAAAAAGqAABAAAAAte4AAEAAAAAITkAAQAAAAArOAABAAAAAC71AAEAAAAAM10AAQAAAAAzFwABAAAAADgxAAEAAAAAJT4AAQAAAAAjsAABAAAAAB9KAAEAAAAACvAAAQAAAAEF7wABAAAAAB63AAEAAAAAHmoAAQAAAAAmvAABAAAAACZvAAEAAAAAKnsAAQAAAAA" (truncated))
│   │  │  │  ├───1.15 MB (00.43%) ++ string(<non-notable strings>)
│   │  │  │  ├───1.14 MB (00.43%) ++ string(length=1064016, copies=1, "/x00/x00/x07/xA5moof/x00/x00/x00/x10mfhd/x00/x00/x00/x00/x00/x00/x00/xB0/x00/x00/x07/x8Dtraf/x00/x00/x00/x10tfhd/x00/x02/x00/x00/x00/x00/x00/x01/x00/x00/x00/x10tfdt/x00/x00/x00/x00/x00/xC0s/xF8/x00/x00/x00,sgpd/x01/x00/x00/x00seig/x00/x00/x00/x14/x00/x00/x00/x01/x00/x00/x01/b/xDF/x9B/xD5/xA7/x01!U/x97/xBE/x93g/x94*/x90/x13/x97/x00/x00/x00/x1Csbgp/x00/x00/x00/x00seig/x00/x00/x00/x01/x00/x00/x00H/x00/x01/x00/x01/x00/x00/x00/x19saiz/x00/x00/x00/x01cenc/x00/x00/x00/x00/x10/x00/x00/x00H/x00/x00/x00 saio/x01/x00/x00/x01cenc/x00/x00/x00/x00/x00/x00/x00/x01/x00/x00/x00/x00/x00/x00/x03%/x00/x00/x02Ttrun/x00/x00/x06/x01/x00/x00/x00H/x00/x00/x07/xAD/x00/x02L/x1D/x02/x00/x00/x00/x00/x00*w/x00/x01/x00/x00/x00/x00 /xD6/x00/x01/x00/x00/x00/x00*/xC9/x00/x01/x00/x00/x00/x000Y/x00/x01/x00/x00/x00/x00F/x9C/x00/x01/x00/x00/x00/x00;/xAB/x00/x01/x00/x00/x00/x004/x13/x00/x01/x00/x00/x00/x00J/xD1/x00/x01/x00/x00/x00/x00N/xC9/x00/x01/x00/x00/x00/x00QW/x00/x01/x00/x00/x00/x002/xD2/x00/x01/x00/x00/x00/x00&/xE4/x00/x01/x00/x00/x00/x00/" (truncated))
│   │  │  │  ├───1.14 MB (00.43%) ++ string(length=1195968, copies=1, "AAAHpW1vb2YAAAAQbWZoZAAAAAAAAACgAAAHjXRyYWYAAAAQdGZoZAACAAAAAAABAAAAEHRmZHQAAAAAAK7beAAAACxzZ3BkAQAAAHNlaWcAAAAUAAAAAQAAAQjfm9WnASFVl76TZ5QqkBOXAAAAHHNiZ3AAAAAAc2VpZwAAAAEAAABIAAEAAQAAABlzYWl6AAAAAWNlbmMAAAAAEAAAAEgAAAAgc2FpbwEAAAFjZW5jAAAAAAAAAAEAAAAAAAADJQAAAlR0cnVuAAAGAQAAAEgAAAetAAMndgIAAAAAAAnAAAEAAAAABs8AAQAAAAAHQwABAAAAAAUvAAEAAAAABnYAAQAAAAAGOwABAAAAAAnLAAEAAAAADA4AAQAAAAAIRgABAAAAAAWBAAEAAAAABhIAAQAAAAAEkgABAAAAAAYIAAEAAAAAEaIAAQAAAAAJaAABAAAAAAXiAAEAAAAACEQAAQAAAAAE3AABAAAAAAdfAAEAAAAACJIAAQAAAAAHVAABAAAAAAVrAAEAAAAACVQAAQAAAAMjYwIAAAAAAAiuAAEAAAAABV8AAQAAAAAEagABAAAAAAU7AAEAAAAABvAAAQAAAAAD7gABAAAAAAZDAAEAAAAABgwAAQAAAAAFOAABAAAAAAVoAAEAAAAABhsAAQAAAAAFkAABAAAAAAVVAAEAAAAABL8AAQAAAAAGuQABAAAAAAoHAAEAAAAABg8AAQAAAAADdQABAAAAAAL7AAEAAAAACwsAAQAAAAAFsgABAAAAAAHzAAEAAAAABDUAAQAAAAL5GAIAAAAAAAYMAAEAAAAAAtAAAQAAAAACFgABAAAAAAHpAAEAAAAAAbYAAQAAAAABQAABAAAAAAHPAAEAAAAAAoMAAQAAAAABJQABAAAAAAEfAAEAAAAAAOsAAQAAAAAAkwABAAAAAACIAAEAAAAAAFwAAQAAAAAAVAABAAAAAvteAAEAAAAACgQAAQAAAAADsgABAAAAAAMFAAEAAAAAAf8AAQAAAAA" (truncated))


If you don't have the developer console open, you don't see the strings.

I also see Firefox's memory "working set" increasing over time in task manager.
There's also Bug 1275752 - I'm not sure if it's a dupe though given the different STR
See Also: → 1275752
I've attempted to come up with another STR using:

1) Open data:text/html;charset=utf-8,<button onclick="setInterval(() => console.log('hello from ' + Date.now()), 100)">start</button>
2) Open webconsole on that page
3) Open a new tab with about:memory
4) Click "measure and save".
5) Wait a while say 1 minute.
6) Click "measure and save again.
7) Click "load and diff", comparing the first memory report with the second.

See strings like: 

│   │  │  ├──-21.53 MB (14.18%) -- strings
│   │  │  │  ├───-8.25 MB (05.44%) ++ (132 tiny)
│   │  │  │  ├───-6.90 MB (04.54%) ── string(<non-notable strings>)/gc-heap/latin1 [2]
│   │  │  │  ├───-2.65 MB (01.74%) ── string(length=10, copies=115620, "1470348948")/gc-heap/latin1
│   │  │  │  ├───-2.04 MB (01.34%) ── string(length=10, copies=89144, "1469804130")/gc-heap/latin1
│   │  │  │  └───-1.69 MB (01.11%) ── string(length=10, copies=73800, "1470348947")/gc-heap/latin1

But, I *also* see similar strings when comparing if I skip step 2 - aka don't ever open the webconsole (which means both frontend and actors aren't initialized).

Is it possible the extra strings are just the result of storing the last 1000 console API calls in storage?  Not sure that I'm reading the reports in about:memory correctly (and the # of 'copies' seem very suspicious in this case) - but we are intentionally storing these [0] so that if you open the console after loading a page you can see previous messages that happened before you opened it.

[0]: https://dxr.mozilla.org/mozilla-central/source/dom/console/ConsoleAPIStorage.js
Flags: needinfo?(cpearce)
(In reply to Brian Grinstead [:bgrins] from comment #2)
> Is it possible the extra strings are just the result of storing the last
> 1000 console API calls in storage?

Wouldn't we see logging in the console if that were the case? I don't see significant logging in the shaka player demo case. I'm not familiar with the console API, but the strings in the shaka player case look to me like they're base64 encoded binary data. One of the strings looks like an MP4 file segment.
Flags: needinfo?(cpearce)
(In reply to Brian Grinstead [:bgrins] from comment #2)
> Is it possible the extra strings are just the result of storing the last
> 1000 console API calls in storage?

No. You eventually get an OOM crash on Win32 if you wait long enough.
> 2) Open webconsole on that page

a. Does it leak also if you don't open webconsole?
b. What happens if you close that window, run GC/CC and the measure again?
It's the network monitor, which we now start automatically when opening any part of the toolbox.  It's buffering the response data of the XHR requests used to load each chunk of video data.  If you look at the network monitor tab, you can watch it steadily grow in total request size while the video plays, and all responses remain accessible.

Seems like we may need to cap the total response data we keep around, or something of the sort.
Component: Developer Tools: Console → Developer Tools: Netmonitor
Summary: Developer console appears to leak strings → Network monitor keeps an unbounded number of responses in memory (leads to OOM)
(In reply to J. Ryan Stinnett [:jryans] (use ni?) from comment #7)
> Seems like we may need to cap the total response data we keep around, or
> something of the sort.

Is there a good way how to determine which data can be dropped when the cap is reached? That means predicting which requests details will be expanded by the user. Seems impossible.

Another option is to set NetMonitor's saveRequestAndResponseBodies to false until the NetMonitor UI is actually opened.
(In reply to Jarda Snajdr [:jsnajdr] from comment #8)
> (In reply to J. Ryan Stinnett [:jryans] (use ni?) from comment #7)
> > Seems like we may need to cap the total response data we keep around, or
> > something of the sort.
> 
> Is there a good way how to determine which data can be dropped when the cap
> is reached? That means predicting which requests details will be expanded by
> the user. Seems impossible.

I was imagining something like tracking the total size of all response bodies in the UI, and then once that's over some limit, drop the old ones.
I am witnessing high memory use on streaming sites with just the developer toolbar open.  Steps to reproduce:

1. Launch a fresh browser instance
2. Open the toolbar (Shift + F2)
3. Visit twitch.tv, watch a high resolution stream for 15-30 minutes
4. Watch resident set creep up
5. about:memory reveals large memory use in strings

GC graph for one of these strings:

Parsing /tmp/gc-edges.4269.1488969418.log. Done loading graph.

via nsXPCWrappedJS::mJSObj :
0x7f421a7d8a60 [Object <no private>]
    --[owner]--> 0x7f421a7d82e0 [Object <no private>]
    --[_actorPool]--> 0x7f421a7d8380 [Object <no private>]
    --[_actors]--> 0x7f4212d2ccc0 [Object <no private>]
    --[server1.conn0.child1/longString882]--> 0x7f420fd67e80 [Object <no private>]
    --[string]--> 0x7f41ff692160 [string <length 1255088 (truncated)> R0AAFwAAsA0AAc]
1. Launch a fresh browser instance
2. Go to youtube.com
3. Monitor your memory usage in a system monitor
4. Crawl is as many videos as you can... (after each one loads)
5. watch the RAM being kinda stable

6. Open the Inspect Tool
7. do the same from step 3
8. Watch the RAM go wild.
(In reply to pmgouveia from comment #11)
> 1. Launch a fresh browser instance
> 2. Go to youtube.com
> 3. Monitor your memory usage in a system monitor
> 4. Crawl is as many videos as you can... (after each one loads)
> 5. watch the RAM being kinda stable
> 
> 6. Open the Inspect Tool
> 7. do the same from step 3
> 8. Watch the RAM go wild.

that happens in firefox 51.0.1 - linux

cant replicate on nightly-build 54
(In reply to Henri Kemppainen from comment #10)
> I am witnessing high memory use on streaming sites with just the developer
> toolbar open.  Steps to reproduce:
> 
> 1. Launch a fresh browser instance
> 2. Open the toolbar (Shift + F2)
> 3. Visit twitch.tv, watch a high resolution stream for 15-30 minutes
> 4. Watch resident set creep up
> 5. about:memory reveals large memory use in strings

Thanks for pointing this out.  It appears the Developer Toolbar / GCLI is starting network listening, leading to this issue.  That seems like a variant that is easier to fix, since there's no need for this to happen.

I've filed bug 1346854 to improve this specific case, and we'll use this bug for the general issue when the full toolbox is used.
Blocks: 1389864
Product: Firefox → DevTools
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.