Version: (using KDE Devel) Installed from: Compiled sources When going to http://host-d.oddcast.com/php/start_espn/door=121&cl=34&AID=3&id=2491051, it looks that the nsplugin crashes (as konqueror stays running) after the video intially starts to play. The backtrace is as follows: Using host libthread_db library "/lib/tls/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread 1105188640 (LWP 5294)] [KCrash handler] #7 0x40f1465e in QDataStream::writeRawBytes () from /opt/qt/lib/libqt-mt.so.3 #8 0x080595e9 in NSPluginStreamBase::process (this=0x880aff0, data=@0x880b068, start=0) at nsplugin.cpp:1622 #9 0x08059760 in NSPluginStreamBase::pump (this=0x880aff0) at nsplugin.cpp:1649 #10 0x080599fc in NSPluginStream::data (this=0x880aff0, job=0x888fbd8, data=@0xbfffd590) at nsplugin.cpp:1844 #11 0x08059af6 in NSPluginStream::qt_invoke (this=0x880aff0, _id=2, _o=0xbfffd170) at qucom_p.h:312 #12 0x40c399af in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 #13 0x4018f299 in KIO::TransferJob::data (this=) at jobclasses.moc:972 #14 0x40190e14 in KIO::TransferJob::slotData (this=0x888fbd8, _data=@0xbfffd590) at job.cpp:861 #15 0x401963ba in KIO::TransferJob::qt_invoke (this=0x888fbd8, _id=) at qucom_p.h:312 #16 0x40c399af in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 #17 0x4017dc7c in KIO::SlaveInterface::data (this=) at slaveinterface.moc:194 #18 0x40180c1b in KIO::SlaveInterface::dispatch (this=0x86af318, _cmd=100, rawdata=@0xbfffd590) at slaveinterface.cpp:234 #19 0x401816fd in KIO::SlaveInterface::dispatch (this=) at slaveinterface.cpp:173 #20 0x4017968e in KIO::Slave::gotInput (this=) at slave.cpp:300 #21 0x4017cd1c in KIO::Slave::qt_invoke (this=) at slave.moc:113 #22 0x40c399af in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 #23 0x40c39ff2 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3 #24 0x40fb0528 in QSocketNotifier::activated () from /opt/qt/lib/libqt-mt.so.3 #25 0x40c59e31 in QSocketNotifier::event () from /opt/qt/lib/libqt-mt.so.3 #26 0x40bd07b4 in QApplication::internalNotify () from /opt/qt/lib/libqt-mt.so.3 #27 0x40bd244f in QApplication::notify () from /opt/qt/lib/libqt-mt.so.3 #28 0x40758ad7 in KApplication::notify (this=0xbfffdc30, receiver=0x86adef8, event=0xbfffda80) at kapplication.cpp:549 #29 0x40bc403b in QEventLoop::activateSocketNotifiers () from /opt/qt/lib/libqt-mt.so.3 #30 0x08065a9f in QXtEventLoop::processEvents (this=0xbfffdd00, flags=4) at qxteventloop.cpp:455 #31 0x40be9f7a in QEventLoop::enterLoop () from /opt/qt/lib/libqt-mt.so.3 #32 0x40be9dd4 in QEventLoop::exec () from /opt/qt/lib/libqt-mt.so.3 #33 0x40bd2340 in QApplication::exec () from /opt/qt/lib/libqt-mt.so.3 #34 0x080650df in main (argc=3, argv=0xbfffde14) at viewer.cpp:287
No crash here. Then again, I'm betting I have no plugin for this kind of media, whatever it is.
Confirmed. Can't fix yet because the "obvious" fix is also probably incorrect. [KCrash handler] #7 0x40f8b000 in QDataStream::writeRawBytes (this=0x0, s=0x893e228 "location=http%3A%2F%2Fcache-a.oddcast.com%2Fccs2%2Fcache_fs%2F4%2Fc%2F4c496c14445760da4314f20a9de3aad9&voice=2&lang=1&engine=2&text=yo yo yo. how izzz you my brother. you best be gittin out my "..., len=344) at qdatastream.cpp:1148 #8 0x080595f2 in NSPluginStreamBase::process (this=0x892e480, data=@0x892e4f8, start=0) at nsplugin.cpp:1622 #9 0x08059760 in NSPluginStreamBase::pump (this=0x892e480) at nsplugin.cpp:1649 #10 0x080599fc in NSPluginStream::data (this=0x892e480, job=0x892fc88, data=@0xbfffee10) at nsplugin.cpp:1844 #11 0x08059af6 in NSPluginStream::qt_invoke (this=0x892e480, _id=2, _o=0xbfffe9e0) at qucom_p.h:312 #12 0x40cca753 in QObject::activate_signal (this=0x892fc88, clist=0x88e7408, o=0xbfffe9e0) at qobject.cpp:2357 #13 0x401a0279 in KIO::TransferJob::data (this=0x892fc88, t0=0x892fc88, t1=@0xbfffee10) at jobclasses.moc:972
CVS commit by staikos: using the url for part of the temp filename is really not smart. BUG: 100863 M +7 -4 nsplugin.cpp 1.125 --- kdebase/nsplugins/viewer/nsplugin.cpp #1.124:1.125 @@ -1552,5 +1552,5 @@ void NSPluginStreamBase::inform() // stream into temporary file (use lower() in case the // filename as an upper case X in it) - _tempFile = new KTempFile( QString::null, src.fileName().lower() ); + _tempFile = new KTempFile; _tempFile->setAutoDelete( TRUE ); _fileURL = _tempFile->name(); @@ -1619,6 +1619,7 @@ int NSPluginStreamBase::process( const Q } - if (_tempFile) + if (_tempFile) { _tempFile->dataStream()->writeRawBytes(d, sent); + } to_sent -= sent; @@ -1642,6 +1643,7 @@ bool NSPluginStreamBase::pump() // handle AS_FILE_ONLY streams if ( _onlyAsFile ) { - if ( _tempFile ) + if (_tempFile) { _tempFile->dataStream()->writeRawBytes( _queue, _queue.size() ); + } newPos = _queuePos+_queue.size(); } else { @@ -1707,6 +1709,7 @@ void NSPluginStreamBase::finish( bool er } else { // close temp file - if ( _tempFile ) + if ( _tempFile ) { _tempFile->close(); + } // destroy stream