Christian Schoenebeck wrote:
> Es geschah am Tuesday 03 June 2008 als Juuso Alasuutari schrieb:
>> When I load a gig file in Qsampler and then click the instrument editing
>> button, linuxsampler or possibly some other thing crashes. Here's a
>> paste of the output from Qsampler's message window (line 47 is the first
>> one after clicking on 'Edit'):
>>
>> http://pastebin.ca/1038163
>>
>> All components of LinuxSampler and Qsampler are fresh from cvs.
>
> The output is not very helpful because LS wasn't compiled with debugging
> support (symbols). However in most cases the crash you described is caused by
> a version inconsistency between gigedit and LS. My guess is you updated LS
> without updating gigedit afterwards. Another possibility might be that
> there's still (another) old gigedit plugin
> under /usr/lib/linuxsampler/plugins/, if so delete it!
Hi, and sorry for taking so long to respond. I'd blame the summertime,
but of course I carry the same head on my shoulders through the year,
so... :)
I'm positive that this isn't caused by a version mismatch; I've built
both gigedit and LS directly from cvs. I once again tried to use the
Edit functionality, this time from JSampler, and got the same crash.
Closer inspection reveals that LinuxSampler segfaults, but luckily I
have proper debugging info this time. Here's the output from LS leading
up to the crash, copied & pasted from gdb:
RenderAudio(Samples=64)
Condition:: constructor, bInitialCondition=0
RenderAudio(Samples=64)
OK
Condition:: constructor, bInitialCondition=0
Found matching editor 'gigedit' for instrument
('/media/samples/drum/sets/psy_909.gig', 0) having data structure
('libgig','3.2.1')
Condition:: constructor, bInitialCondition=0
gig::Engine: Received instrument update message.
gig::Engine: disabling
conditionserver:Push() requesting change to 1
Condition::WaitIf: bCondition=0 TimeoutSeconds=2 TimeoutNanoSeconds=0
Condition::Waitif() -> LOCK()
Condition::Waitif() -> LOCK() passed
Condition::Waitif() -> waiting for 'true' condition with timeout
RenderAudio(Samples=64)
conditionserver:Pop() change requested
Condition::Set() -> LOCK()
Condition::Set() -> LOCK() passed
Condition::Set() -> broadcasting 'true' condition
conditionserver:Pop() condition now: 1
gig::Engine: engine disabled (val=1)
Condition::Waitif() -> awakened from 'true' condition waiting
Condition::WaitAndUnlockIf() -> UNLOCK()
Condition::WaitAndUnlockIf() -> UNLOCK() passed
Condition::WaitIf: bCondition=1 TimeoutSeconds=0 TimeoutNanoSeconds=0
Condition::Waitif() -> LOCK()
Condition::Waitif() -> LOCK() passed
Condition::Set() -> LOCK()
Condition::Waitif() -> waiting for 'false' condition
Condition::Set() -> LOCK() passed
Condition::Set() -> broadcasting 'false' condition
Condition::Waitif() -> awakened from 'false' condition waiting
[Thread 0xb0c37b90 (LWP 7018) exited]
RenderAudio(Samples=64)
gig::Engine: engine disabled (val=1)
[New Thread 0xafd23b90 (LWP 7020)]
RenderAudio(Samples=64)
gig::Engine: engine disabled (val=1)
Condition::WaitIf: bCondition=0 TimeoutSeconds=0 TimeoutNanoSeconds=0
Condition::Waitif() -> LOCK()
Condition::Waitif() -> LOCK() passed
Condition::Waitif() -> waiting for 'true' condition
Condition::Set() -> LOCK()
Condition::Set() -> LOCK() passed
Condition::Set() -> broadcasting 'true' condition
Disk thread running
Condition::Waitif() -> awakened from 'true' condition waiting
Freeing gig file from memory...RenderAudio(Samples=64)
gig::Engine: engine disabled (val=1)
OK
Loading gig file '/media/samples/drum/sets/psy_909.gig'...OK
Loading gig instrument
('/media/samples/drum/sets/psy_909.gig',0)...gig::InstrumentResourceManager:
progress 0.000000gig::EngineChannel: progress
0gig::InstrumentResourceManager: progress 0.000000gig::EngineChannel:
progress 0RenderAudio(Samples=64)
gig::Engine: engine disabled (val=1)
RenderAudio(Samples=64)
gig::Engine: engine disabled (val=1)
RenderAudio(Samples=64)
gig::Engine: engine disabled (val=1)
gig::InstrumentResourceManager: progress 0.055556gig::EngineChannel:
progress 5gig::InstrumentResourceManager: progress
0.111111gig::EngineChannel: progress 10gig::InstrumentResourceManager:
progress 0.166667gig::EngineChannel: progress
15gig::InstrumentResourceManager: progress 0.222222gig::EngineChannel:
progress 20gig::InstrumentResourceManager: progress
0.277778gig::EngineChannel: progress 25RenderAudio(Samples=64)
gig::Engine: engine disabled (val=1)
gig::InstrumentResourceManager: progress 0.333333gig::EngineChannel:
progress 30gig::InstrumentResourceManager: progress
0.333333gig::EngineChannel: progress 30gig::InstrumentResourceManager:
progress 0.333333gig::EngineChannel: progress
30gig::InstrumentResourceManager: progress 0.333333gig::EngineChannel:
progress 30gig::InstrumentResourceManager: progress
0.333333gig::EngineChannel: progress 30gig::InstrumentResourceManager:
progress 0.444444gig::EngineChannel: progress
40gig::InstrumentResourceManager: progress 0.555556gig::EngineChannel:
progress 50RenderAudio(Samples=64)
gig::Engine: engine disabled (val=1)
gig::InstrumentResourceManager: progress 0.666667gig::EngineChannel:
progress 60gig::InstrumentResourceManager: progress
0.777778gig::EngineChannel: progress 69gig::InstrumentResourceManager:
progress 0.888889gig::EngineChannel: progress 80RenderAudio(Samples=64)
gig::Engine: engine disabled (val=1)
gig::InstrumentResourceManager: progress 1.000000gig::EngineChannel:
progress 89gig::InstrumentResourceManager: progress
1.000000gig::EngineChannel: progress 89gig::InstrumentResourceManager:
progress 1.000000gig::EngineChannel: progress 89OK
Caching initial samples...gig::EngineChannel: progress 89C
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb6d7eb90 (LWP 6865)]
0xb7fdab94 in
LinuxSampler::gig::InstrumentResourceManager::CacheInitialSamples
(this=0xb808eba0,
pSample=0x80a7428, pEngineChannel=0x811fc98) at
InstrumentResourceManager.cpp:624
624 InstrumentResourceManager.cpp: No such file or directory.
in InstrumentResourceManager.cpp
And here's the backtrace:
#0 0xb7fdab94 in
LinuxSampler::gig::InstrumentResourceManager::CacheInitialSamples
(this=0xb808eba0,
pSample=0x80a7428, pEngineChannel=0x811fc98) at
InstrumentResourceManager.cpp:624
pEngine = <value optimized out>
#1 0xb7fdd876 in LinuxSampler::gig::InstrumentResourceManager::Create
(this=0xb808eba0, Key=
{FileName = {static npos = 4294967295, _M_dataplus =
{<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data
fields>}, <No data fields>}, _M_p = 0xb6d7a824 "�S\n\b"}}, Index =
135396552},
pConsumer=0x811fcc8, [EMAIL PROTECTED]) at
InstrumentResourceManager.cpp:515
localProgress = 0.899999976
pGig = (struct gig::File *) 0x80a5240
callbackArg = {pManager = 0xb808eba0, pInstrumentKey = 0xb6d7a824}
progress = {
callback = 0xb7fdb578
<LinuxSampler::gig::InstrumentResourceManager::OnInstrumentLoadingProgress(gig::progress_t*)>,
factor = 4.37106472e-34, custom = 0xb6d7a79c, __range_min = 0,
__range_max = 1}
pInstrument = (struct gig::Instrument *) 0x80a9bf0
iRegion = 0
pRgn = (struct gig::Region *) 0x80aa778
pEntry = <value optimized out>
#2 0xb7fdc106 in LinuxSampler::gig::InstrumentResourceManager::OnBorrow
(this=0xb808eba0, pResource=0x80ab1e0,
pConsumer=0x811fcc8, [EMAIL PROTECTED]) at
../../common/ResourceManager.h:314
maxSamplesPerCycle = 1886545260
#3 0xb7fe3555 in
LinuxSampler::ResourceManager<LinuxSampler::InstrumentManager::instrument_id_t,
gig::Instrument>::Borrow (this=0xb808eba4, Key=
{FileName = {static npos = 4294967295, _M_dataplus =
{<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data
fields>}, <No data fields>}, _M_p = 0xb6d7a984 "�S\n\b"}}, Index =
135396552},
pConsumer=0x811fcc8, bLock=true) at ../../common/ResourceManager.h:241
No locals.
#4 0xb7fdccb2 in
LinuxSampler::gig::InstrumentResourceManager::LaunchInstrumentEditor
(this=0xb808eba0, ID=
{FileName = {static npos = 4294967295, _M_dataplus =
{<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data
fields>}, <No data fields>}, _M_p = 0xb6d7aa30 "�S\n\b"}}, Index =
135348480})
at InstrumentResourceManager.cpp:198
sDataType = {static npos = 4294967295,
_M_dataplus = {<std::allocator<char>> =
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data
fields>}, _M_p = 0x811410c "libgig"}}
sDataVersion = {static npos = 4294967295,
_M_dataplus = {<std::allocator<char>> =
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data
fields>}, _M_p = 0x80a5334 "3.2.1"}}
vEditors = {<std::_Vector_base<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::allocator<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >> = {
_M_impl = {<std::allocator<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >> =
{<__gnu_cxx::new_allocator<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >> = {<No data
fields>},<No data fields>}, _M_start = 0x8114478, _M_finish = 0x811447c,
_M_end_of_storage = 0x811447c}}, <No data fields>}
pEditor = (class LinuxSampler::InstrumentEditor *) 0x811fce0
pProxy = (LinuxSampler::gig::InstrumentEditorProxy *) 0x811fcc8
pInstrument = (struct gig::Instrument *) 0xb6d7aa10
engineChannels = {_M_t = {
_M_impl =
{<std::allocator<std::_Rb_tree_node<LinuxSampler::gig::EngineChannel*>
>> =
{<__gnu_cxx::new_allocator<std::_Rb_tree_node<LinuxSampler::gig::EngineChannel*>
>> = {<No data fields>}, <No data fields>},
_M_key_compare =
{<std::binary_function<LinuxSampler::gig::EngineChannel*,
LinuxSampler::gig::EngineChannel*, bool>> = {<No data fields>}, <No data
fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0,
_M_left = 0x0, _M_right = 0xb6d7aa08}, _M_node_count = 0}}}
#5 0xb7f9d1e2 in LSCPServer::EditSamplerChannelInstrument
(this=0x7072656c, uiSamplerChannel=3067587120)
at lscpserver.cpp:2463
pSamplerChannel = (class LinuxSampler::SamplerChannel *) 0x7072656c
pInstrumentManager = (class LinuxSampler::InstrumentManager *)
0xb808eba0
instrumentID = {FileName = {static npos = 4294967295,
_M_dataplus = {<std::allocator<char>> =
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data
fields>}, _M_p = 0x80a53d4 "/media/samples/drum/sets/psy_909.gig"}},
Index = 0}
pEngineChannel = (class LinuxSampler::EngineChannel *) 0xb6d7aa30
pEngine = (class LinuxSampler::Engine *) 0x7072656c
result = {storage = {static npos = 4294967295,
_M_dataplus = {<std::allocator<char>> =
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data
fields>}, _M_p = 0xb7dd5634 ""}}, count = 0, result_type = 0,
result_index = -1}
Thanks,
Juuso
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Linuxsampler-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel