Bug 320448 - Phonon GStreamer 1.0 port does not work with Amarok properly
Summary: Phonon GStreamer 1.0 port does not work with Amarok properly
Status: RESOLVED FIXED
Alias: None
Product: phonon-backend-gstreamer
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 4.6-git
Platform: Other Linux
: NOR normal
Target Milestone: 4.7
Assignee: Rohan Garg
URL:
Keywords:
Depends on:
Blocks: 320447
  Show dependency treegraph
 
Reported: 2013-05-29 23:44 UTC by Rohan Garg
Modified: 2014-08-11 13:48 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rohan Garg 2013-05-29 23:44:11 UTC
States are bugged, OSD is bugged, track switching is bugged.

Reproducible: Always
Comment 1 Rohan Garg 2013-05-31 04:23:36 UTC
Corrupted double-linked list issue when quitting amarok with the Phonon GStreamer 1.0 port :

*** Error in `/opt/project-neon/bin/amarok': corrupted double-linked list: 0x0000000001b08c10 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7fecd)[0x7feca6264ecd]
/lib/x86_64-linux-gnu/libc.so.6(+0x80898)[0x7feca6265898]
/opt/project-neon/lib/libQtCore.so.4(_ZN8QMapData16continueFreeDataEi+0x99)[0x7feca70c2d87]
/opt/project-neon/lib/libQtCore.so.4(+0xefcd5)[0x7feca70d7cd5]
/opt/project-neon/lib/libQtCore.so.4(+0xed5fc)[0x7feca70d55fc]
/opt/project-neon/lib/libQtCore.so.4(+0xece99)[0x7feca70d4e99]
/opt/project-neon/lib/libQtCore.so.4(+0xefd53)[0x7feca70d7d53]
/opt/project-neon/lib/libQtCore.so.4(+0xed6e8)[0x7feca70d56e8]
/opt/project-neon/lib/libQtCore.so.4(+0xde2f3)[0x7feca70c62f3]
/opt/project-neon/lib/libQtCore.so.4(+0xf21f5)[0x7feca70da1f5]
/opt/project-neon/lib/libQtCore.so.4(+0xf1e98)[0x7feca70d9e98]
/opt/project-neon/lib/libQtCore.so.4(+0xef5dc)[0x7feca70d75dc]
/opt/project-neon/lib/libQtCore.so.4(+0xeb435)[0x7feca70d3435]
/opt/project-neon/lib/libQtCore.so.4(+0xeb6b0)[0x7feca70d36b0]
/opt/project-neon/lib/libQtCore.so.4(_ZN7QRegExpD1Ev+0x1c)[0x7feca70d384c]
/opt/project-neon/lib/libamarokcore.so.1(_ZN8Podcasts13PodcastReader10StaticDataD2Ev+0x18f)[0x7fecab24803f]
/opt/project-neon/lib/libamarokcore.so.1(_ZN8Podcasts13PodcastReader10StaticDataD1Ev+0x15)[0x7fecab23fa15]
/lib/x86_64-linux-gnu/libc.so.6(__cxa_finalize+0x9a)[0x7feca622152a]
/opt/project-neon/lib/libamarokcore.so.1(+0x697d3)[0x7fecab22c7d3]
======= Memory map: ========
00400000-00418000 r-xp 00000000 fc:01 17435118                           /opt/project-neon/bin/amarok
00617000-00618000 r--p 00017000 fc:01 17435118                           /opt/project-neon/bin/amarok
00618000-00619000 rw-p 00018000 fc:01 17435118                           /opt/project-neon/bin/amarok
01686000-0176d000 rw-p 00000000 00:00 0                                  [heap]
0176d000-0515a000 rw-p 00000000 00:00 0                                  [heap]
7feb68000000-7feb68022000 rw-p 00000000 00:00 0 
7feb68022000-7feb6c000000 ---p 00000000 00:00 0 
7feb70000000-7feb70022000 rw-p 00000000 00:00 0 
7feb70022000-7feb74000000 ---p 00000000 00:00 0 
7feb74000000-7feb7410f000 rw-p 00000000 00:00 0 
7feb7410f000-7feb78000000 ---p 00000000 00:00 0 
7feb78000000-7feb78022000 rw-p 00000000 00:00 0 
7feb78022000-7feb7c000000 ---p 00000000 00:00 0 
7feb7c000000-7feb7c03c000 rw-p 00000000 00:00 0 
7feb7c03c000-7feb80000000 ---p 00000000 00:00 0 
7feb80000000-7feb80022000 rw-p 00000000 00:00 0 
7feb80022000-7feb84000000 ---p 00000000 00:00 0 
7feb84000000-7feb84022000 rw-p 00000000 00:00 0 
7feb84022000-7feb88000000 ---p 00000000 00:00 0 
7feb88000000-7feb88112000 rw-p 00000000 00:00 0 
7feb88112000-7feb8c000000 ---p 00000000 00:00 0 
7feb8c000000-7feb8c02b000 rw-p 00000000 00:00 0 
7feb8c02b000-7feb90000000 ---p 00000000 00:00 0 
7feb90000000-7feb90095000 rw-p 00000000 00:00 0 
7feb90095000-7feb94000000 ---p 00000000 00:00 0 
7feb94782000-7feb94783000 ---p 00000000 00:00 0 
7feb94783000-7feb94f83000 rw-p 00000000 00:00 0                          [stack:18808]
7feb94f83000-7feb94f84000 ---p 00000000 00:00 0 
7feb94f84000-7feb95784000 rw-p 00000000 00:00 0                          [stack:18807]
7feb95784000-7feb95785000 ---p 00000000 00:00 0 
7feb95785000-7feb95f85000 rw-p 00000000 00:00 0                          [stack:18806]
7feb95f85000-7feb95f86000 ---p 00000000 00:00 0 
7feb95f86000-7feb96786000 rw-p 00000000 00:00 0                          [stack:18805]
7feb96786000-7feb96787000 ---p 00000000 00:00 0 
7feb96787000-7feb96f87000 rw-p 00000000 00:00 0                          [stack:18804]
7feb9c000000-7fec1c000000 rwxp 00000000 00:00 0 
7fec1c000000-7fec1c099000 rw-p 00000000 00:00 0 
7fec1c099000-7fec20000000 ---p 00000000 00:00 0 
7fec20000000-7fec20021000 rw-p 00000000 00:00 0 
7fec20021000-7fec24000000 ---p 00000000 00:00 0 
7fec24000000-7fec24098000 rw-p 00000000 00:00 0 
7fec24098000-7fec28000000 ---p 00000000 00:00 0 
7fec286d8000-7fec286d9000 ---p 00000000 00:00 0 
7fec286d9000-7fec28ed9000 rw-p 00000000 00:00 0                          [stack:18803]
7fec28ed9000-7fec28eda000 ---p 00000000 00:00 0 
7fec28eda000-7fec296da000 rw-p 00000000 00:00 0                          [stack:18802]
7fec296da000-7fec296db000 ---p 00000000 00:00 0 
7fec296db000-7fec29edb000 rw-p 00000000 00:00 0                          [stack:18801]
7fec29edb000-7fec29edc000 ---p 00000000 00:00 0 
7fec29edc000-7fec2a6dc000 rw-p 00000000 00:00 0                          [stack:18800]
7fec2a6dc000-7fec2a711000 r-xp 00000000 fc:01 12328017                   /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so
7fec2a711000-7fec2a911000 ---p 00035000 fc:01 12328017                   /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so
7fec2a911000-7fec2a912000 r--p 00035000 fc:01 12328017                   /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so
7fec2a912000-7fec2a914000 rw-p 00036000 fc:01 12328017                   /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so
7fec2a914000-7fec2a915000 ---p 00000000 00:00 0 
7fec2a915000-7fec2b115000 rw-p 00000000 00:00 0                          [stack:18799]
7fec2b363000-7fec2b376000 r-xp 00000000 fc:01 12328102                   /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgsttypefindfunctions.so
7fec2b376000-7fec2b575000 ---p 00013000 fc:01 12328102                   /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgsttypefindfunctions.so
7fec2b575000-7fec2b576000 r--p 00012000 fc:01 12328102                   /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgsttypefindfunctions.so
7fec2b576000-7fec2b578000 rw-p 00013000 fc:01 12328102                   /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgsttypefindfunctions.so
7fec2c000000-7fec2c098000 rw-p 00000000 00:00 0 
7fec2c098000-7fec30000000 ---p 00000000 00:00 0 
7fec309ed000-7fec30a9f000 r-xp 00000000 fc:01 28980825                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_xml.so.1.0.0
7fec30a9f000-7fec30c9f000 ---p 000b2000 fc:01 28980825                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_xml.so.1.0.0
7fec30c9f000-7fec30ca2000 r--p 000b2000 fc:01 28980825                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_xml.so.1.0.0
7fec30ca2000-7fec30ca5000 rw-p 000b5000 fc:01 28980825                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_xml.so.1.0.0
7fec30ca5000-7fec30d72000 r-xp 00000000 fc:01 28980835                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_webkit.so.1.0.0
7fec30d72000-7fec30f72000 ---p 000cd000 fc:01 28980835                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_webkit.so.1.0.0
7fec30f72000-7fec30f75000 r--p 000cd000 fc:01 28980835                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_webkit.so.1.0.0
7fec30f75000-7fec30f78000 rw-p 000d0000 fc:01 28980835                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_webkit.so.1.0.0
7fec30f78000-7fec30f79000 rw-p 00000000 00:00 0 
7fec30f79000-7fec310b5000 r-xp 00000000 fc:01 28980830                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_uitools.so.1.0.0
7fec310b5000-7fec312b4000 ---p 0013c000 fc:01 28980830                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_uitools.so.1.0.0
7fec312b4000-7fec312b6000 r--p 0013b000 fc:01 28980830                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_uitools.so.1.0.0
7fec312b6000-7fec312bd000 rw-p 0013d000 fc:01 28980830                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_uitools.so.1.0.0
7fec312bd000-7fec312ed000 r-xp 00000000 fc:01 28980826                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_svg.so.1.0.0
7fec312ed000-7fec314ed000 ---p 00030000 fc:01 28980826                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_svg.so.1.0.0
7fec314ed000-7fec314ee000 r--p 00030000 fc:01 28980826                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_svg.so.1.0.0
7fec314ee000-7fec314ef000 rw-p 00031000 fc:01 28980826                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_svg.so.1.0.0
7fec314ef000-7fec31590000 r-xp 00000000 fc:01 28980828                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_sql.so.1.0.0
7fec31590000-7fec3178f000 ---p 000a1000 fc:01 28980828                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_sql.so.1.0.0
7fec3178f000-7fec31792000 r--p 000a0000 fc:01 28980828                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_sql.so.1.0.0
7fec31792000-7fec31795000 rw-p 000a3000 fc:01 28980828                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_sql.so.1.0.0
7fec31795000-7fec318c2000 r-xp 00000000 fc:01 28980827                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_phonon.so.1.0.0
7fec318c2000-7fec31ac1000 ---p 0012d000 fc:01 28980827                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_phonon.so.1.0.0
7fec31ac1000-7fec31ac6000 r--p 0012c000 fc:01 28980827                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_phonon.so.1.0.0
7fec31ac6000-7fec31aca000 rw-p 00131000 fc:01 28980827                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_phonon.so.1.0.0
7fec31aca000-7fec31b41000 r-xp 00000000 fc:01 28980831                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_opengl.so.1.0.0
7fec31b41000-7fec31d40000 ---p 00077000 fc:01 28980831                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_opengl.so.1.0.0
7fec31d40000-7fec31d42000 r--p 00076000 fc:01 28980831                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_opengl.so.1.0.0
7fec31d42000-7fec31d44000 rw-p 00078000 fc:01 28980831                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_opengl.so.1.0.0
7fec31d44000-7fec31eac000 r-xp 00000000 fc:01 28980832                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_network.so.1.0.0
7fec31eac000-7fec320ac000 ---p 00168000 fc:01 28980832                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_network.so.1.0.0
7fec320ac000-7fec320b1000 r--p 00168000 fc:01 28980832                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_network.so.1.0.0
7fec320b1000-7fec320b6000 rw-p 0016d000 fc:01 28980832                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_network.so.1.0.0
7fec320b6000-7fec33068000 r-xp 00000000 fc:01 28980829                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_gui.so.1.0.0
7fec33068000-7fec33268000 ---p 00fb2000 fc:01 28980829                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_gui.so.1.0.0
7fec33268000-7fec3329b000 r--p 00fb2000 fc:01 28980829                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_gui.so.1.0.0
7fec3329b000-7fec332c0000 rw-p 00fe5000 fc:01 28980829                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_gui.so.1.0.0
7fec332c0000-7fec332c1000 rw-p 00000000 00:00 0 
7fec332c1000-7fec3366f000 r-xp 00000000 fc:01 28980834                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_core.so.1.0.0
7fec3366f000-7fec3386e000 ---p 003ae000 fc:01 28980834                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_core.so.1.0.0
7fec3386e000-7fec3387e000 r--p 003ad000 fc:01 28980834                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_core.so.1.0.0
7fec3387e000-7fec3388b000 rw-p 003bd000 fc:01 28980834                   /opt/project-neon/lib/qt4/plugins/script/libqtscript_core.so.1.0.0
7fec3388b000-7fec338b1000 r-xp 00000000 fc:01 17309671                   /opt/project-neon/lib/libkrosscore.so.4.11.0
7fec338b1000-7fec33ab0000 ---p 00026000 fc:01 17309671                   /opt/project-neon/lib/libkrosscore.so.4.11.0
7fec33ab0000-7fec33ab1000 r--p 00025000 fc:01 17309671                   /opt/project-neon/lib/libkrosscore.so.4.11.0
7fec33ab1000-7fec33ab2000 rw-p 00026000 fc:01 17309671                   /opt/project-neon/lib/libkrosscore.so.4.11.0
7fec33ab2000-7fec33be4000 r-xp 00000000 fc:01 19150764                   /opt/project-neon/lib/kde4/plugins/script/libkrossqtsplugin.so.4.11.0
7fec33be4000-7fec33de3000 ---p 00132000 fc:01 19150764                   /opt/project-neon/lib/kde4/plugins/script/libkrossqtsplugin.so.4.11.0
7fec33de3000-7fec33de5000 r--p 00131000 fc:01 19150764                   /opt/project-neon/lib/kde4/plugins/script/libkrossqtsplugin.so.4.11.0
7fec33de5000-7fec33dec000 rw-p 00133000 fc:01 19150764                   /opt/project-neon/lib/kde4/plugins/script/libkrossqtsplugin.so.4.11.0
7fec33dec000-7fec33dff000 r-xp 00000000 fc:01 17310083                   /opt/project-neon/plugins/script/libqtscriptdbus.so
7fec33dff000-7fec33ffe000 ---p 00013000 fc:01 17310083                   /opt/project-neon/plugins/script/libqtscriptdbus.so
7fec33ffe000-7fec33fff000 r--p 00012000 fc:01 17310083                   /opt/project-neon/plugins/script/libqtscriptdbus.so
7fec33fff000-7fec34000000 rw-p 00013000 fc:01 17310083                   /opt/project-neon/plugins/script/libqtscriptdbus.so
7fec34000000-7fec34098000 rw-p 00000000 00:00 0 
7fec34098000-7fec38000000 ---p 00000000 00:00 0 
7fec38000000-7fec3809a000 rw-p 00000000 00:00 0 
7fec3809a000-7fec3c000000 ---p 00000000 00:00 0 
7fec3c000000-7fec3c09a000 rw-p 00000000 00:00 0 
7fec3c09a000-7fec40000000 ---p 00000000 00:00 0 
7fec405d4000-7fec405d5000 ---p 00000000 00:00 0 
7fec405d5000-7fec40dd5000 rw-p 00000000 00:00 0 
7fec40dd5000-7fec40df8000 r-xp 00000000 fc:01 19140220                   /opt/project-neon/lib/kde4/amarok_context_applet_analyzer.so
7fec40df8000-7fec40ff8000 ---p 00023000 fc:01 19140220                   /opt/project-neon/lib/kde4/amarok_context_applet_analyzer.so
7fec40ff8000-7fec40ff9000 r--p 00023000 fc:01 19140220                   /opt/project-neon/lib/kde4/amarok_context_applet_analyzer.so
7fec40ff9000-7fec40ffa000 rw-p 00024000 fc:01 19140220                   /opt/project-neon/lib/kde4/amarok_context_applet_analyzer.so
7fec40ffa000-7fec40ffb000 ---p 00000000 00:00 0 
7fec40ffb000-7fec417fb000 rw-p 00000000 00:00 0                          [stack:18781]
7fec417fb000-7fec417fc000 ---p 00000000 00:00 0 
7fec417fc000-7fec41ffc000 rw-p 00000000 00:00 0                          [stack:18780]
7fec41ffc000-7fec41ffd000 ---p 00000000 00:00 0 
7fec41ffd000-7fec427fd000 rw-p 00000000 00:00 0                          [stack:18779]
7fec427fd000-7fec427fe000 ---p 00000000 00:00 0 
7fec427fe000-7fec42ffe000 rw-p 00000000 00:00 0                          [stack:18778]
7fec42ffe000-7fec42fff000 ---p 00000000 00:00 0 
7fec42fff000-7fec437ff000 rw-p 00000000 00:00 0                          [stack:18777]
7fec437ff000-7fec43800000 ---p 00000000 00:00 0 
7fec43800000-7fec44000000 rw-p 00000000 00:00 0                          [stack:18776]
7fec44000000-7fec44098000 rw-p 00000000 00:00 0 KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = amarok path = /opt/project-neon/bin pid = 18760
KCrash: Arguments: /opt/project-neon/bin/amarok --nocrashhandler
Comment 2 Daniel Vrátil 2013-11-26 11:13:49 UTC
Git commit 8173a1bc5a34d1422a08e8949a5100549eb5890e by Dan Vrátil.
Committed on 26/11/2013 at 11:12.
Pushed by dvratil into branch '1.0-porting-for-merge'.

Move Debug to Phonon::Gstreamer namespace to prevent collision with Amarok

Both Amarok and us define "extern QMutex Debug::mutex". This works fine during
run time, but causes a double-free corruption when heap-allocations are being
free'd after main() returns.

libc will first destroy one mutex and then tries to free the other one, which
is however pointing to the same memory, because they are both 'extern'. As a
result, we get a double-free corruption.

By moving our Debug namespace into Phonon::Gstreamer namespace, we prevent
the collision and get no more crashes when quitting Amarok.

M  +4    -2    gstreamer/debug.cpp
M  +8    -0    gstreamer/debug.h

http://commits.kde.org/phonon-gstreamer/8173a1bc5a34d1422a08e8949a5100549eb5890e