View Issue Details

IDProjectCategoryView StatusLast Update
0008796ardourbugspublic2022-04-13 10:57
Reporteragittins Assigned Tox42  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformx86_64OSDebianOS Versionsid
Product Version6.9 
Summary0008796: Possible memory leak, consumption increases 1MB per 10 seconds or so
DescriptionI am using 6.9.0 downloaded from ardour.org.

I noticed that the current sessions I am using were getting oom-killed if I left them open overnight, eg:

Aug 17 13:16:20 yogi kernel: Out of memory: Killed process 1412770 (WS-(nil)) total-vm:24829716kB, anon-rss:21068652kB, file-rss:0kB, shmem-rss:113900kB, UID:1000 pgtables:42616kB oom_score_adj:0

(I'm not sure why it's calling it WS-(nil) but that's what ardour shows up as in a short-name process listing).

Running htop I noticed that the RSS reported for Ardour was increasing continually. I removed the autosave lua script which was the only one in the "Action Hooks" tab of the script manager and restarted ardour with an empty session, no regions, tracks or plugins.

In this state, not being used, RSS was increasing by 1MB every 3 to 20 seconds.

At startup (after initial dialogs and a few moments to settle) Ardour sat at around 400MB. At 10 minutes 447MB, 495MB at 15 minutes, 933MB at 40 minutes, 1050MB at 45 mins. At this point RSS was increasing by 1MB every 1 to 3 seconds, so it seems that the amount of leaking memory might be cumulative in some way.

I ran valgrind against it (boy is that slow!) but I don't know if it's terribly useful - there seem to be lots of issues with some ui / cairo stuff, but I don't know if that's related. I've got a 6.7MB logfile that I can upload somewhere if it's useful. I've attached a heavily cut-down version if that's helpful, the summary in particular. I ended up running valgrind with --error-limit=no since it stopped reporting after 1000 errors. I ran it by inserting the valgrind command into the shell script between "exec" and ardour.
Steps To ReproduceOpen Ardour 6.9.0
Select new session with empty template
Monitor RSS memory size in htop/top/ps

Memory initially increases by 1MB every 3 to 20 seconds, but gradually accelerates.
Additional InformationHere's the summary from the end of the valgrind run. Also attached is a very cut-down logfile (removed some 90,000 lines similar to the included errors). I can upload the full log (about 7MB) if it's useful, or I can re-run valgrind differently (against a debug build?) if that's helpful.

==2202139== Rerun with --leak-check=full to see details of leaked memory
==2202139==
==2202139== For lists of detected and suppressed errors, rerun with: -s
==2202139== ERROR SUMMARY: 7398049 errors from 3403 contexts (suppressed: 4 from 3)
^[[?2004hagittins@yogi:~/tmp/empty/ardour-debug$
^[[?2004l^[[?2004hagittins@yogi:~/tmp/empty/ardour-debug$ exit
^[[?2004lexit

==2202139== by 0x86C2575: gtk_object_destroy (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139== Uninitialised value was created by a heap allocation
==2202139== at 0x48397B5: malloc (vg_replace_malloc.c:380)
==2202139== by 0x7E09509: g_malloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139== by 0x7E27922: g_slice_alloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139== by 0x9E9D3BD: pango_font_description_new (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139== by 0x9E9DEFE: pango_font_description_from_string (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139== by 0x873DD5C: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139== by 0x86F37A7: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139== by 0x86FA31A: gtk_rc_get_style (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139== by 0x881E532: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139== by 0xE25686: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139== by 0x5DA32D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139== by 0x5DD7F4: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==
==2202139==
==2202139== HEAP SUMMARY:
==2202139== in use at exit: 181,889,828 bytes in 1,478,410 blocks
==2202139== total heap usage: 29,591,291 allocs, 28,112,881 frees, 5,155,134,860 bytes allocated
==2202139==
==2202139== LEAK SUMMARY:
==2202139== definitely lost: 701,089 bytes in 18,320 blocks
==2202139== indirectly lost: 11,976,654 bytes in 16,337 blocks
==2202139== possibly lost: 4,983,057 bytes in 15,734 blocks
==2202139== still reachable: 162,749,892 bytes in 1,421,681 blocks
==2202139== of which reachable via heuristic:
==2202139== length64 : 28,128 bytes in 381 blocks
==2202139== newarray : 1,614,296 bytes in 86 blocks
==2202139== multipleinheritance: 99,576 bytes in 1,599 blocks
==2202139== suppressed: 0 bytes in 0 blocks
==2202139== Rerun with --leak-check=full to see details of leaked memory
==2202139==
==2202139== For lists of detected and suppressed errors, rerun with: -s
==2202139== ERROR SUMMARY: 7398049 errors from 3403 contexts (suppressed: 4 from 3)
TagsNo tags attached.

Activities

agittins

2021-09-14 01:04

reporter  

valgrind-cutdown.txt (30,211 bytes)   
Script started on 2021-09-14 09:02:38+10:00 [TERM="rxvt-unicode-256color" TTY="/dev/pts/17" COLUMNS="212" LINES="60"]
[?2004hagittins@yogi:~/tmp/empty/ardour-debug$ /opt/Ardour-6.9.0/bin/ardour6-valgrind/opt/Ardour-6.9.0/bin/ardour6-valgrind
[?2004l
==2202139== Memcheck, a memory error detector
==2202139== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==2202139== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info
==2202139== Command: /opt/Ardour-6.9.0/bin/ardour-6.9.0
==2202139== 
Ardour6.9.0 (built using 6.9 and GCC version 6.3.0 20170516)
Ardour: [INFO]: Your system is configured to limit Ardour to 1024 open files
Ardour: [INFO]: Loading system configuration file /opt/Ardour-6.9.0/etc/system_config
Ardour: [INFO]: Loading user configuration file /home/agittins-ssd/.config/ardour6/config
Ardour: [INFO]: CPU vendor: GenuineIntel
Ardour: [INFO]: AVX-capable processor
Ardour: [INFO]: CPU brand:         Intel(R) Core(TM) i5-2300 CPU @ 2.80GHz
Ardour: [INFO]: Using AVX optimized routines
Ardour: [INFO]: Loading plugin meta data file /opt/Ardour-6.9.0/share/plugin_metadata/plugin_tags
Ardour: [INFO]: Loading plugin meta data file /home/agittins-ssd/.config/ardour6/plugin_metadata/plugin_tags
Ardour: [INFO]: Loading plugin statistics file /home/agittins/.config/ardour6/plugin_metadata/plugin_stats
Cannot xinstall SIGPIPE error handler
Ardour: [INFO]: Loading 452 MIDI patches from /opt/Ardour-6.9.0/share/patchfiles
Ardour: [INFO]: Loading default ui configuration file /opt/Ardour-6.9.0/etc/default_ui_config
Ardour: [INFO]: Loading user ui configuration file /home/agittins-ssd/.config/ardour6/ui_config
Ardour: [INFO]: Loading color file /opt/Ardour-6.9.0/share/themes/dark-ardour.colors
Ardour: [INFO]: Loading color file /home/agittins-ssd/.config/ardour6/my-dark-ardour.colors
Ardour: [INFO]: Loading ui configuration file /opt/Ardour-6.9.0/etc/clearlooks.rc
Ardour: [INFO]: Loading bindings from /home/agittins/.config/ardour6/ardour.keys
Loading ui configuration file /opt/Ardour-6.9.0/etc/clearlooks.rc
Cannot open ardourprobe client
JackShmReadWritePtr1::~JackShmReadWritePtr1 - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot open ardourprobe client
JackShmReadWritePtr1::~JackShmReadWritePtr1 - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot write socket fd = 11 err = Broken pipe
JackSocketClientChannel write fail
Cannot open ardourprobe client
JackShmReadWritePtr1::~JackShmReadWritePtr1 - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
no more csLADSPA plugins
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/a-delay.lv2/>
lilv_world_load_bundle(): note: Newer version of <urn:ardour:a-delay> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/a-delay.lv2/>
error: failed to open file /usr/lib/lv2/libarch-lv2/manifest.ttl (No such file or directory)
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/libarch-lv2/manifest.ttl'
lilv_world_load_bundle(): error: Error reading file:///usr/lib/lv2/libarch-lv2/manifest.ttl
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/a-comp.lv2/>
lilv_world_load_bundle(): note: Newer version of <urn:ardour:a-comp> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/a-comp.lv2/>
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/a-reverb.lv2/>
lilv_world_load_bundle(): note: Newer version of <urn:ardour:a-reverb> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/a-reverb.lv2/>
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/a-fluidsynth.lv2/>
lilv_world_load_bundle(): note: Newer version of <urn:ardour:a-fluidsynth> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/a-fluidsynth.lv2/>
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/gmsynth.lv2/>
lilv_world_load_bundle(): note: Newer version of <http://gareus.org/oss/lv2/gmsynth> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/gmsynth.lv2/>
error: failed to open file /usr/lib/lv2/libarch-lv2.readme/manifest.ttl (Not a directory)
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/libarch-lv2.readme/manifest.ttl'
lilv_world_load_bundle(): error: Error reading file:///usr/lib/lv2/libarch-lv2.readme/manifest.ttl
lilv_world_add_plugin(): warning: Duplicate plugin <https://community.ardour.org/node/7596>
lilv_world_add_plugin(): warning: ... found in file:///opt/Ardour-6.9.0/lib/LV2/reasonablesynth.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/reasonablesynth.lv2/ (ignored)
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/a-eq.lv2/>
lilv_world_load_bundle(): note: Newer version of <urn:ardour:a-eq> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/a-eq.lv2/>
Scanning folders for bundled LV2s: /opt/Ardour-6.9.0/lib/LV2
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/a-delay.lv2/>
lilv_world_load_bundle(): note: Newer version of <urn:ardour:a-delay> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/a-delay.lv2/>
error: failed to open file /usr/lib/lv2/libarch-lv2/manifest.ttl (No such file or directory)
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/libarch-lv2/manifest.ttl'
lilv_world_load_bundle(): error: Error reading file:///usr/lib/lv2/libarch-lv2/manifest.ttl
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/a-comp.lv2/>
lilv_world_load_bundle(): note: Newer version of <urn:ardour:a-comp> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/a-comp.lv2/>
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/a-reverb.lv2/>
lilv_world_load_bundle(): note: Newer version of <urn:ardour:a-reverb> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/a-reverb.lv2/>
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/a-fluidsynth.lv2/>
lilv_world_load_bundle(): note: Newer version of <urn:ardour:a-fluidsynth> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/a-fluidsynth.lv2/>
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/gmsynth.lv2/>
lilv_world_load_bundle(): note: Newer version of <http://gareus.org/oss/lv2/gmsynth> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/gmsynth.lv2/>
error: failed to open file /usr/lib/lv2/libarch-lv2.readme/manifest.ttl (Not a directory)
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/libarch-lv2.readme/manifest.ttl'
lilv_world_load_bundle(): error: Error reading file:///usr/lib/lv2/libarch-lv2.readme/manifest.ttl
lilv_world_add_plugin(): warning: Duplicate plugin <https://community.ardour.org/node/7596>
lilv_world_add_plugin(): warning: ... found in file:///opt/Ardour-6.9.0/lib/LV2/reasonablesynth.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/reasonablesynth.lv2/ (ignored)
lilv_world_load_bundle(): warning: Ignoring bundle <file:///usr/lib/lv2/a-eq.lv2/>
lilv_world_load_bundle(): note: Newer version of <urn:ardour:a-eq> loaded from <file:///opt/Ardour-6.9.0/lib/LV2/a-eq.lv2/>
==2202139== Conditional jump or move depends on uninitialised value(s)
==2202139==    at 0x86AEAB7: gtk_misc_set_alignment (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0xDFBB91: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xDFFDE7: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xBEED9F: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x587E04: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x550F50: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x552D1B: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD65A64: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD6916D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xA8375F4: ??? (in /opt/Ardour-6.9.0/lib/libgtkmm-2.4.so.1)
==2202139==    by 0x7B68944: g_closure_invoke (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B7A01A: ??? (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==  Uninitialised value was created by a heap allocation
==2202139==    at 0x4839F2F: operator new(unsigned long) (vg_replace_malloc.c:417)
==2202139==    by 0x587DF9: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x550F50: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x552D1B: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD65A64: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD6916D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xA8375F4: ??? (in /opt/Ardour-6.9.0/lib/libgtkmm-2.4.so.1)
==2202139==    by 0x7B68944: g_closure_invoke (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B7A01A: ??? (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B83C2F: g_signal_emit_valist (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B84081: g_signal_emit (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x85EB80B: gtk_dialog_response (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139== 
==2202139== Conditional jump or move depends on uninitialised value(s)
==2202139==    at 0x86AEAE8: gtk_misc_set_alignment (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0xDFBB91: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xDFFDE7: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xBEED9F: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x587E04: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x550F50: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x552D1B: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD65A64: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD6916D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xA8375F4: ??? (in /opt/Ardour-6.9.0/lib/libgtkmm-2.4.so.1)
==2202139==    by 0x7B68944: g_closure_invoke (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B7A01A: ??? (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==  Uninitialised value was created by a heap allocation
==2202139==    at 0x4839F2F: operator new(unsigned long) (vg_replace_malloc.c:417)
==2202139==    by 0x587DF9: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x550F50: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x552D1B: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD65A64: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD6916D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xA8375F4: ??? (in /opt/Ardour-6.9.0/lib/libgtkmm-2.4.so.1)
==2202139==    by 0x7B68944: g_closure_invoke (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B7A01A: ??? (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B83C2F: g_signal_emit_valist (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B84081: g_signal_emit (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x85EB80B: gtk_dialog_response (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139== 
==2202139== Conditional jump or move depends on uninitialised value(s)
==2202139==    at 0x86AEB18: gtk_misc_set_alignment (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0xDFBB91: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xDFFDE7: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xBEED9F: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x587E04: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x550F50: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x552D1B: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD65A64: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD6916D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xA8375F4: ??? (in /opt/Ardour-6.9.0/lib/libgtkmm-2.4.so.1)
==2202139==    by 0x7B68944: g_closure_invoke (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B7A01A: ??? (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==  Uninitialised value was created by a heap allocation
==2202139==    at 0x4839F2F: operator new(unsigned long) (vg_replace_malloc.c:417)
==2202139==    by 0x587DF9: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x550F50: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x552D1B: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD65A64: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xD6916D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xA8375F4: ??? (in /opt/Ardour-6.9.0/lib/libgtkmm-2.4.so.1)
==2202139==    by 0x7B68944: g_closure_invoke (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B7A01A: ??? (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B83C2F: g_signal_emit_valist (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B84081: g_signal_emit (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x85EB80B: gtk_dialog_response (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139== 
Set cursor set to default
==2202139== Syscall param writev(vector[...]) points to uninitialised byte(s)
==2202139==    at 0xE3BDA6D: __writev (writev.c:26)
==2202139==    by 0xE3BDA6D: writev (writev.c:24)
==2202139==    by 0xFA14FB8: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==2202139==    by 0xFA15410: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==2202139==    by 0xFA154A3: xcb_writev (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==2202139==    by 0xDE6FEAD: _XSend (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==2202139==    by 0xDE651F9: XPutImage (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==2202139==    by 0xDE4D997: XCreateBitmapFromData (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==2202139==    by 0x8CB9E58: ??? (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0x8C9F7B3: gdk_cursor_new_from_pixbuf (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0xAE6E3E7: Gdk::Cursor::Cursor(Glib::RefPtr<Gdk::Display> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int) (in /opt/Ardour-6.9.0/lib/libgdkmm-2.4.so.1)
==2202139==    by 0xA7FF28: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xA803FC: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==  Address 0x20a06d33 is 3 bytes inside a block of size 88 alloc'd
==2202139==    at 0x48397B5: malloc (vg_replace_malloc.c:380)
==2202139==    by 0xDE72BBC: _XAllocScratch (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==2202139==    by 0xDE649DC: ??? (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==2202139==    by 0xDE651F9: XPutImage (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==2202139==    by 0xDE4D997: XCreateBitmapFromData (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==2202139==    by 0x8CB9E58: ??? (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0x8C9F7B3: gdk_cursor_new_from_pixbuf (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0xAE6E3E7: Gdk::Cursor::Cursor(Glib::RefPtr<Gdk::Display> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int) (in /opt/Ardour-6.9.0/lib/libgdkmm-2.4.so.1)
==2202139==    by 0xA7FF28: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xA803FC: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x672BC9: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x690AA3: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==  Uninitialised value was created by a heap allocation
==2202139==    at 0x48397B5: malloc (vg_replace_malloc.c:380)
==2202139==    by 0xDE72BBC: _XAllocScratch (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==2202139==    by 0xDE649DC: ??? (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==2202139==    by 0xDE651F9: XPutImage (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==2202139==    by 0xDE4D997: XCreateBitmapFromData (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==2202139==    by 0x8CB9E58: ??? (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0x8C9F7B3: gdk_cursor_new_from_pixbuf (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0xAE6E3E7: Gdk::Cursor::Cursor(Glib::RefPtr<Gdk::Display> const&, Glib::RefPtr<Gdk::Pixbuf> const&, int, int) (in /opt/Ardour-6.9.0/lib/libgdkmm-2.4.so.1)
==2202139==    by 0xA7FF28: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xA803FC: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x672BC9: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x690AA3: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139== 

##########################
[AJG: 90606 lines deleted]
##########################

==2202139== Conditional jump or move depends on uninitialised value(s)
==2202139==    at 0x48432E9: memset (vg_replace_strmem.c:1270)
==2202139==    by 0x935F0A6: ??? (in /opt/Ardour-6.9.0/lib/libcairo.so.2)
==2202139==    by 0x939D0B5: ??? (in /opt/Ardour-6.9.0/lib/libcairo.so.2)
==2202139==    by 0x93F4F01: ??? (in /opt/Ardour-6.9.0/lib/libcairo.so.2)
==2202139==    by 0x93703FF: ??? (in /opt/Ardour-6.9.0/lib/libcairo.so.2)
==2202139==    by 0x94167B7: ??? (in /opt/Ardour-6.9.0/lib/libcairo.so.2)
==2202139==    by 0x93DBD45: ??? (in /opt/Ardour-6.9.0/lib/libcairo.so.2)
==2202139==    by 0x9379C0B: ??? (in /opt/Ardour-6.9.0/lib/libcairo.so.2)
==2202139==    by 0x9372208: ??? (in /opt/Ardour-6.9.0/lib/libcairo.so.2)
==2202139==    by 0x93690E9: cairo_fill (in /opt/Ardour-6.9.0/lib/libcairo.so.2)
==2202139==    by 0x8C89B90: ??? (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0x8C8DD37: gdk_window_begin_paint_region (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==  Uninitialised value was created by a heap allocation
==2202139==    at 0x48397B5: malloc (vg_replace_malloc.c:380)
==2202139==    by 0x7E09509: g_malloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x7E27922: g_slice_alloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x9E9D3BD: pango_font_description_new (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139==    by 0x9E9DEFE: pango_font_description_from_string (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139==    by 0x873DD5C: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x86F37A7: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x86FA31A: gtk_rc_get_style (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x881E532: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0xE25686: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x5DA32D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x5DD7F4: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139== 









[AJG: added 8 tracks, mem growing here. No logging output is seen while memory use increases]


==2202139== Conditional jump or move depends on uninitialised value(s)
==2202139==    at 0x8C91558: ??? (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0x8C5E36C: ??? (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0x8C5F273: gdk_display_get_window_at_pointer (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0xAE707F2: Gdk::Display::get_window_at_pointer(int&, int&) (in /opt/Ardour-6.9.0/lib/libgdkmm-2.4.so.1)
==2202139==    by 0x72C5A2: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x72FE35: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x64D630E: ArdourCanvas::GtkCanvas::deliver_event(_GdkEvent*) (in /opt/Ardour-6.9.0/lib/libcanvas.so.0)
==2202139==    by 0x64D67FC: ArdourCanvas::GtkCanvas::on_motion_notify_event(_GdkEventMotion*) (in /opt/Ardour-6.9.0/lib/libcanvas.so.0)
==2202139==    by 0xA8BE047: Gtk::Widget_Class::motion_notify_event_callback(_GtkWidget*, _GdkEventMotion*) (in /opt/Ardour-6.9.0/lib/libgtkmm-2.4.so.1)
==2202139==    by 0x868FCAB: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x7B68944: g_closure_invoke (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B7A59F: ??? (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==  Uninitialised value was created by a heap allocation
==2202139==    at 0x48397B5: malloc (vg_replace_malloc.c:380)
==2202139==    by 0x7E09509: g_malloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x7E27922: g_slice_alloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x9E9D3BD: pango_font_description_new (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139==    by 0x9E9DEFE: pango_font_description_from_string (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139==    by 0x873DD5C: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x86F37A7: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x86FA31A: gtk_rc_get_style (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x881E532: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0xE25686: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x5DA32D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x5DD7F4: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139== 
==2202139== Conditional jump or move depends on uninitialised value(s)
==2202139==    at 0x55CC2A0: ARDOUR::Session::timecode_time_subframes(long, Timecode::Time&) (in /opt/Ardour-6.9.0/lib/libardour.so.3)
==2202139==    by 0x55CEB28: ARDOUR::Session::send_mmc_locate(long) (in /opt/Ardour-6.9.0/lib/libardour.so.3)
==2202139==    by 0x6FC6A5: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x6FC8A1: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x6F3C91: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x731E8D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x7343DA: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x6EA145: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x64D630E: ArdourCanvas::GtkCanvas::deliver_event(_GdkEvent*) (in /opt/Ardour-6.9.0/lib/libcanvas.so.0)
==2202139==    by 0x64D65F7: ArdourCanvas::GtkCanvas::on_button_press_event(_GdkEventButton*) (in /opt/Ardour-6.9.0/lib/libcanvas.so.0)
==2202139==    by 0xA8BDD17: Gtk::Widget_Class::button_press_event_callback(_GtkWidget*, _GdkEventButton*) (in /opt/Ardour-6.9.0/lib/libgtkmm-2.4.so.1)
==2202139==    by 0x868FCAB: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==  Uninitialised value was created by a heap allocation
==2202139==    at 0x48397B5: malloc (vg_replace_malloc.c:380)
==2202139==    by 0x7E09509: g_malloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x7E27922: g_slice_alloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x9E9D3BD: pango_font_description_new (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139==    by 0x9E9DEFE: pango_font_description_from_string (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139==    by 0x873DD5C: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x86F37A7: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x86FA31A: gtk_rc_get_style (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x881E532: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0xE25686: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x5DA32D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x5DD7F4: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139== 
==2202139== Conditional jump or move depends on uninitialised value(s)
==2202139==    at 0x9DB203: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x6D36519: PBD::StandardTimer::on_elapsed() (in /opt/Ardour-6.9.0/lib/libpbd.so.4)
==2202139==    by 0x6D36808: PBD::Timer::_timeout_handler(void*) (in /opt/Ardour-6.9.0/lib/libpbd.so.4)
==2202139==    by 0x7E035A8: ??? (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x7E02A29: g_main_context_dispatch (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x7E02DCF: ??? (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x7E030F1: g_main_loop_run (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x868D3E6: gtk_main (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x6A8BA54: Gtkmm2ext::UI::run(Receiver&) (in /opt/Ardour-6.9.0/lib/libgtkmm2ext.so.0)
==2202139==    by 0x514813: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0xE2F0E49: (below main) (libc-start.c:314)
==2202139==  Uninitialised value was created by a heap allocation
==2202139==    at 0x48397B5: malloc (vg_replace_malloc.c:380)
==2202139==    by 0x7E09509: g_malloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x7E27922: g_slice_alloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x9E9D3BD: pango_font_description_new (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139==    by 0x9E9DEFE: pango_font_description_from_string (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139==    by 0x873DD5C: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x86F37A7: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x86FA31A: gtk_rc_get_style (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x881E532: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0xE25686: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x5DA32D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x5DD7F4: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139== 


[AJG: Closing ardour here]


(ardour-6.9.0:2202139): GLib-CRITICAL **: Source ID 139968 was not found when attempting to remove it
Butler drops pool trash
==2202139== Conditional jump or move depends on uninitialised value(s)
==2202139==    at 0x8C7A0F3: ??? (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0x8C7BE57: gdk_region_union (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0x8C8C8A9: ??? (in /opt/Ardour-6.9.0/lib/libgdk-x11-2.0.so.0)
==2202139==    by 0x881DB2F: gtk_widget_queue_resize (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x7B6B9AD: g_cclosure_marshal_VOID__OBJECTv (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B68B73: ??? (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B83903: g_signal_emit_valist (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x7B84081: g_signal_emit (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x85E5A54: gtk_container_remove (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x881DEA4: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x7B6F2F7: g_object_run_dispose (in /opt/Ardour-6.9.0/lib/libgobject-2.0.so.0)
==2202139==    by 0x86C2575: gtk_object_destroy (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==  Uninitialised value was created by a heap allocation
==2202139==    at 0x48397B5: malloc (vg_replace_malloc.c:380)
==2202139==    by 0x7E09509: g_malloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x7E27922: g_slice_alloc (in /opt/Ardour-6.9.0/lib/libglib-2.0.so.0)
==2202139==    by 0x9E9D3BD: pango_font_description_new (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139==    by 0x9E9DEFE: pango_font_description_from_string (in /opt/Ardour-6.9.0/lib/libpango-1.0.so.0)
==2202139==    by 0x873DD5C: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x86F37A7: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x86FA31A: gtk_rc_get_style (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0x881E532: ??? (in /opt/Ardour-6.9.0/lib/libgtk-x11-2.0.so.0)
==2202139==    by 0xE25686: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x5DA32D: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139==    by 0x5DD7F4: ??? (in /opt/Ardour-6.9.0/bin/ardour-6.9.0)
==2202139== 
==2202139== 
==2202139== HEAP SUMMARY:
==2202139==     in use at exit: 181,889,828 bytes in 1,478,410 blocks
==2202139==   total heap usage: 29,591,291 allocs, 28,112,881 frees, 5,155,134,860 bytes allocated
==2202139== 
==2202139== LEAK SUMMARY:
==2202139==    definitely lost: 701,089 bytes in 18,320 blocks
==2202139==    indirectly lost: 11,976,654 bytes in 16,337 blocks
==2202139==      possibly lost: 4,983,057 bytes in 15,734 blocks
==2202139==    still reachable: 162,749,892 bytes in 1,421,681 blocks
==2202139==                       of which reachable via heuristic:
==2202139==                         length64           : 28,128 bytes in 381 blocks
==2202139==                         newarray           : 1,614,296 bytes in 86 blocks
==2202139==                         multipleinheritance: 99,576 bytes in 1,599 blocks
==2202139==         suppressed: 0 bytes in 0 blocks
==2202139== Rerun with --leak-check=full to see details of leaked memory
==2202139== 
==2202139== For lists of detected and suppressed errors, rerun with: -s
==2202139== ERROR SUMMARY: 7398049 errors from 3403 contexts (suppressed: 4 from 3)
[?2004hagittins@yogi:~/tmp/empty/ardour-debug$ 
[?2004l
[?2004hagittins@yogi:~/tmp/empty/ardour-debug$ exit
[?2004l
exit

Script done on 2021-09-14 09:23:39+10:00 [COMMAND_EXIT_CODE="127"]
valgrind-cutdown.txt (30,211 bytes)   

x42

2021-09-16 20:19

administrator   ~0026139

Sorry for the late reply, but this is an isolated issue, likely specific to your system or setup.

Regarding valgind:
Those "Conditional jump or move depends on uninitialised value" messages are normal for optimized builds, and common with graphics libs.

To track down memory leaks in Ardour, preferably run it from the source-tree, using gtk2_ardour/arhell and gtk2_ardour/arval
The former uses valgrind's helgrind too to keep track of heap allocations, while the latter checks for memory access issue.

We do test this and know that Ardour instances can run for days without accumulating memory. There are few small know leaks, but nothing even close to your report.

There has been another similar report with excessively leaking memory but that was just a single user, there it was caused by leaking graphics buffers caused by using a multi-screen setup with mixed nvidia and intel graphics. Another related report was due to plugin GUIs.

Does the leak happen with a single new empty session? Does clearing preferences (~/.config/ardour6/) and starting anew help?

agittins

2021-09-17 06:58

reporter   ~0026140

Thanks for the comprehensive reply, Robin - that gives me plenty to work on to try and narrow it down. I hadn't noticed (but nor had I looked for) the issue when running previous versions but good to know it's more likely to be local to my machine.

I did test with a completely empty session and it was definitely happening then, but I had not tried with a clean preferences directory so I will test with that also. I think I have websockets enabled which is a possible pertinent point but I'll test here first.

I do have a three-monitor setup but it's with nvidia only and on a single (but dual-gpu) card. I can rule out plugin GUIs as I experienced it in an empty session with zero plugins.

I'll do some further testing based on your advice and update with my findings, if you don't mind me leaving the report open for now.

x42

2021-09-17 21:10

administrator   ~0026143

Ctrl surface is also a good candidate. web-socket in particular is largely untested still.

I did an overnight test, leaving ardour 6.9 running with moderate sized session (32 audio tracks, 2 busses), and there was no change, total 557 +/-4 MB RSS after around 7 hours.

agittins

2021-10-11 00:34

reporter   ~0026182

Between messing around with my new control surface (well, new to me) and other stuff I finally got around to trying some things.

It definitely looks like the memory growth I am seeing is directly tied to the websockets control surface. Just having it enabled (with nothing accessing it, and no activity in ardour) the memory gradually increases, and if I deactivate it the growth stops. I can enable/disable it repeatedly and apart from the step-moves in memory during the switch, it grows while it's enabled, and stays stable when it isn't.

For now I'm just disabling the websockets surface and I expect that will solve it for me. Up to you if you want to close this given it's in an experimental codepath anyway, or if you wanted to keep it open to track the issue longer-term, I'm happy either way :-)

x42

2021-10-12 13:37

administrator   ~0026188

I can reproduce this using the ardour binary from ardour.org, but not a local build.
I suspect this may perhaps be caused by the libwebsocket library that we use 4.0.15. (debian has 4.0.20, latest is 4.3); will investigate further.

x42

2021-10-13 01:59

administrator   ~0026189

OK, found and understood the issue. As suspected it was a bug in libwebsocket 4.0.15's glib event-loop, that has meanwhile been fixed.

Future versions of ardour now come with 4.3.0, which fixes the issue.

x42

2021-10-13 02:00

administrator   ~0026190

Fixed since Ardour [nightly builds] >= 7.0.pre0-1093

agittins

2021-10-13 05:29

reporter   ~0026191

That's brilliant, thanks for your amazing work, Robin. Deeply appreciated.

anonymous

2021-11-13 01:04

viewer   ~0026215

Issue has been closed automatically, by Trigger Close Plugin.
Feel free to re-open with additional information if you think the issue is not resolved.

Issue History

Date Modified Username Field Change
2021-09-14 01:04 agittins New Issue
2021-09-14 01:04 agittins File Added: valgrind-cutdown.txt
2021-09-16 20:19 x42 Note Added: 0026139
2021-09-17 06:58 agittins Note Added: 0026140
2021-09-17 21:10 x42 Note Added: 0026143
2021-10-11 00:34 agittins Note Added: 0026182
2021-10-12 13:37 x42 Note Added: 0026188
2021-10-13 01:59 x42 Note Added: 0026189
2021-10-13 02:00 x42 Assigned To => x42
2021-10-13 02:00 x42 Status new => resolved
2021-10-13 02:00 x42 Resolution open => fixed
2021-10-13 02:00 x42 Note Added: 0026190
2021-10-13 05:29 agittins Note Added: 0026191
2021-11-13 01:04 anonymous Note Added: 0026215
2021-11-13 01:04 anonymous Status resolved => closed