[pulseaudio-tickets] [Bug 44522] New: module-stream-restore may crash when upgrading from 0.9.23 to 1.1

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Jan 6 02:53:31 PST 2012


https://bugs.freedesktop.org/show_bug.cgi?id=44522

             Bug #: 44522
           Summary: module-stream-restore may crash when upgrading from
                    0.9.23 to 1.1
    Classification: Unclassified
           Product: PulseAudio
           Version: unspecified
          Platform: Other
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: modules
        AssignedTo: pulseaudio-bugs at lists.freedesktop.org
        ReportedBy: tanuk at iki.fi
         QAContact: pulseaudio-bugs at lists.freedesktop.org
                CC: lennart at poettering.net


Created attachment 55201
  --> https://bugs.freedesktop.org/attachment.cgi?id=55201
stream-restore database file from 0.9.23

Wang Xingchao reported in irc that he was getting this assertion:

E: [pulseaudio] module-stream-restore.c: Assertion
'pa_hashmap_put(u->dbus_entries, de->entry_name, de) == 0' failed at
modules/module-stream-restore.c:2306, function
module_stream_restore_LTX_pa__init(). Aborting.

I asked him to send the database file to me, and it turns out that I can
reproduce this issue. The problem is that at startup module-stream-restore
iterates through all database entries and calls entry_read() for each entry. If
entry_read() encounters an entry that is written by Pulseaudio 0.9.23, it will
call entry_write(). This should not be done while iterating through the
database. At least in case of the "simple" database implementation, this can
cause the same entry to get returned twice from pa_database_next(), which will
cause the reported assertion.

I'll attach the database file that can be used to reproduce this crash.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the pulseaudio-bugs mailing list