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
Linuxsampler-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel

Reply via email to