Bug 101744 - amarok segfaults on startup when xine engine is used (AMD64)
Summary: amarok segfaults on startup when xine engine is used (AMD64)
Status: RESOLVED NOT A BUG
Alias: None
Product: amarok
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-03-17 22:16 UTC by David W.
Modified: 2006-06-11 12:32 UTC (History)
0 users

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 David W. 2005-03-17 22:16:20 UTC
Version:           1.2 gentoo CVS ebuild (using KDE KDE 3.3.2)
Installed from:    Gentoo Packages
Compiler:          gcc version 3.4.3 20041125 (Gentoo Linux 3.4.3-r1, ssp-3.4.3-0, pie-8.7.7) AMD64
OS:                Linux

Similiar bugs are listed with xine, but I believe this is differnt. If amarok is started with xine engine it segfaults and a "squeel noise" is heard on the speakers right before it does this as it tries to play a mp3.
I am using amarok CVS and xine-lib 1.0, I have tried previous versions of amarok (1.2.1 and 1.2.2) and numerous xine-libs (1_rc6 and 1_rc8), they all segfault. I believe the bug is xine's fault, but all the same, amarok should not crash and instead print an error message.

Any suggestions on how to debug this further or if I should take it to xine people would be appreciated. I believe this to be an AMD64 specific bug.

Follows is gdb output from running amarok:



bash-2.05b$ gdb --args amarokapp --engine xine
GNU gdb 6.0
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu"...(no debugging symbols found)...Using host libthread_db library "/lib/libthread_db.so.1".

(gdb) run
Starting program: /usr/kde/3.3/bin/amarokapp --engine xine
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 8845)]
amarok: BEGIN: App::App()
amarok:   BEGIN: EngineBase* EngineController::loadEngine(const QString&)
amarok:     [PluginManager] Plugin trader constraint: [X-KDE-amaroK-framework-version] == 5 and [X-KDE-amaroK-plugintype] == 'engine' and [X-KDE-amaroK-name] != 'void-engine' and [X-KDE-amaroK-rank] > 0
amarok:     [PluginManager] Plugin trader constraint: [X-KDE-amaroK-framework-version] == 5 and [X-KDE-amaroK-plugintype] == 'engine' and [X-KDE-amaroK-name] == 'void-engine' and [X-KDE-amaroK-rank] > 0
amarok:     [PluginManager] Trying to load: libamarok_void-engine_plugin
amarok:
amarok:     PluginManager Service Info:
amarok:     ---------------------------
amarok:     name                          : <no engine>
amarok:     library                       : libamarok_void-engine_plugin
amarok:     desktopEntryPath              : amarok_void-engine_plugin.desktop
amarok:     X-KDE-amaroK-plugintype       : engine
amarok:     X-KDE-amaroK-name             : void-engine
amarok:     X-KDE-amaroK-authors          : (Max Howell,Mark Kretschmann)
amarok:     X-KDE-amaroK-rank             : 1
amarok:     X-KDE-amaroK-version          : 1
amarok:     X-KDE-amaroK-framework-version: 5
amarok:
QObject::connect: Cannot connect Engine::Base::statusText( const QString& ) to (null)::shortMessage( const QString& )
QObject::connect: Cannot connect Engine::Base::infoMessage( const QString& ) to (null)::longMessage( const QString& )
amarok:   END__: EngineBase* EngineController::loadEngine(const QString&) - Took 0.01s
amarok:   BEGIN: CollectionDB::CollectionDB()
[New Thread 32769 (LWP 8848)]
[New Thread 16386 (LWP 8849)]
[New Thread 32771 (LWP 8850)]
amarok:     [CollectionDB] Available db connections: 1
amarok:     [CollectionDB] Available db connections: 5
amarok:   END__: CollectionDB::CollectionDB() - Took 0.01s
QLayout: Adding KToolBar/mainToolBar (child of QVBox/unnamed) to layout for PlaylistWindow/PlaylistWindow
amarok:   Creating browsers. Please report long start times!
amarok:     BEGIN: ContextBrowser
amarok:       [void ContextBrowser::setStyleSheet()]
amarok:       BEGIN: amaroK::Color::Color(const QColor&)
amarok:         [ContextBrowser] Initial Color Properties: s:137 v:255
amarok:         [ContextBrowser] Unapplied Contrast: 23
amarok:         [ContextBrowser] Over-compensation: 23
amarok:         [ContextBrowser] Final Colour Properties: s:30 v:255
amarok:       END__: amaroK::Color::Color(const QColor&) - Took 0s
amarok:     END__: ContextBrowser - Took 0.04s
amarok:     BEGIN: CollectionBrowser
amarok:       [CollectionView::CollectionView(CollectionBrowser*)]
amarok:       [void CollectionView::renderView()]
amarok:     END__: CollectionBrowser - Took 0.07s
amarok:     BEGIN: PlaylistBrowser
[New Thread 49156 (LWP 8851)]
amarok:     END__: PlaylistBrowser - Took 0.11s
amarok:     BEGIN: MediaBrowser
amarok:     END__: MediaBrowser - Took 0.01s
amarok:     BEGIN: FileBrowser
amarok:       [StatusBar] KSqueezedTextLabel, mainTextLabel: 22: 0
amarok:       [StatusBar] QHBox, progressBox: 30: 0
amarok:       [StatusBar] QLabel, unnamed: 22: 0
amarok:       [StatusBar] QWidget, positionBox: 21: 0
amarok:       [StatusBar] QWidget, unnamed: 16: 0
amarok:     END__: FileBrowser - Took 0.02s
amarok:   BEGIN: UrlLoader
amarok:     BEGIN: UrlLoader::UrlLoader(const KURL::List&, QListViewItem*, bool)
amarok:       [KDE::ProgressBar::ProgressBar(QWidget*, QLabel*)]
amarok:       [StatusBar] Creating timer for: 1updateProgressAppearance()
amarok:     END__: UrlLoader::UrlLoader(const KURL::List&, QListViewItem*, bool) - Took 0s
[New Thread 65538 (LWP 8852)]
amarok:     BEGIN: void App::applySettings(bool)
amarok:       BEGIN: void App::applyColorScheme()
QPainter::begin: Cannot paint null pixmap
amarok:         [void ContextBrowser::setStyleSheet()]
amarok:         BEGIN: amaroK::Color::Color(const QColor&)
amarok:           [ContextBrowser] Initial Color Properties: s:0 v:255
amarok:           [ContextBrowser] Unapplied Contrast: 160
amarok:           [ContextBrowser] Over-compensation: 160
amarok:           [ContextBrowser] Final Colour Properties: s:30 v:95
amarok:         END__: amaroK::Color::Color(const QColor&) - Took 0s
amarok:       END__: void App::applyColorScheme() - Took 0.01s
amarok:       [void ContextBrowser::setStyleSheet()]
amarok:       BEGIN: amaroK::Color::Color(const QColor&)
amarok:         [ContextBrowser] Initial Color Properties: s:0 v:255
amarok:         [ContextBrowser] Unapplied Contrast: 160
amarok:         [ContextBrowser] Over-compensation: 160
amarok:         [ContextBrowser] Final Colour Properties: s:30 v:95
amarok:       END__: amaroK::Color::Color(const QColor&) - Took 0s
amarok:       [virtual bool BrowserBar::event(QEvent*)] Line: 182
amarok:       [virtual void BrowserBar::polish()]
amarok:       BEGIN: void ContextBrowser::showHome()
amarok:       END__: void ContextBrowser::showHome() - Took 0.17s
amarok:       [BlockAnalyzer] FallTime: 300
amarok:       [BlockAnalyzer] FallTime: 360
amarok:       [ThreadWeaver] Job completed: PlaylistReader. Jobs pending: 1
[New Thread 81923 (LWP 8853)]
amarok:       [ThreadWeaver] Job completed: PlaylistReader. Jobs pending: 0
amarok:       [StatusBar] 1updateProgressAppearance()
amarok:       BEGIN: EngineBase* EngineController::loadEngine()
amarok:         BEGIN: EngineBase* EngineController::loadEngine(const QString&)
amarok:           [PluginManager] Plugin trader constraint: [X-KDE-amaroK-framework-version] == 5 and [X-KDE-amaroK-plugintype] == 'engine' and [X-KDE-amaroK-name] != 'xine-engine' and [X-KDE-amaroK-rank]> 0
amarok:           [PluginManager] Plugin trader constraint: [X-KDE-amaroK-framework-version] == 5 and [X-KDE-amaroK-plugintype] == 'engine' and [X-KDE-amaroK-name] == 'xine-engine' and [X-KDE-amaroK-rank]> 0
amarok:           [PluginManager] Trying to load: libamarok_xine-engine
amarok:
amarok:           PluginManager Service Info:
amarok:           ---------------------------
amarok:           name                          : xine Engine
amarok:           library                       : libamarok_xine-engine
amarok:           desktopEntryPath              : amarok_xine-engine.desktop
amarok:           X-KDE-amaroK-plugintype       : engine
amarok:           X-KDE-amaroK-name             : xine-engine
amarok:           X-KDE-amaroK-authors          : (Max Howell)
amarok:           X-KDE-amaroK-rank             : 254
amarok:           X-KDE-amaroK-version          : 1
amarok:           X-KDE-amaroK-framework-version: 5
amarok:
amarok: [xine-engine] 'Bringing joy to small mexican gerbils, a few weeks at a time.'
[New Thread 98306 (LWP 8854)]
[New Thread 114691 (LWP 8949)]
[New Thread 131076 (LWP 8950)]
[New Thread 147461 (LWP 8951)]
[New Thread 163846 (LWP 8952)]
amarok:         END__: EngineBase* EngineController::loadEngine(const QString&) - Took 0.05s
amarok:       END__: EngineBase* EngineController::loadEngine() - Took 0.05s
amarok:       [void CollectionView::renderView()]
amarok:     END__: void App::applySettings(bool) - Took 0.37s
STARTUP
[New Thread 180231 (LWP 8954)]
amarok:     BEGIN: void EngineSubject::stateChangedNotify(Engine::State)
amarok:       [virtual void amaroK::StatusBar::engineStateChanged(Engine::State)] Line: 123
amarok:       BEGIN: virtual void ContextBrowser::engineStateChanged(Engine::State)
amarok:       END__: virtual void ContextBrowser::engineStateChanged(Engine::State) - Took 0s
amarok:     END__: void EngineSubject::stateChangedNotify(Engine::State) - Took 0s
amarok:     BEGIN: void EngineSubject::newMetaDataNotify(const MetaBundle&, bool)
[New Thread 196616 (LWP 8955)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 147461 (LWP 8951)]
0x00002aaaafea4090 in memset () from /lib/libc.so.6
(gdb) bt
#0  0x00002aaaafea4090 in memset () from /lib/libc.so.6
#1  0x00002aaab1081956 in _x_extra_info_reset (extra_info=0x7fff7fff7fff7fff) at xine.c:102
#2  0x00002aaab109aa91 in ao_get_buffer (this_gen=0x34f8170) at audio_out.c:1444
#3  0x00002aaab10a8e15 in post_audio_get_buffer (port_gen=0x3631630) at post.c:596
#4  0x00002aaab6919156 in mad_decode_data (this_gen=0x3631860, buf=0x362f190) at xine_decoder.c:249
#5  0x00002aaab1094048 in audio_decoder_loop (stream_gen=0x3618750) at audio_decoder.c:342
#6  0x00002aaaaf33dbb9 in pthread_start_thread () from /lib/libpthread.so.0
#7  0x00002aaaaf33dc63 in pthread_start_thread_event () from /lib/libpthread.so.0
#8  0x00002aaaafeeb9b3 in clone () from /lib/libc.so.6
(gdb)
Comment 1 Max Howell 2005-03-19 02:29:45 UTC
The crash is inside xine indeed.

Asking for amaroK not to crash if xine does is like asking gravity to take exception to you just for a few hours. If xine crashes after we've dynamically loaded it, amaroK also crashes, it is as simple as that.
Comment 2 David W. 2005-03-21 03:21:39 UTC
Thanks for the info. I will try and take it over to xine.