Glib::ConvertError Arch Linux

Hi all,

When I try to run Ardour8, I get the following error:

Ardour8.1.0 (built using 8.1 and GCC version 6.3.0 20170516)
Ardour: [INFO]: Your system is configured to limit Ardour to 524288 open files
terminate called after throwing an instance of 'Glib::ConvertError'
fish: Job 1, 'Ardour8' terminated by signal SIGABRT (Abort)

I have tried both the version on the Arch Linux repositories, as well as the demo.
I am running Arch 6.5.7-arch1-1, all packages are up to date, DE is wlroots/sway with X11 support.

Any thoughts?

It would indicate that some text or filename cannot be converted to UTF-8. Maybe some Umlaut?

Can you try if either of the following works

LANG=en_US.UTF-8 Ardour8

or

LANG=C Ardour8

To track the issue down, please run Ardour in a debugger: https://ardour.org/debugging_ardour

Ardour8 --gdb
> handle SIG32 noprint nostop
> catch throw
> run
// ardour starts and when  Glib::ConvertError is reached 
// gdb returns you to the command prompt. now get a backtrace:
> bt

Thanks for looking at this,

I tried both LANG=en_US.UTF-8 and LANG=C; no change.

“bt” command generates this:

Thread 1 "ardour-8.1.0" hit Catchpoint 1 (exception thrown), 0x00007fffe8eb03b1 in __cxxabiv1::__cxa_throw (obj=0x555556a151a0, 
    tinfo=0x55555691bcd0 <typeinfo for Glib::ConvertError>, 
    dest=0x7ffff6bb7a30 <Glib::ConvertError::~ConvertError()>)
    at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/eh_throw.cc:81
Download failed: Invalid argument.  Continuing without source file /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/eh_throw.cc.
(gdb) bt
#0  0x00007fffe8eb03b1 in __cxxabiv1::__cxa_throw (obj=0x555556a151a0, 
    tinfo=0x55555691bcd0 <typeinfo for Glib::ConvertError>, 
    dest=0x7ffff6bb7a30 <Glib::ConvertError::~ConvertError()>)
    at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/eh_throw.cc:81
#1  0x00007ffff3242987 in Glib::ConvertError::throw_func(_GError*) ()
   from /opt/Ardour-8.1.0-demo/lib/libglibmm-2.4.so.1
#2  0x00007ffff32572e7 in Glib::Error::throw_exception(_GError*) ()
   from /opt/Ardour-8.1.0-demo/lib/libglibmm-2.4.so.1
#3  0x00007ffff3242828 in Glib::filename_to_uri(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
   from /opt/Ardour-8.1.0-demo/lib/libglibmm-2.4.so.1
#4  0x00007ffff6a83bb1 in ARDOUR::AudioLibrary::AudioLibrary() ()
   from /opt/Ardour-8.1.0-demo/lib/libardour.so.3
#5  0x00007ffff6bebf37 in ARDOUR::init(bool, char const*, bool) ()
   from /opt/Ardour-8.1.0-demo/lib/libardour.so.3
#6  0x000055555589d1af in ?? ()
#7  0x00007ffff5445cd0 in ?? () from /usr/lib/libc.so.6
#8  0x00007ffff5445d8a in __libc_start_main () from /usr/lib/libc.so.6
#9  0x00005555558a4f6a in ?? ()

“thread apply all bt” command generates this:

Ardour8.1.0 (built using 8.1 and GCC version 6.3.0 20170516)
[New Thread 0x7ffff65066c0 (LWP 1095239)]
Ardour: [INFO]: Your system is configured to limit Ardour to 524288 open files

Thread 1 "ardour-8.1.0" received signal SIGABRT, Aborted.
0x00007ffff54ac83c in ?? () from /usr/lib/libc.so.6
(gdb) trh  hread apply all bt

