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!

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.