[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: libssh 0.8.1 breaks amarok


On Tuesday, 21 August 2018 16:50:01 CEST Anderson Sasaki wrote:
> ----- Original Message -----
> 
> > From: "Antonio Rojas" <arojas@xxxxxxxxxxxxx>
> > To: libssh@xxxxxxxxxx
> > 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.

FYI:

mysql_library_init() is an alias for mysql_server_init() which calls 
pthread_once(). pthread_once() returns an error. Would be interesting which 
errno it returns!

https://github.com/MariaDB/mariadb-connector-c/blob/master/libmariadb/
mariadb_lib.c#L3563

mysql_once_init() is the functions it runs for initializing, but as this 
doesn't have an return value, it can't fail. However it calls ma_tls_start() 
if it has been compiled with TLS support and initializes OpenSSL!

https://github.com/MariaDB/mariadb-connector-c/blob/master/libmariadb/secure/
openssl.c#L330

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


-- 
Andreas Schneider                 asn@xxxxxxxxxxxxxx
GPG-ID:     8DFF53E18F2ABC8D8F3C92237EE0FC4DCC014E3D



Follow-Ups:
Re: libssh 0.8.1 breaks amarokAntonio Rojas <arojas@xxxxxxxxxxxxx>
References:
libssh 0.8.1 breaks amarokAntonio Rojas <arojas@xxxxxxxxxxxxx>
Re: libssh 0.8.1 breaks amarokAntonio Rojas <arojas@xxxxxxxxxxxxx>
Re: libssh 0.8.1 breaks amarokAnderson Sasaki <ansasaki@xxxxxxxxxx>
Archive administrator: postmaster@lists.cynapses.org