Project

General

Profile

Actions

Bug #14115

closed

crypto: race in nss init

Added by Josh Durgin over 8 years ago. Updated over 2 years ago.

Status:
Can't reproduce
Priority:
High
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
jewel,kraken
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

From running the script from #14089 in a loop:

(gdb) bt
#0  0x00000031a7635c59 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00000031a7637368 in __GI_abort () at abort.c:89
#2  0x00000031aa260dd5 in __gnu_cxx::__verbose_terminate_handler() () from /lib64/libstdc++.so.6
#3  0x00000031aa25ed46 in ?? () from /lib64/libstdc++.so.6
#4  0x00000031aa25ed73 in std::terminate() () from /lib64/libstdc++.so.6
#5  0x00000031aa25ef93 in __cxa_throw () from /lib64/libstdc++.so.6
#6  0x00007fb454fe0c0f in ceph::__ceph_assert_fail (assertion=assertion@entry=0x7fb45527f6b7 "crypto_context != __null",
    file=file@entry=0x7fb45527f6a1 "common/ceph_crypto.cc", line=line@entry=73,
    func=func@entry=0x7fb45527f700 <ceph::crypto::init(CephContext*)::__PRETTY_FUNCTION__> "void ceph::crypto::init(CephContext*)") at common/assert.cc:77
#7  0x00007fb45502beb0 in ceph::crypto::init (cct=cct@entry=0x7fb34400b720) at common/ceph_crypto.cc:73
#8  0x00007fb454ff9679 in CephContext::init_crypto (this=this@entry=0x7fb34400b720) at common/ceph_context.cc:538
#9  0x00007fb454ff69f9 in common_init_finish (cct=0x7fb34400b720) at common/common_init.cc:118
#10 0x00007fb454f2850d in librados::RadosClient::connect (this=this@entry=0x7fb3440008c0) at librados/RadosClient.cc:229
#11 0x00007fb454efb90c in rados_connect (cluster=0x7fb3440008c0) at librados/librados.cc:2375
#12 0x00000031ab205d8c in ffi_call_unix64 ()

From running the script from #14089 in a loop:
(gdb) bt
#0  0x00000031a7635c59 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00000031a7637368 in __GI_abort () at abort.c:89
#2  0x00000031aa260dd5 in __gnu_cxx::__verbose_terminate_handler() () from /lib64/libstdc++.so.6
#3  0x00000031aa25ed46 in ?? () from /lib64/libstdc++.so.6
#4  0x00000031aa25ed73 in std::terminate() () from /lib64/libstdc++.so.6
#5  0x00000031aa25ef93 in __cxa_throw () from /lib64/libstdc++.so.6
#6  0x00007fb454fe0c0f in ceph::__ceph_assert_fail (assertion=assertion@entry=0x7fb45527f6b7 "crypto_context != __null",
    file=file@entry=0x7fb45527f6a1 "common/ceph_crypto.cc", line=line@entry=73,
    func=func@entry=0x7fb45527f700 <ceph::crypto::init(CephContext*)::__PRETTY_FUNCTION__> "void ceph::crypto::init(CephContext*)") at common/assert.cc:77
