/usr/sbin/unity-system-compositor:*** Error in `unity-system-compositor': free(): invalid pointer: ADDR ***
Bug #1376324 reported by
errors.ubuntu.com bug bridge
This bug affects 4 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical System Image |
Fix Released
|
High
|
Unassigned | ||
Mir |
Fix Released
|
High
|
Alan Griffiths | ||
0.8 |
Fix Released
|
High
|
Daniel van Vugt | ||
Unity System Compositor |
Invalid
|
High
|
Unassigned | ||
mir (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
mir (Ubuntu RTM) |
Fix Released
|
High
|
Unassigned | ||
unity-system-compositor (Ubuntu) |
Invalid
|
High
|
Unassigned |
Bug Description
The Ubuntu Error Tracker has been receiving reports about a problem regarding unity-system-
*** WARNING ***
Due to the limited nature of the stack trace comparison in errors.ubuntu.com, ALL heap corruption bugs in unity-system-
Related branches
lp://staging/~alan-griffiths/mir/fix-1376324
- Andreas Pokorny (community): Approve
- Daniel van Vugt: Needs Information
- Alexandros Frantzis (community): Approve
- Alberto Aguirre (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 278 lines (+148/-0)13 files modifiedsrc/include/server/mir/compositor/buffer_stream.h (+1/-0)
src/server/compositor/buffer_bundle.h (+1/-0)
src/server/compositor/buffer_queue.cpp (+6/-0)
src/server/compositor/buffer_queue.h (+1/-0)
src/server/compositor/buffer_stream_surfaces.cpp (+5/-0)
src/server/compositor/buffer_stream_surfaces.h (+1/-0)
src/server/scene/basic_surface.cpp (+3/-0)
tests/include/mir_test_doubles/mock_buffer_bundle.h (+1/-0)
tests/include/mir_test_doubles/mock_buffer_stream.h (+1/-0)
tests/include/mir_test_doubles/stub_buffer_stream.h (+1/-0)
tests/integration-tests/CMakeLists.txt (+1/-0)
tests/integration-tests/surface_composition.cpp (+125/-0)
tests/integration-tests/test_exchange_buffer.cpp (+1/-0)
lp://staging/~vanvugt/mir/fix-1376324-more
- Alberto Aguirre (community): Abstain
- Alexandros Frantzis (community): Approve
- Alan Griffiths: Abstain
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 72 lines (+27/-0)3 files modifiedsrc/server/compositor/buffer_queue.cpp (+5/-0)
src/server/compositor/buffer_queue.h (+1/-0)
tests/unit-tests/compositor/test_buffer_queue.cpp (+21/-0)
lp://staging/~mir-team/mir/fix-1376324-0.8
- Cemil Azizoglu (community): Approve
- Robert Carr (community): Approve
-
Diff: 368 lines (+186/-1)16 files modifiedCMakeLists.txt (+1/-1)
debian/changelog (+10/-0)
src/include/server/mir/compositor/buffer_stream.h (+1/-0)
src/server/compositor/buffer_bundle.h (+1/-0)
src/server/compositor/buffer_queue.cpp (+11/-0)
src/server/compositor/buffer_queue.h (+2/-0)
src/server/compositor/buffer_stream_surfaces.cpp (+5/-0)
src/server/compositor/buffer_stream_surfaces.h (+1/-0)
src/server/scene/basic_surface.cpp (+3/-0)
tests/include/mir_test_doubles/mock_buffer_bundle.h (+1/-0)
tests/include/mir_test_doubles/mock_buffer_stream.h (+1/-0)
tests/include/mir_test_doubles/stub_buffer_stream.h (+1/-0)
tests/integration-tests/CMakeLists.txt (+1/-0)
tests/integration-tests/surface_composition.cpp (+125/-0)
tests/integration-tests/test_exchange_buffer.cpp (+1/-0)
tests/unit-tests/compositor/test_buffer_queue.cpp (+21/-0)
Changed in mir: | |
status: | Incomplete → In Progress |
Changed in mir: | |
milestone: | none → 0.8.0 |
Changed in mir (Ubuntu): | |
status: | Incomplete → Triaged |
importance: | Undecided → High |
Changed in mir: | |
milestone: | 0.8.0 → 0.9.0 |
no longer affects: | mir |
no longer affects: | mir/0.8 |
Changed in mir: | |
assignee: | nobody → Alan Griffiths (alan-griffiths) |
importance: | Undecided → High |
milestone: | none → 0.9.0 |
status: | New → In Progress |
Changed in unity-system-compositor: | |
status: | Incomplete → Invalid |
Changed in unity-system-compositor (Ubuntu): | |
status: | Incomplete → Invalid |
Changed in mir (Ubuntu RTM): | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in mir: | |
status: | Fix Committed → In Progress |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Changed in mir (Ubuntu): | |
status: | Triaged → Fix Released |
Changed in unity-system-compositor (Ubuntu): | |
status: | Confirmed → Invalid |
Changed in unity-system-compositor: | |
status: | Confirmed → Invalid |
Changed in mir: | |
assignee: | nobody → Alan Griffiths (alan-griffiths) |
description: | updated |
Changed in canonical-devices-system-image: | |
status: | Confirmed → Fix Released |
To post a comment you must log in.
This looks as though the send_response_ result member of ProtobufResponder is no longer valid (i.e. that the ProtobufResponder at this=0xac900574 has likely been freed).
I'm not sure what sequence of events would lead to a send_response() message being passed to a no-longer valid ProtobufResponder - but is likely to be a race within Mir between closing the connection and the compositor: :BufferQueue: :give_buffer_ to_client( ) sending a buffer to the client.
I'll audit the Mir code in this area.