[Bug 66087] New: Engine::initArts(): Could not instantiate artsobject Noatun::Session.
Stefan Teleman
steleman at nyc.rr.com
Thu Oct 16 01:32:44 BST 2003
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=66087
Summary: Engine::initArts(): Could not instantiate artsobject
Noatun::Session.
Product: noatun
Version: unspecified
Platform: Solaris Packages
OS/Version: Solaris
Status: UNCONFIRMED
Severity: crash
Priority: NOR
Component: general
AssignedTo: kde-multimedia at kde.org
ReportedBy: steleman at nyc.rr.com
Version: (using KDE KDE 3.1.3)
Installed from: Solaris Packages
Compiler: SunProCC (Forte 7) : CC: Forte Developer 7 C++ 5.4 Patch 111715-09 2003/06/24
OS: Solaris
Hi
This bug has been reported several times, on different OS/Compiler combinations, but i believe this is the first time it's been reported on Solaris (SunOS 8) 32-bit.
Engine::initArts() fails when trying to instantiate a Noatun::Session object:
file kdemultimedia/noatun/library/engine.cpp:
Arts::Object session = d->server.createObject("Noatun::Session");
if (d->session.isNull())
{
kdWarning() << "Couldn't instanciate artsobject Noatun::Session. "
// ... [snip]
This bug also exists in KDE 3.1, 3.1.1 and 3.1.2, also on SunOS 5.8 with the same (Forte 7) compiler.
It can be easily reproduced in the Solaris packages available for download at KDE.
It has also been reproduced on SunOS 5.8 (Solaris 8) with gcc3 (gcc3.3,REV=2003.07.22) at blastwave.org.
Incidentally, trying to instantiate an Arts::Synth_STEREO_COMPRESSOR (as seen in the test case enclosed below) also fails.
Here is the stack trace output from running Noatun inside dbx:
noatun: WARNING: Couldn't instanciate artsobject Noatun::Session. (This is normally caused by a broken package or compiling kdemultimedia in a --prefix different from arts. It may also be from two conflicting packages, so uninstall every arts/artsd package you have installed and try againe.
t at 1 (l at 1) signal SEGV (no mapping at the fault address) in Engine::initArts at 0x7fa47cc4
0x7fa47cc4: initArts+0x21d4: ld [%o0], %l7
(dbx) where
current thread: t at 1
=>[1] Engine::initArts(0x1b7c20, 0x1b7ee8, 0x1, 0x0, 0x1b7e28, 0xffbec8f8), at 0x7fa47cc4
[2] Engine::Engine(0x15c, 0x0, 0x1b7c20, 0x800, 0x1b8260, 0x7faafe3c), at 0x7fa444e8
[3] Player::Player(0x800, 0x0, 0x1b7b80, 0x7fab3710, 0x0, 0x1b7c20), at 0x7fa51d94
[4] NoatunApp::NoatunApp(0xe00d8, 0x1b7b80, 0x0, 0x1, 0x2, 0x176778), at 0x7fa5995c
[5] main(0x3, 0xffbece8c, 0x58efc, 0x58f04, 0x37144, 0x4fad0), at 0x37440
(dbx)
This is probably not very useful, but it's the best i can get with optimized packages. :-)
Please let me know if i can be of any help.
I am enclosing a small test case which shows the exact same behavior.
Thank you!
--Stefan
// -----
#include <iostream>
#include <cstring>
using namespace std;
#include <noatun/engine.h>
#include <noatun/equalizer.h>
#include <noatun/player.h>
#include <noatun/plugin.h>
#include <noatun/effects.h>
// #include <string.h>
#include <kmessagebox.h>
#include <klocale.h>
#include <kstandarddirs.h>
#include <kconfig.h>
#include <kdebug.h>
#include <qfile.h>
#include <qdir.h>
#include <sys/wait.h>
#include <kplayobject.h>
#include <kplayobjectfactory.h>
#include <dynamicrequest.h>
#include <arts/soundserver.h>
#include <arts/stdsynthmodule.h>
#include <arts/dispatcher.h>
#include <arts/artsmodules.h>
#include <kmedia2.h>
#include <flowsystem.h>
#include <noatunarts.h>
#include <connect.h>
// #include <cpuinfo.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int
main (int argc, char* argv[])
{
Arts::Dispatcher dispatcher;
Arts::SoundServerV2 server;
Arts::Synth_AMAN_PLAY amanPlay;
Arts::Synth_STEREO_COMPRESSOR stereoCompressor;
Noatun::StereoEffectStack globalEffectStack;
Noatun::StereoEffectStack effectsStack;
Noatun::StereoEffectStack visStack;
Noatun::Equalizer equalizer;
Noatun::Session session;
cerr << "Trying Arts::Reference(global:Arts_SoundServerV2)" << endl;
server = Arts::Reference("global:Arts_SoundServerV2");
if ((server.isNull()) || (server.error()))
{
cerr << "Error in Arts::Reference(global:Arts_SoundServerV2)" << endl;
return (-1);
}
cerr << "server = Arts::Reference(global:Arts_SoundServerV2) OK!" << endl;
cerr << "Trying Arts::Synth_AMAN_PLAY" << endl;
amanPlay = Arts::DynamicCast(server.createObject("Arts::Synth_AMAN_PLAY"));
if (amanPlay.isNull())
{
cerr << "Error: Arts::Synth_AMAN_PLAY is NULL" << endl;
}
cerr << "Arts::Synth_AMAN_PLAY OK!" << endl;
cerr << "Trying Arts::Synth_STEREO_COMPRESSOR" << endl;
stereoCompressor = Arts::DynamicCast (server.createObject("Arts::Synth_STEREO_COMPRESSOR"));
if (stereoCompressor.isNull())
{
cerr << "Arts::Synth_STEREO_COMPRESSOR is NULL" << endl;
}
else
cerr << "Arts::Synth_STEREO_COMPRESSOR OK!" << endl;
cerr << "Trying Noatun::Session" << endl;
session = Arts::DynamicCast (server.createObject("Noatun::Session"));
if (session.isNull())
{
cerr << "Error: Noatun::Session is NULL" << endl;
}
else
cerr << "Noatun::Session OK!" << endl;
amanPlay.title("noatun");
amanPlay.autoRestoreID("noatun");
amanPlay.start();
globalEffectStack = Arts::DynamicCast(server.createObject("Noatun::StereoEffectStack"));
globalEffectStack.start();
Arts::connect(globalEffectStack, amanPlay);
effectsStack = Arts::DynamicCast(server.createObject("Noatun::StereoEffectStack"));
return (0);
}
// -----
More information about the kde-multimedia
mailing list