View Issue Details

IDCategoryLast Update
0007769bugs2019-06-23 15:19
ReporterunfaAssigned Tox42 
Reproducibilityalways 
Status resolvedResolutionno change required 
PlatformAMD 64 PCOSManjaro LinuxOS Version18.0.4 Illyria
Product Version5.12 
Fixed in Version 
Summary0007769: Consistent crashes when playing a certain session
DescriptionAfter recent Manjaro update I have Ardour freezing randomly during playback in a particular session.
I tested other session and it's fine.

I don't see a connection to any particular faulty plug-in though.

I'm attaching the GDB backtrace and the session in question (I had to remove all audio interchange to reduce the upload size).
Steps To Reproduce1. Open the attached session.
2. Start playback.
3. Wait for the crash.
Additional InformationThread 44 "ardour-5.12.0" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffc45c6700 (LWP 7164)]
0x00007ffff7ca2c24 in ARDOUR::LV2Plugin::connect_and_run(ARDOUR::BufferSet&, long, long, double, ARDOUR::ChanMapping, ARDOUR::ChanMapping, unsigned int, long) () from /usr/lib/ardour5/libardour.so.3
(gdb) bt
#0 0x00007ffff7ca2c24 in ARDOUR::LV2Plugin::connect_and_run(ARDOUR::BufferSet&, long, long, double, ARDOUR::ChanMapping, ARDOUR::ChanMapping, unsigned int, long) () at /usr/lib/ardour5/libardour.so.3
0000001 0x00007ffff7ae243c in ARDOUR::PluginInsert::connect_and_run(ARDOUR::BufferSet&, long, long, double, unsigned int, long, bool) () at /usr/lib/ardour5/libardour.so.3
#2 0x00007ffff7ae35f5 in ARDOUR::PluginInsert::automate_and_run(ARDOUR::BufferSet&, long, long, double, unsigned int) () at /usr/lib/ardour5/libardour.so.3
#3 0x00007ffff7ae370b in ARDOUR::PluginInsert::run(ARDOUR::BufferSet&, long, long, double, unsigned int, bool) () at /usr/lib/ardour5/libardour.so.3
0000004 0x00007ffff7b48b1e in ARDOUR::Route::process_output_buffers(ARDOUR::BufferSet&, long, long, unsigned int, int, bool) () at /usr/lib/ardour5/libardour.so.3
0000005 0x00007ffff7a758cc in ARDOUR::MidiTrack::roll(unsigned int, long, long, int, bool&) () at /usr/lib/ardour5/libardour.so.3
#6 0x00007ffff78a328f in ARDOUR::Graph::process_one_route(ARDOUR::Route*) () at /usr/lib/ardour5/libardour.so.3
#7 0x00007ffff78a2e07 in ARDOUR::Graph::run_one() () at /usr/lib/ardour5/libardour.so.3
0000008 0x00007ffff78a2f79 in ARDOUR::Graph::main_thread() () at /usr/lib/ardour5/libardour.so.3
0000009 0x00007fffec406f27 in ARDOUR::JACKAudioBackend::_start_process_thread(void*) () at /usr/lib/ardour5/backends/libjack_audiobackend.so
0000010 0x00007ffff56d7a92 in start_thread () at /usr/lib/libpthread.so.0
0000011 0x00007ffff501fcd3 in clone () at /usr/lib/libc.so.6
TagsNo tags attached.

Activities

unfa

2019-06-22 11:24

reporter  

Dragonfly Reverb 2.tar.gz (962,079 bytes)

unfa

2019-06-22 11:31

reporter   ~0020677

Update: it crashes 6.0-pre the same way.

unfa

2019-06-22 11:59

reporter   ~0020678

Here's a more detailed backtrace:
https://0bin.net/paste/H9NzmWTzHJ5H-ikh#rzGBioXzPQ-2R6vWrJX+adCVXLI9BpR05g3CgvbBzhl

x42

2019-06-22 14:40

administrator   ~0020679

Last edited: 2019-06-22 14:41

View 2 revisions

The crash is in a LV2 plugin. Load the session with "Safe Mode: disable all plugins".

As is, this backtracke of optimized builds doesn't provide a clue to he cause of the issue. A debug version of Ardour and the plugin with debug-symbols might be able to shed some more light.

x42

2019-06-22 19:14

administrator   ~0020680

The main issue is the Piano track: a combination of MIDI-Strum (sending unordered events) and MDA-Piano causing memory-corruption if it receives MIDI events that are not sorted by time.

unfa

2019-06-23 13:15

reporter   ~0020681

Thanks, x42!

I hould be able torestore this project to a working state knowing this.

How have you found out what's the problem?

Also: is that a problem in MDA Piano or MIDI Strum? Or both maybe?

x42

2019-06-23 13:57

administrator   ~0020682

MDA-piano.lv2 causes crashes when it receives MIDI events that are not correctly sorted.

There are various ways to produce un-ordered MIDI events. e.g. connect multiple jack MIDI ports to a single target, or here: the MIDI Strum plugin.

x42

2019-06-23 14:37

administrator   ~0020683

Forwarded: http://dev.drobilla.net/ticket/1178

Also the MIDI-Strum plugin was changed to sort events to prevent this particular case: https://github.com/x42/midifilter.lv2/commit/6aa58936 (midifilter.lv2 v0.5.3-1 or upcoming v0.5.4 and later).

x42

2019-06-23 14:37

administrator   ~0020684

Last edited: 2019-06-23 14:37

View 2 revisions

Closed - This is not an Ardour issue.

drobilla

2019-06-23 15:19

developer   ~0020685

Last edited: 2019-06-23 15:19

View 2 revisions

Uh... this certainly is an Ardour issue! Hosts are required to send ordered events to plugins, and plugins (like MIDI Strum) are required to output them in order as well.

Issue History

Date Modified Username Field Change
2019-06-22 11:24 unfa New Issue
2019-06-22 11:24 unfa File Added: Dragonfly Reverb 2.tar.gz
2019-06-22 11:31 unfa Note Added: 0020677
2019-06-22 11:59 unfa Note Added: 0020678
2019-06-22 14:40 x42 Note Added: 0020679
2019-06-22 14:41 x42 Note Edited: 0020679 View Revisions
2019-06-22 19:14 x42 Note Added: 0020680
2019-06-23 13:15 unfa Note Added: 0020681
2019-06-23 13:57 x42 Note Added: 0020682
2019-06-23 14:37 x42 Note Added: 0020683
2019-06-23 14:37 x42 Assigned To => x42
2019-06-23 14:37 x42 Status new => resolved
2019-06-23 14:37 x42 Resolution open => no change required
2019-06-23 14:37 x42 Note Added: 0020684
2019-06-23 14:37 x42 Note Edited: 0020684 View Revisions
2019-06-23 15:19 drobilla Note Added: 0020685
2019-06-23 15:19 drobilla Note Edited: 0020685 View Revisions