hash tables, strings, and variants leaked in LauncherEntry.serialize()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Unity |
Fix Released
|
Undecided
|
Unassigned | ||
libunity |
Fix Released
|
Low
|
Charles Kerr | ||
libunity (Ubuntu) |
Fix Released
|
Low
|
Unassigned | ||
Precise |
Fix Released
|
Low
|
Unassigned | ||
unity (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Precise |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Test case:
1. Run valgring profiling on nautilus (with at least --leak-check=yes)
2. Confirm that the memory leaks, as noted in the original description, do not appear anymore
===
Found while running valgrind on Nautilus. This looks like a Low importance leak to me since the size of the leak is small, but I only profiled for about 30 seconds & don't know how quickly the bytes would accumulate over time.
==6455==
==6455== 444 (56 direct, 388 indirect) bytes in 1 blocks are definitely lost in loss record 19,250 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C9727D: g_slice_alloc (gslice.c:1003)
==6455== by 0x4C6BEB1: g_hash_
==6455== by 0x4A3C4C9: unity_collect_
==6455== by 0x400E29A: _dl_fixup (dl-runtime.c:119)
==6455== by 0x40146AF: _dl_runtime_resolve (dl-trampoline.
==6455== by 0xBE8B470F: ???
==6455==
==6455== 444 (56 direct, 388 indirect) bytes in 1 blocks are definitely lost in loss record 19,251 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C9727D: g_slice_alloc (gslice.c:1003)
==6455== by 0x4C6BEB1: g_hash_
==6455== by 0x4A3C4C9: unity_collect_
...etc...
==6455==
==6455== 444 (56 direct, 388 indirect) bytes in 1 blocks are definitely lost in loss record 19,250 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C9727D: g_slice_alloc (gslice.c:1003)
==6455== by 0x4C6BEB1: g_hash_
==6455== by 0x4A3C4C9: unity_collect_
==6455== by 0x400E29A: _dl_fixup (dl-runtime.c:119)
==6455== by 0x40146AF: _dl_runtime_resolve (dl-trampoline.
==6455== by 0xBE8B470F: ???
==6455==
==6455== 444 (56 direct, 388 indirect) bytes in 1 blocks are definitely lost in loss record 19,251 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C9727D: g_slice_alloc (gslice.c:1003)
==6455== by 0x4C6BEB1: g_hash_
==6455== by 0x4A3C4C9: unity_collect_
==6455== 1 bytes in 1 blocks are indirectly lost in loss record 140 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98C43: g_memdup (gstrfuncs.c:384)
==6455== by 0x4C574D9: g_bytes_new (gbytes.c:95)
==6455== by 0x4CAC4EB: g_variant_
==6455== by 0x4CAC59C: g_variant_
==6455== by 0x4A3C527: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
==6455== by 0x400E29A: _dl_fixup (dl-runtime.c:119)
==6455== by 0x40146AF: _dl_runtime_resolve (dl-trampoline.
==6455== by 0xBE8B470F: ???
==6455==
==6455== 1 bytes in 1 blocks are indirectly lost in loss record 141 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98C43: g_memdup (gstrfuncs.c:384)
==6455== by 0x4C574D9: g_bytes_new (gbytes.c:95)
==6455== by 0x4CAC4EB: g_variant_
==6455== by 0x4CAC59C: g_variant_
==6455== by 0x4A3C597: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
==6455== by 0x400E29A: _dl_fixup (dl-runtime.c:119)
==6455== by 0x40146AF: _dl_runtime_resolve (dl-trampoline.
==6455== by 0xBE8B470F: ???
==6455==
==6455== 1 bytes in 1 blocks are indirectly lost in loss record 142 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98C43: g_memdup (gstrfuncs.c:384)
==6455== by 0x4C574D9: g_bytes_new (gbytes.c:95)
==6455== by 0x4CAC4EB: g_variant_
==6455== by 0x4CAC59C: g_variant_
==6455== by 0x4A3C5CF: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
==6455== by 0x400E29A: _dl_fixup (dl-runtime.c:119)
==6455== by 0x40146AF: _dl_runtime_resolve (dl-trampoline.
==6455== by 0xBE8B470F: ???
==6455==
==6455== 1 bytes in 1 blocks are indirectly lost in loss record 143 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98C43: g_memdup (gstrfuncs.c:384)
==6455== by 0x4C574D9: g_bytes_new (gbytes.c:95)
==6455== by 0x4CAC4EB: g_variant_
==6455== by 0x4CAC59C: g_variant_
==6455== by 0x4A3C527: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
==6455==
==6455== 1 bytes in 1 blocks are indirectly lost in loss record 144 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98C43: g_memdup (gstrfuncs.c:384)
==6455== by 0x4C574D9: g_bytes_new (gbytes.c:95)
==6455== by 0x4CAC4EB: g_variant_
==6455== by 0x4CAC59C: g_variant_
==6455== by 0x4A3C597: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
==6455==
==6455== 1 bytes in 1 blocks are indirectly lost in loss record 145 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98C43: g_memdup (gstrfuncs.c:384)
==6455== by 0x4C574D9: g_bytes_new (gbytes.c:95)
==6455== by 0x4CAC4EB: g_variant_
==6455== by 0x4CAC59C: g_variant_
==6455== by 0x4A3C5CF: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
==6455==
==6455== 6 bytes in 1 blocks are indirectly lost in loss record 590 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98BDA: g_strdup (gstrfuncs.c:356)
==6455== by 0x4A3C4D9: unity_collect_
==6455== by 0x400E29A: _dl_fixup (dl-runtime.c:119)
==6455== by 0x40146AF: _dl_runtime_resolve (dl-trampoline.
==6455== by 0xBE8B470F: ???
==6455==
==6455== 6 bytes in 1 blocks are indirectly lost in loss record 591 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98BDA: g_strdup (gstrfuncs.c:356)
==6455== by 0x4A3C4D9: unity_collect_
==6455==
==6455== 7 bytes in 1 blocks are indirectly lost in loss record 650 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98BDA: g_strdup (gstrfuncs.c:356)
==6455== by 0x4A3C5BD: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
==6455== by 0x400E29A: _dl_fixup (dl-runtime.c:119)
==6455== by 0x40146AF: _dl_runtime_resolve (dl-trampoline.
==6455== by 0xBE8B470F: ???
==6455==
==6455== 7 bytes in 1 blocks are indirectly lost in loss record 651 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98BDA: g_strdup (gstrfuncs.c:356)
==6455== by 0x4A3C5BD: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
==6455== 8 bytes in 1 blocks are indirectly lost in loss record 2,680 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98C43: g_memdup (gstrfuncs.c:384)
==6455== by 0x4C574D9: g_bytes_new (gbytes.c:95)
==6455== by 0x4CAC4EB: g_variant_
==6455== by 0x4CAC704: g_variant_new_int64 (gvariant.c:541)
==6455== by 0x4A3C4EF: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
==6455== by 0x400E29A: _dl_fixup (dl-runtime.c:119)
==6455== by 0x40146AF: _dl_runtime_resolve (dl-trampoline.
==6455== by 0xBE8B470F: ???
==6455==
==6455== 8 bytes in 1 blocks are indirectly lost in loss record 2,681 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98C43: g_memdup (gstrfuncs.c:384)
==6455== by 0x4C574D9: g_bytes_new (gbytes.c:95)
==6455== by 0x4CAC4EB: g_variant_
==6455== by 0x4CAC7B4: g_variant_
==6455== by 0x4A3C55F: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
==6455== by 0x400E29A: _dl_fixup (dl-runtime.c:119)
==6455== by 0x40146AF: _dl_runtime_resolve (dl-trampoline.
==6455== by 0xBE8B470F: ???
==6455==
==6455== 8 bytes in 1 blocks are indirectly lost in loss record 2,682 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98C43: g_memdup (gstrfuncs.c:384)
==6455== by 0x4C574D9: g_bytes_new (gbytes.c:95)
==6455== by 0x4CAC4EB: g_variant_
==6455== by 0x4CAC704: g_variant_new_int64 (gvariant.c:541)
==6455== by 0x4A3C4EF: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
==6455==
==6455== 8 bytes in 1 blocks are indirectly lost in loss record 2,683 of 20,624
==6455== at 0x402BE68: malloc (in /usr/lib/
==6455== by 0x4C8296A: standard_malloc (gmem.c:85)
==6455== by 0x4C82E02: g_malloc (gmem.c:159)
==6455== by 0x4C98C43: g_memdup (gstrfuncs.c:384)
==6455== by 0x4C574D9: g_bytes_new (gbytes.c:95)
==6455== by 0x4CAC4EB: g_variant_
==6455== by 0x4CAC7B4: g_variant_
==6455== by 0x4A3C55F: unity_collect_
==6455== by 0x4A3C697: ??? (in /usr/lib/
Related branches
- Michal Hruby (community): Approve
-
Diff: 13 lines (+2/-1)1 file modifiedsrc/unity-launcher.vala (+2/-1)
Changed in libunity: | |
importance: | Undecided → Low |
summary: |
- GHashTable leaked in unity-launcher.vala's serialize function + hash tables, strings, and variants leaked in LauncherEntry.serialize() |
description: | updated |
Changed in libunity: | |
assignee: | nobody → Michal Hruby (mhr3) |
assignee: | Michal Hruby (mhr3) → Charles Kerr (charlesk) |
Changed in libunity (Ubuntu): | |
importance: | Undecided → Low |
Changed in libunity (Ubuntu Precise): | |
status: | New → Triaged |
Changed in libunity: | |
status: | New → In Progress |
milestone: | none → 5.12.0 |
Changed in libunity: | |
status: | In Progress → Fix Committed |
Changed in unity: | |
status: | New → Fix Committed |
description: | updated |
Changed in unity: | |
milestone: | none → 5.12.0 |
Changed in libunity: | |
status: | Fix Committed → Fix Released |
Changed in unity: | |
status: | Fix Committed → Fix Released |
Changed in libunity (Ubuntu Precise): | |
status: | Fix Committed → Fix Released |
no longer affects: | libunity (Ubuntu Quantal) |
Changed in unity (Ubuntu): | |
status: | New → Fix Released |
Changed in unity (Ubuntu Precise): | |
status: | New → Fix Released |
Hello Charles, or anyone else affected,
Accepted libunity into precise-proposed. The package will build now and be available in a few hours. Please test and give feedback here. See https:/ /wiki.ubuntu. com/Testing/ EnableProposed for documentation how to enable and use -proposed. Thank you in advance!