#7  0x00007fb45502beb0 in ceph::crypto::init (cct=cct@entry=0x7fb34400b720) at common/ceph_crypto.cc:73
#8  0x00007fb454ff9679 in CephContext::init_crypto (this=this@entry=0x7fb34400b720) at common/ceph_context.cc:538
#9  0x00007fb454ff69f9 in common_init_finish (cct=0x7fb34400b720) at common/common_init.cc:118
#10 0x00007fb454f2850d in librados::RadosClient::connect (this=this@entry=0x7fb3440008c0) at librados/RadosClient.cc:229
#11 0x00007fb454efb90c in rados_connect (cluster=0x7fb3440008c0) at librados/librados.cc:2375
#12 0x00000031ab205d8c in ffi_call_unix64 () from /lib64/libffi.so.6
#13 0x00000031ab2056bc in ffi_call () from /lib64/libffi.so.6
#14 0x00007fb499973c8b in _ctypes_callproc () from /usr/lib64/python2.7/lib-dynload/_ctypes.so
#15 0x00007fb49996da85 in PyCFuncPtr_call () from /usr/lib64/python2.7/lib-dynload/_ctypes.so
#16 0x00000037ec84a0d3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
#17 0x00000037ec8dd417 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#18 0x00000037ec8e0980 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#19 0x00000037ec8e0980 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#20 0x00000037ec8e21dd in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
#21 0x00000037ec86f0d8 in ?? () from /lib64/libpython2.7.so.1.0
#22 0x00000037ec84a0d3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
#23 0x00000037ec8590c5 in ?? () from /lib64/libpython2.7.so.1.0
#24 0x00000037ec84a0d3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
#25 0x00000037ec8dc027 in PyEval_CallObjectWithKeywords () from /lib64/libpython2.7.so.1.0
#26 0x00000037ec910822 in ?? () from /lib64/libpython2.7.so.1.0
#27 0x00000031a7a07f33 in start_thread (arg=0x7fb382ffd700) at pthread_create.c:309
#28 0x00000031a76f4ead in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb) f 7
#7  0x00007fb45502beb0 in ceph::crypto::init (cct=cct@entry=0x7fb34400b720) at common/ceph_crypto.cc:73
73        assert(crypto_context != NULL);
(gdb) list
68          }
69          crypto_context = NSS_InitContext(cct->_conf->nss_db_path.c_str(), "", "",
70                                           SECMOD_DB, &init_params, flags);
71        }
72        pthread_mutex_unlock(&crypto_init_mutex);
73        assert(crypto_context != NULL);
74      }
75
76      void ceph::crypto::shutdown()
77      {
(gdb) p crypto_refs
$1 = 3
from /lib64/libffi.so.6
#13 0x00000031ab2056bc in ffi_call () from /lib64/libffi.so.6
#14 0x00007fb499973c8b in _ctypes_callproc () from /usr/lib64/python2.7/lib-dynload/_ctypes.so
#15 0x00007fb49996da85 in PyCFuncPtr_call () from /usr/lib64/python2.7/lib-dynload/_ctypes.so
#16 0x00000037ec84a0d3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
#17 0x00000037ec8dd417 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#18 0x00000037ec8e0980 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#19 0x00000037ec8e0980 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#20 0x00000037ec8e21dd in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
#21 0x00000037ec86f0d8 in ?? () from /lib64/libpython2.7.so.1.0
#22 0x00000037ec84a0d3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
#23 0x00000037ec8590c5 in ?? () from /lib64/libpython2.7.so.1.0
#24 0x00000037ec84a0d3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
#25 0x00000037ec8dc027 in PyEval_CallObjectWithKeywords () from /lib64/libpython2.7.so.1.0
#26 0x00000037ec910822 in ?? () from /lib64/libpython2.7.so.1.0
#27 0x00000031a7a07f33 in start_thread (arg=0x7fb382ffd700) at pthread_create.c:309
#28 0x00000031a76f4ead in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb) f 7
#7  0x00007fb45502beb0 in ceph::crypto::init (cct=cct@entry=0x7fb34400b720) at common/ceph_crypto.cc:73
73        assert(crypto_context != NULL);
(gdb) list
68          }
69          crypto_context = NSS_InitContext(cct->_conf->nss_db_path.c_str(), "", "",
70                                           SECMOD_DB, &init_params, flags);
71        }
72        pthread_mutex_unlock(&crypto_init_mutex);
73        assert(crypto_context != NULL);
74      }
75
76      void ceph::crypto::shutdown()
77      {
(gdb) p crypto_refs
$1 = 3


Related issues 1 (0 open1 closed)

Related to Ceph - Bug #18478: "FAILED assert(crypto_context != __null)" in rados-kraken-distro-basic-smithiClosed

Actions
Actions

Also available in: Atom PDF