bugThe Om Modular Synthesizer - Bugs: bug #15530, Engine segfault on loading patches

 
 

bug #15530: Engine segfault on loading patches

Submitted by:  Thorsten Wilms <thorwil>
Submitted on:  Wed 25 Jan 2006 07:32:50 PM UTC  
Votes:  100  
 
Category: NoneSeverity: 4 - Important
Item Group: NoneStatus: Fixed
Privacy: PublicAssigned to: Dave Robillard <drobilla>
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Thu 26 Jan 2006 04:58:14 PM UTC, comment #1:

The crash is caused by an assertion in InputPort::add_connection() that checks that an input port that is marked as tied has the same buffers as the output port it is tied to. This fails because of something that happens in InputPort::add_connection(), because if you add the same assert() statement at the beginning of the function it will not abort the program.

Maybe it is caused by the optimisation for the case when the input port only has one connection, and its buffers are joined directly to the buffers of the output port it is being connected to? That would cause the buffers' data pointers to be changed from the previously tied ports buffers, and the assertion would fail. I don't understand everything that goes on here though.

Lars Luthman <larsl>
Project Member
Wed 25 Jan 2006 07:32:50 PM UTC, original submission:

Om CVS, build with --enable-debug
This didn't happen with an optimzed build.

1. start om, om-gtk
2. Disable processing (same happens with it kept on, though)
3. open patch in om_gtk (patch with subpatches)
Engine segfaults:

(...)
[JackAudioDriver] Activated Jack client.
[AlsaMidiDriver] Started realtime MIDI thread (SCHED_FIFO, priority 10)
[OSC] Registered client osc.udp://localhost:12967/ (1 clients)
[JackAudioDriver] Enabling.
[JackAudioDriver] Disabling.
om: InputPort.cpp:76: void Om::InputPort<T>::add_connection(ListNode<Om::ConnectionBase<T>>) [with T = sample]: Assertion `! m_is_tied || m_buffers.at(0)->data() == m_tied_port->buffer(0)->data()' failed.
Aborted (core dumped)

(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7c6d031 in raise () from /lib/libc.so.6
#2 0xb7c6e74d in abort () from /lib/libc.so.6
#3 0xb7c668f2 in __assert_fail () from /lib/libc.so.6
#4 0x080638ce in Om::InputPort<float>::add_connection (this=0x8132080,
c=0x81306e0) at InputPort.cpp:76
#5 0x08073d0c in Om::TypedConnectionEvent<float>::execute (
this=0x8130738, sample_offset=0) at ConnectionEvent.cpp:216
#6 0x080733ca in Om::ConnectionEvent::execute (this=0x81348f8,
sample_offset=0) at ConnectionEvent.cpp:131
#7 0x08057799 in Om::JackAudioDriver::process_events (this=0x809e6e8,
block_start=10774272, block_end=10774528) at JackAudioDriver.cpp:276
#8 0x08057978 in Om::JackAudioDriver::m_process_cb (this=0x809e6e8,
nframes=256) at JackAudioDriver.cpp:321
#9 0x08057e60 in Om::JackAudioDriver::process_cb (nframes=256,
jack_driver=0x809e6e8) at JackAudioDriver.h:158
#10 0xb7f4e932 in jack_client_close () from /usr/lib/libjack.so.0
#11 0x00000000 in ?? ()

Thorsten Wilms <thorwil>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

Do you think this task is very important?
If so, you can click here to add your encouragement to it.
This task has 100 encouragements so far.

Only logged-in users can vote.

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

 

 

Follow 5 latest changes.

Date Changed By Updated Field Previous Value => Replaced By
Fri 27 Jan 2006 08:52:38 PM UTCdrobillaSeverity3 - Normal=>4 - Important
  StatusNone=>Fixed
  Assigned toNone=>drobilla
  Open/ClosedOpen=>Closed
Thu 26 Jan 2006 10:48:01 PM UTClarslCarbon-Copy-=>Added larsl

Back to the top


Powered by Savane 3.1-cleanup1