Hi Michal,
Open source developers of libgcrypt are pointing out to be a problem with
libvirt.
It seems that virsh does not make proper use of libgcrypt or gnutls. In
fact, Libgcrypt is telling us what has been done wrong. Please find the
latest GDB and let us know comments for the same.
GDB:
Breakpoint 3, 0x00007f555bb07410 in gnutls_handshake () from
/usr/lib64/libgnutls.so.26
(gdb) c
Continuing.
Program received signal SIGABRT, Aborted.
0x00007f555a096005 in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007f555a096005 in raise () from /lib64/libc.so.6
#1 0x00007f555a098e40 in abort () from /lib64/libc.so.6
#2 0x00007f555b87fdc5 in _gcry_logv (level=50, fmt=0x7f555b8c6170 "operation
is not possible without initialized secure memory\n",
arg_ptr=0x7fff546e1130) at misc.c:136
#3 0x00007f555b8803d5 in _gcry_log_bug (fmt=0x48e0 <Address 0x48e0 out of
bounds>) at misc.c:220
#4 0x00007f555b885697 in _gcry_secmem_malloc_internal (size=<value
optimized out>) at secmem.c:497
#5 0x00007f555b88579c in _gcry_secmem_malloc (size=136) at secmem.c:522
#6 0x00007f555b880a65 in do_malloc (n=18656, flags=<value optimized out>,
mem=0x7fff546e1290) at global.c:553
#7 0x00007f555b880aa9 in _gcry_malloc_secure (n=18656) at global.c:592
#8 0x00007f555b880b19 in _gcry_xmalloc_secure (n=136) at global.c:746
#9 0x00007f555b8c35df in _gcry_mpi_alloc_limb_space (nlimbs=17,
secure=18656) at mpiutil.c:92
#10 0x00007f555b8c365f in _gcry_mpi_alloc_secure (nlimbs=17) at mpiutil.c:75
#11 0x00007f555b8b025a in secret (output=0x17cfa20, input=0x17d0480,
skey=0x6) at rsa.c:365
#12 0x00007f555b8b045a in _gcry_rsa_sign (algo=<value optimized out>,
resarr=0x17d0660, data=0x17d0480, skey=<value optimized out>) at rsa.c:608
#13 0x00007f555b88c1ef in pubkey_sign (r_sig=0x7fff546e1488, s_hash=<value
optimized out>, s_skey=<value optimized out>) at pubkey.c:692
#14 _gcry_pk_sign (r_sig=0x7fff546e1488, s_hash=<value optimized out>,
s_skey=<value optimized out>) at pubkey.c:1807
---Type <return> to continue, or q <return> to quit---
#15 0x00007f555bb29d8c in ?? () from /usr/lib64/libgnutls.so.26
#16 0x00007f555bb15e7a in ?? () from /usr/lib64/libgnutls.so.26
#17 0x00007f555bb1ddd6 in ?? () from /usr/lib64/libgnutls.so.26
#18 0x00007f555bb1e67f in ?? () from /usr/lib64/libgnutls.so.26
#19 0x00007f555bb1edaf in ?? () from /usr/lib64/libgnutls.so.26
#20 0x00007f555bb0af85 in ?? () from /usr/lib64/libgnutls.so.26
#21 0x00007f555bb06c55 in ?? () from /usr/lib64/libgnutls.so.26
#22 0x00007f555bb07437 in gnutls_handshake () from
/usr/lib64/libgnutls.so.26
#23 0x00007f555c8a961b in virNetTLSSessionHandshake () from
/usr/lib64/libvirt.so.0
#24 0x00007f555c89ea2b in virNetServerClientInit () from
/usr/lib64/libvirt.so.0
#25 0x00007f555c89c821 in ?? () from /usr/lib64/libvirt.so.0
#26 0x00007f555c8a012a in ?? () from /usr/lib64/libvirt.so.0
#27 0x00007f555c79fbf5 in virEventPollRunOnce () from
/usr/lib64/libvirt.so.0
#28 0x00007f555c79e825 in virEventRunDefaultImpl () from
/usr/lib64/libvirt.so.0
#29 0x00007f555c89c20d in virNetServerRun () from /usr/lib64/libvirt.so.0
#30 0x000000000040c830 in ?? ()
Thanking you in anticipation.
Thanks and Regards,
Shree Duth Awasthi.
On Fri, Apr 5, 2013 at 9:34 AM, Michal Privoznik <mprivozn(a)redhat.com>wrote:
On 05.04.2013 09:04, SHREE DUTH AWASTHI wrote:
> GDB:
>
> Program received signal SIGABRT, Aborted.
> 0x00007f8591246005 in raise () from /lib64/libc.so.6
> (gdb) bt
> #0 0x00007f8591246005 in raise () from /lib64/libc.so.6
> #1 0x00007f8591248e40 in abort () from /lib64/libc.so.6
> #2 0x00007f8592a2fdc5 in ?? () from /lib64/libgcrypt.so.11
> #3 0x00007f8592a303d5 in ?? () from /lib64/libgcrypt.so.11
> #4 0x00007f8592a35697 in ?? () from /lib64/libgcrypt.so.11
> #5 0x00007f8592a3579c in ?? () from /lib64/libgcrypt.so.11
> #6 0x00007f8592a30a65 in ?? () from /lib64/libgcrypt.so.11
> #7 0x00007f8592a30aa9 in ?? () from /lib64/libgcrypt.so.11
> #8 0x00007f8592a30b19 in ?? () from /lib64/libgcrypt.so.11
> #9 0x00007f8592a735df in ?? () from /lib64/libgcrypt.so.11
> #10 0x00007f8592a7365f in ?? () from /lib64/libgcrypt.so.11
> #11 0x00007f8592a6025a in ?? () from /lib64/libgcrypt.so.11
> #12 0x00007f8592a6045a in ?? () from /lib64/libgcrypt.so.11
> #13 0x00007f8592a3c1ef in ?? () from /lib64/libgcrypt.so.11
> #14 0x00007f8592cd9d8c in ?? () from /usr/lib64/libgnutls.so.26
> #15 0x00007f8592cc5e7a in ?? () from /usr/lib64/libgnutls.so.26
> #16 0x00007f8592ccddd6 in ?? () from /usr/lib64/libgnutls.so.26
> #17 0x00007f8592cce67f in ?? () from /usr/lib64/libgnutls.so.26
> #18 0x00007f8592ccedaf in ?? () from /usr/lib64/libgnutls.so.26
> #19 0x00007f8592cbaf85 in ?? () from /usr/lib64/libgnutls.so.26
> #20 0x00007f8592cb6c55 in ?? () from /usr/lib64/libgnutls.so.26
> #21 0x00007f8592cb7437 in gnutls_handshake () from
> /usr/lib64/libgnutls.so.26
> #22 0x00007f8593a5961b in virNetTLSSessionHandshake () from
> /usr/lib64/libvirt.so.0
>
The backstrace shows problem lies in libgcrypt library. So unless
libvirt is overwriting some random memory areas, it's a libgcrypt's bug.
Michal