----- Original Message -----
> From: "Antonio Rojas" <[email protected]>
> To: [email protected]
> Sent: Tuesday, August 21, 2018 4:08:43 PM
> Subject: Re: libssh 0.8.1 breaks amarok
> 
> El martes, 21 de agosto de 2018 15:26:13 (CEST) Andreas Schneider escribió:
> > > Breakpoint 1, _ssh_init (constructor=constructor@entry=1) at
> > > /usr/src/debug/libssh-0.8.1/src/init.c:63 (gdb) bt
> > > #0  _ssh_init (constructor=constructor@entry=1) at
> > 
> > Can you step through this function so that we see what it is actually
> > doing?
> 
> This is the full sequence until it leaves libssh
> 
> Breakpoint 1, _ssh_init (constructor=constructor@entry=1) at
> /usr/src/debug/libssh-0.8.1/src/init.c:63
> 67      in /usr/src/debug/libssh-0.8.1/src/init.c
> 69      in /usr/src/debug/libssh-0.8.1/src/init.c
> 74      in /usr/src/debug/libssh-0.8.1/src/init.c
> ssh_threads_init () at /usr/src/debug/libssh-0.8.1/src/threads.c:47
> 54      in /usr/src/debug/libssh-0.8.1/src/threads.c
> 55      in /usr/src/debug/libssh-0.8.1/src/threads.c
> ssh_threads_get_default () at
> /usr/src/debug/libssh-0.8.1/src/threads/pthread.c:133
> ssh_threads_init () at /usr/src/debug/libssh-0.8.1/src/threads.c:59
> crypto_thread_init (cb=0x7fffe7b695e0 <ssh_threads_pthread>) at
> /usr/src/debug/libssh-0.8.1/src/threads/libcrypto.c:32
> ssh_threads_init () at /usr/src/debug/libssh-0.8.1/src/threads.c:60
> 61      in /usr/src/debug/libssh-0.8.1/src/threads.c
> _ssh_init (constructor=constructor@entry=1) at
> /usr/src/debug/libssh-0.8.1/src/init.c:75
> 79      in /usr/src/debug/libssh-0.8.1/src/init.c
> ssh_crypto_init () at /usr/src/debug/libssh-0.8.1/src/libcrypto.c:805
> 809     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 811     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 814     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 815     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 814     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 815     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 814     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 815     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 814     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 815     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 814     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 815     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 814     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 815     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 814     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 815     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 814     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 815     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 814     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 815     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> 816     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> ssh_get_chacha20poly1305_cipher () at
> /usr/src/debug/libssh-0.8.1/src/chachapoly.c:211
> ssh_crypto_init () at /usr/src/debug/libssh-0.8.1/src/libcrypto.c:823
> 825     in /usr/src/debug/libssh-0.8.1/src/libcrypto.c
> _ssh_init (constructor=constructor@entry=1) at
> /usr/src/debug/libssh-0.8.1/src/init.c:80
> 84      in /usr/src/debug/libssh-0.8.1/src/init.c
> ssh_dh_init () at /usr/src/debug/libssh-0.8.1/src/dh.c:132
> 136     in /usr/src/debug/libssh-0.8.1/src/dh.c
> 137     in /usr/src/debug/libssh-0.8.1/src/dh.c
> 140     in /usr/src/debug/libssh-0.8.1/src/dh.c
> 157     in /usr/src/debug/libssh-0.8.1/src/dh.c
> 158     in /usr/src/debug/libssh-0.8.1/src/dh.c
> 163     in /usr/src/debug/libssh-0.8.1/src/dh.c
> 165     in /usr/src/debug/libssh-0.8.1/src/dh.c
> 166     in /usr/src/debug/libssh-0.8.1/src/dh.c
> 172     in /usr/src/debug/libssh-0.8.1/src/dh.c
> 180     in /usr/src/debug/libssh-0.8.1/src/dh.c
> 182     in /usr/src/debug/libssh-0.8.1/src/dh.c
> _ssh_init (constructor=constructor@entry=1) at
> /usr/src/debug/libssh-0.8.1/src/init.c:85
> 89      in /usr/src/debug/libssh-0.8.1/src/init.c
> ssh_socket_init () at /usr/src/debug/libssh-0.8.1/src/socket.c:105
> 115     in /usr/src/debug/libssh-0.8.1/src/socket.c
> ssh_poll_init () at /usr/src/debug/libssh-0.8.1/src/poll.c:88
> ssh_socket_init () at /usr/src/debug/libssh-0.8.1/src/socket.c:117
> 120     in /usr/src/debug/libssh-0.8.1/src/socket.c
> _ssh_init (constructor=constructor@entry=1) at
> /usr/src/debug/libssh-0.8.1/src/init.c:90
> 95      in /usr/src/debug/libssh-0.8.1/src/init.c
> 97      in /usr/src/debug/libssh-0.8.1/src/init.c
> libssh_constructor () at /usr/src/debug/libssh-0.8.1/src/init.c:118
> 118     in /usr/src/debug/libssh-0.8.1/src/init.c
>  

Thank you for this. Following the traces, it seems everything went fine in the 
libssh initialization.

But it seems this lead to an error when initializing the threads in mariadb. As 
the comment in [1] point out, the library initialization can fail only because 
of issues when initializing threads or due to out of memory.

I'll have to debug this further, but it is intriguing for me why this happens 
only when using OpenSSL.

[1] 
https://github.com/KDE/amarok/blob/master/src/core-impl/storage/sql/mysqlestorage/MySqlEmbeddedStorage.cpp#L95

Reply via email to