View Issue Details

IDProjectCategoryView StatusLast Update
0003447ardourbugspublic2010-09-17 18:11
Reporterkleinebre Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status feedbackResolutionopen 
Product Version2.8.6 
Summary0003447: Ardour JACK crash, climbs to max cpu usage
DescriptionSystem details:

Running ardour-2.8.6, jackd 0.118.0, protocol 24 under Ubuntu 10.4
kernel: Linux mrjb-desktop 2.6.31-11-rt 0000154-Ubuntu SMP PREEMPT RT Wed Jun 9 12:28:53 UTC 2010 i686 GNU/Linux
Ubuntu install is under a week old (so still mostly clean).

/etc/security/limits.conf contains

@audio - rtprio 100
@audio - nice -15
@audio - memlock 2995341

Not running pulseaudio.

Managing latencies of under 3 msec but configured JACK to run at 23.2 msec.

Just installed a fresh ardour, testdriving it (have used it before).
Created a new session with 1 (stereo) master, then added 16 mono busses.
Connected up the 16 busses from an external JACK program to ardour using
QJackCtl (JACK was already running before starting ardour).

No effects of any kind applied yet, I started playing audio. Audio was sounding through speakers. Clicking "mute" on the first bus triggered a message that "ardour was too slow".

The ardour process was not killed; CPU usage is stuck at 0000092:0000098% (total load- both cores used).

TagsNo tags attached.

Activities

cth103

2010-09-11 20:54

administrator   ~0009026

Could you upgrade to the current release of Ardour (2.8.11) and see if the problem persists?

kleinebre

2010-09-11 23:24

reporter   ~0009027

I've just spent over an hour trying to build and run ardour from scratch now.
It has compiled but is not running yet (library paths...).

Would it be an awful lot of trouble to try to reproduce the issue first? That would take five minutes tops, and might save me another hour troubleshooting my brand new ardour2 build environment.

cth103

2010-09-11 23:31

administrator   ~0009028

The first part of the bug you mention (mute causes a JACK disconnect) is something I cannot reproduce. One cause of the second part of your bug (CPU usage climbs after JACK disconnect) was fixed around 2.8.10-11 ish.

May I suggest you come onto #ardour on irc.freenode.org and discuss your build problems?

As a first guess, are you running your newly-build ardour using gtk2_ardour/ardev?

kleinebre

2010-09-11 23:41

reporter   ~0009029

Confirming that the problem still occurs, although in this
instance I had the mixer window open as well and it took a
few mute/unmute operations. Exact error message:

"JACK has either been shutdown or it
disconnected Ardour because Ardour
was not fast enough. Try to restart
JACK, reconnect and save the session."

In the meantime, JACK is still running.

cth103

2010-09-11 23:44

administrator   ~0009030

Are you still seeing the large CPU use?

What is this mysterious "external JACK program" that you are using?

kleinebre

2010-09-12 09:13

reporter   ~0009031

> Are you still seeing the large CPU use?

No, it looks like that particular issue no longer occurs.
The crash still persists.

I've also noticed that when I mute or unmute a channel in Ardour, there is a brief "hickup" in the sound.

The mysterious "external JACK program" is HD24connect.

paul

2010-09-15 14:57

administrator   ~0009059

just a terminology note: there's no crash going on here. JACK disconnects Ardour - this is not a crash.

does it work to reconnect to JACK (via the "JACK" item in the top menu bar)?

does the issue still arise without the use of hd24connect ?

kleinebre

2010-09-16 21:08

reporter   ~0009072

After reconnecting to JACK via the menu, things "work" again (until clicking mute in the mixer again a few times). The issue occurs even if no buses are connected.

lincoln

2010-09-16 21:45

reporter   ~0009077

I suggest you set memlock to unlimited in limits.conf and see how it goes.

kleinebre

2010-09-17 11:38

reporter   ~0009081

Same behaviour, except this time on reconnecting to JACK, Ardour segfaulted.

Starting JACK from Ardour, ALSA/ICE1712 multi/48000 Hz, buffersize 512, 2 buffers, duplex mode. Note it seemed I needed to click Mute/unmute a bit quicker this time.

When trying to reconnect JACK, this time, Ardour segfaulted.

Here's the console output:

mrjb@mrjb-desktop:~$ ardour2
Ardour 2.8.11
   (built using 7387 and GCC version 4.4.3)
Copyright (C) 1999-2008 Paul Davis
Some portions Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker

Ardour comes with ABSOLUTELY NO WARRANTY
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This is free software, and you are welcome to redistribute it
under certain conditions; see the source for copying conditions.
loading default ui configuration file /usr/local/etc/ardour2/ardour2_ui_default.conf
loading user ui configuration file /home/mrjb/.ardour2/ardour2_ui.conf
Loading ui configuration file /usr/local/etc/ardour2/ardour2_ui_dark.rc
theme_init() called from internal clearlooks engine
ardour: [INFO]: Ardour will be limited to 1024 open files
loading system configuration file /usr/local/etc/ardour2/ardour_system.rc
loading user configuration file /home/mrjb/.ardour2/ardour.rc
ardour: [INFO]: Using SSE optimized routines
ardour: [INFO]: looking for control protocols in /home/mrjb/.ardour2/surfaces/:/usr/local/lib/ardour2/surfaces/
ardour: [INFO]: Control surface protocol discovered: "Generic MIDI"
ardour: [INFO]: Control surface protocol discovered: "Mackie"
powermate: Opening of powermate failed - No such file or directory
ardour: [INFO]: Control protocol powermate not usable
JACK COMMAND: /usr/bin/jackd -p 128 -R -P 60 -T -d alsa -n 2 -r 48000 -p 512 -d hw:0,0
jackd 0.118.0
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details


Memory locking is unlimited - this is dangerous. You should probably alter the line:
     @audio - memlock unlimited
in your /etc/limits.conf to read:
     @audio - memlock 2595330
no message buffer overruns
JACK compiled with System V SHM support.
loading driver ..
apparent rate = 48000
creating alsa driver ... hw:0,0|hw:0,0|512|2|48000|0|0|nomon|swmeter|-|32bit
control device hw:0
configuring for 48000Hz, period = 512 frames (10.7 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
loading bindings from /usr/local/etc/ardour2/mnemonic-us.bindings

(ardour-2.8.11:4984): Gtk-WARNING **: EnableTranslation: missing action EnableTranslation
Session writable based on /home/mrjb/studio16/
no ports available!
no ports available!
no ports available!
subgraph starting at ardour timed out (subgraph_wait_fd=11, status = 0, state = Running, pollret = 0 revents = 0x0)


**** alsa_pcm: xrun of at least 0.027 msecs


no ports available!
Segmentation fault
mrjb@mrjb-desktop:~$ jack main caught signal 12

On a sidenote, my limits.conf is in /etc/security/limits.conf; by default, a file /etc/limits.conf does not exist.

kleinebre

2010-09-17 18:11

reporter   ~0009083

Additional info, very likely to be related-
Whenever I click mute (whether muting or unmuting), in the QJackCtl connection manager another instance of alsa-jack.jackP.<processid>.<sequence> is created with 2 output ports. Thus, it may be that the JACK server running out of ports ("no ports available!" message) is what causes Ardour to choke.

I've seen alsa-jack.jackP.<pid>.<seq> ports being created outside Ardour so I'd chalk this up as being a JACK problem rather than Ardour (unless Alsa is to blame? my .asoundrc is configured to permit alsa over JACK and looks like this:

pcm.!default {
                type plug
                slave { pcm "jack" }
        }

pcm.jack {
    type jack
    playback_ports {
           0 alsa_pcm:playback_1
           1 alsa_pcm:playback_2
       }
    capture_ports {
           0 alsa_pcm:capture_1
        1 alsa_pcm:capture_2
    }
}

However the playback ports in the connection manager are invariably called out_000 and out_001.

Any ideas?

Issue History

Date Modified Username Field Change
2010-09-11 11:20 kleinebre New Issue
2010-09-11 20:54 cth103 Note Added: 0009026
2010-09-11 20:54 cth103 Status new => feedback
2010-09-11 23:24 kleinebre Note Added: 0009027
2010-09-11 23:31 cth103 Note Added: 0009028
2010-09-11 23:41 kleinebre Note Added: 0009029
2010-09-11 23:44 cth103 Note Added: 0009030
2010-09-12 09:13 kleinebre Note Added: 0009031
2010-09-15 14:57 paul Note Added: 0009059
2010-09-16 21:08 kleinebre Note Added: 0009072
2010-09-16 21:45 lincoln Note Added: 0009077
2010-09-17 11:38 kleinebre Note Added: 0009081
2010-09-17 18:11 kleinebre Note Added: 0009083