Thread 2 (Thread 0x7ffff65066c0 (LWP 1095239) "Trigger Worker"):
#0  0x00007ffff5520f6f in poll () from /usr/lib/libc.so.6
#1  0x00007ffff423a257 in CrossThreadChannel::poll_for_request() () from /opt/Ardour-8.1.0-demo/lib/libpbd.so.4
#2  0x00007ffff423a2b6 in CrossThreadChannel::receive(char&, bool) () from /opt/Ardour-8.1.0-demo/lib/libpbd.so.4
#3  0x00007ffff6fccefc in ARDOUR::TriggerBoxThread::thread_work() () from /opt/Ardour-8.1.0-demo/lib/libardour.so.3
#4  0x00007ffff6fcd25e in ARDOUR::TriggerBoxThread::_thread_work(void*) () from /opt/Ardour-8.1.0-demo/lib/libardour.so.3
#5  0x00007ffff4268226 in ?? () from /opt/Ardour-8.1.0-demo/lib/libpbd.so.4
#6  0x00007ffff54aa9eb in ?? () from /usr/lib/libc.so.6
#7  0x00007ffff552e7cc in ?? () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7ffff7a35f00 (LWP 1095236) "ardour-8.1.0"):
#0  0x00007ffff54ac83c in ?? () from /usr/lib/libc.so.6
#1  0x00007ffff545c668 in raise () from /usr/lib/libc.so.6
#2  0x00007ffff54444b8 in abort () from /usr/lib/libc.so.6
#3  0x00007fffe8e9ca6f in __gnu_cxx::__verbose_terminate_handler () at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/vterminate.cc:95
#4  0x00007fffe8eb011c in __cxxabiv1::__terminate (handler=<optimized out>) at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:48
#5  0x00007fffe8eb0189 in std::terminate () at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:58
#6  0x00007fffe8eb03ed in __cxxabiv1::__cxa_throw (obj=<optimized out>, tinfo=0x55555691bcd0 <typeinfo for Glib::ConvertError>, dest=0x7ffff6bb7a30 <Glib::ConvertError::~ConvertError()>) at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/eh_throw.cc:98
#7  0x00007ffff3242987 in Glib::ConvertError::throw_func(_GError*) () from /opt/Ardour-8.1.0-demo/lib/libglibmm-2.4.so.1
#8  0x00007ffff32572e7 in Glib::Error::throw_exception(_GError*) () from /opt/Ardour-8.1.0-demo/lib/libglibmm-2.4.so.1
#9  0x00007ffff3242828 in Glib::filename_to_uri(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /opt/Ardour-8.1.0-demo/lib/libglibmm-2.4.so.1
#10 0x00007ffff6a83bb1 in ARDOUR::AudioLibrary::AudioLibrary() () from /opt/Ardour-8.1.0-demo/lib/libardour.so.3
#11 0x00007ffff6bebf37 in ARDOUR::init(bool, char const*, bool) () from /opt/Ardour-8.1.0-demo/lib/libardour.so.3
#12 0x000055555589d1af in ?? ()
#13 0x00007ffff5445cd0 in ?? () from /usr/lib/libc.so.6
#14 0x00007ffff5445d8a in __libc_start_main () from /usr/lib/libc.so.6
#15 0x00005555558a4f6a in ?? ()

1 Like

Interesting, so the problem is expanding the recent session file in Ardour’s config folder (usually ~/.config/ardour8/sfdb).

What is your user’s $HOME folder? Does it contain any unusual chars?
Do you have $XDG_CONFIG_HOME environment variable set?

$HOME is /home/user. $XDG_CONFIG_HOME is ~/.config; both standard ASCII text.

I don’t have a ~/.config/ardour8 folder; Probably a byproduct of not having successfully launched the program.

Unsetting $XDG_CONFIG_HOME, lets the program launch.

According to the XDG Base Directory Specification

All paths set in these environment variables must be absolute.

You could set XDG_CONFIG_HOME=$HOME/.config (but that’s the default already). It seems that ~ relative path cause issues when trying to convert them to URIs.

Totally worked, Thanks!