Hi, Please find the latest report on new defect(s) introduced to ceph found with Coverity Scan. 293 new defect(s) introduced to ceph found with Coverity Scan. 2803 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan. New defect(s) Reported-by: Coverity Scan Showing 20 of 293 defect(s) ** CID 1509769: Security best practices violations (DC.WEAK_CRYPTO) /home/kkeithle/src/github/ceph/src/msg/async/ProtocolV2.cc: 1041 in ProtocolV2::handle_hello(ceph::buffer::v15_2_0::list &)() ________________________________________________________________________________________________________ *** CID 1509769: Security best practices violations (DC.WEAK_CRYPTO) /home/kkeithle/src/github/ceph/src/msg/async/ProtocolV2.cc: 1041 in ProtocolV2::handle_hello(ceph::buffer::v15_2_0::list &)() 1035 a.set_type(entity_addr_t::TYPE_MSGR2); // anything but NONE; learned_addr ignores this 1036 a.set_port(0); 1037 connection->lock.unlock(); 1038 messenger->learned_addr(a); 1039 if (cct->_conf->ms_inject_internal_delays && 1040 cct->_conf->ms_inject_socket_failures) { >>> CID 1509769: Security best practices violations (DC.WEAK_CRYPTO) >>> "rand" should not be used for security-related applications, because linear congruential algorithms are too easy to break. 1041 if (rand() % cct->_conf->ms_inject_socket_failures == 0) { 1042 ldout(cct, 10) << __func__ << " sleep for " 1043 << cct->_conf->ms_inject_internal_delays << dendl; 1044 utime_t t; 1045 t.set_from_double(cct->_conf->ms_inject_internal_delays); 1046 t.sleep(); ** CID 1509768: Control flow issues (UNREACHABLE) /src/pybind/rbd/rbd.c: 30844 in __pyx_pf_3rbd_3RBD_96group_list() ________________________________________________________________________________________________________ *** CID 1509768: Control flow issues (UNREACHABLE) /src/pybind/rbd/rbd.c: 30844 in __pyx_pf_3rbd_3RBD_96group_list() 30838 * if name] 30839 * finally: 30840 * free(c_names) # <<<<<<<<<<<<<< 30841 * 30842 * def group_rename(self, ioctx, src, dest): 30843 */ >>> CID 1509768: Control flow issues (UNREACHABLE) >>> This code cannot be reached: "{ __pyx_L4_error: ; {...". 30844 /*finally:*/ { 30845 __pyx_L4_error:; 30846 /*exception exit:*/{ 30847 __Pyx_PyThreadState_declare 30848 __Pyx_PyThreadState_assign 30849 __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; ** CID 1509767: (UNCAUGHT_EXCEPT) /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 547 in SimpleRADOSStriper::lock_keeper_main()() /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 547 in SimpleRADOSStriper::lock_keeper_main()() /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 547 in SimpleRADOSStriper::lock_keeper_main()() /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 547 in SimpleRADOSStriper::lock_keeper_main()() /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 547 in SimpleRADOSStriper::lock_keeper_main()() ________________________________________________________________________________________________________ *** CID 1509767: (UNCAUGHT_EXCEPT) /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 547 in SimpleRADOSStriper::lock_keeper_main()() 541 /* Do lock renewal in a separate thread: while it's unlikely sqlite chews on 542 * something for multiple seconds without calling into the VFS (where we could 543 * initiate a lock renewal), it's not impossible with complex queries. Also, we 544 * want to allow "PRAGMA locking_mode = exclusive" where the application may 545 * not use the sqlite3 database connection for an indeterminate amount of time. 546 */ >>> CID 1509767: (UNCAUGHT_EXCEPT) >>> In function "SimpleRADOSStriper::lock_keeper_main()" an exception of type "boost::container::length_error" is thrown and never caught. 547 void SimpleRADOSStriper::lock_keeper_main(void) 548 { 549 d(20) << dendl; 550 const auto ext = get_first_extent(); 551 while (!shutdown) { 552 d(20) << "tick" << dendl; /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 547 in SimpleRADOSStriper::lock_keeper_main()() 541 /* Do lock renewal in a separate thread: while it's unlikely sqlite chews on 542 * something for multiple seconds without calling into the VFS (where we could 543 * initiate a lock renewal), it's not impossible with complex queries. Also, we 544 * want to allow "PRAGMA locking_mode = exclusive" where the application may 545 * not use the sqlite3 database connection for an indeterminate amount of time. 546 */ >>> CID 1509767: (UNCAUGHT_EXCEPT) >>> In function "SimpleRADOSStriper::lock_keeper_main()" an exception of type "boost::container::length_error" is thrown and never caught. 547 void SimpleRADOSStriper::lock_keeper_main(void) 548 { 549 d(20) << dendl; 550 const auto ext = get_first_extent(); 551 while (!shutdown) { 552 d(20) << "tick" << dendl; /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 547 in SimpleRADOSStriper::lock_keeper_main()() 541 /* Do lock renewal in a separate thread: while it's unlikely sqlite chews on 542 * something for multiple seconds without calling into the VFS (where we could 543 * initiate a lock renewal), it's not impossible with complex queries. Also, we 544 * want to allow "PRAGMA locking_mode = exclusive" where the application may 545 * not use the sqlite3 database connection for an indeterminate amount of time. 546 */ >>> CID 1509767: (UNCAUGHT_EXCEPT) >>> In function "SimpleRADOSStriper::lock_keeper_main()" an exception of type "boost::container::length_error" is thrown and never caught. 547 void SimpleRADOSStriper::lock_keeper_main(void) 548 { 549 d(20) << dendl; 550 const auto ext = get_first_extent(); 551 while (!shutdown) { 552 d(20) << "tick" << dendl; /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 547 in SimpleRADOSStriper::lock_keeper_main()() 541 /* Do lock renewal in a separate thread: while it's unlikely sqlite chews on 542 * something for multiple seconds without calling into the VFS (where we could 543 * initiate a lock renewal), it's not impossible with complex queries. Also, we 544 * want to allow "PRAGMA locking_mode = exclusive" where the application may 545 * not use the sqlite3 database connection for an indeterminate amount of time. 546 */ >>> CID 1509767: (UNCAUGHT_EXCEPT) >>> In function "SimpleRADOSStriper::lock_keeper_main()" an exception of type "boost::container::length_error" is thrown and never caught. 547 void SimpleRADOSStriper::lock_keeper_main(void) 548 { 549 d(20) << dendl; 550 const auto ext = get_first_extent(); 551 while (!shutdown) { 552 d(20) << "tick" << dendl; /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 547 in SimpleRADOSStriper::lock_keeper_main()() 541 /* Do lock renewal in a separate thread: while it's unlikely sqlite chews on 542 * something for multiple seconds without calling into the VFS (where we could 543 * initiate a lock renewal), it's not impossible with complex queries. Also, we 544 * want to allow "PRAGMA locking_mode = exclusive" where the application may 545 * not use the sqlite3 database connection for an indeterminate amount of time. 546 */ >>> CID 1509767: (UNCAUGHT_EXCEPT) >>> In function "SimpleRADOSStriper::lock_keeper_main()" an exception of type "boost::container::length_error" is thrown and never caught. 547 void SimpleRADOSStriper::lock_keeper_main(void) 548 { 549 d(20) << dendl; 550 const auto ext = get_first_extent(); 551 while (!shutdown) { 552 d(20) << "tick" << dendl; ** CID 1509766: Uninitialized members (UNINIT_CTOR) /home/kkeithle/src/github/ceph/src/messages/MMDSSnapUpdate.h: 32 in MMDSSnapUpdate::MMDSSnapUpdate()() ________________________________________________________________________________________________________ *** CID 1509766: Uninitialized members (UNINIT_CTOR) /home/kkeithle/src/github/ceph/src/messages/MMDSSnapUpdate.h: 32 in MMDSSnapUpdate::MMDSSnapUpdate()() 26 inodeno_t get_ino() const { return ino; } 27 int get_snap_op() const { return snap_op; } 28 29 ceph::buffer::list snap_blob; 30 31 protected: >>> CID 1509766: Uninitialized members (UNINIT_CTOR) >>> Non-static class member "snap_op" is not initialized in this constructor nor in any functions that it calls. 32 MMDSSnapUpdate() : MMDSOp{MSG_MDS_SNAPUPDATE} {} 33 MMDSSnapUpdate(inodeno_t i, version_t tid, int op) : 34 MMDSOp{MSG_MDS_SNAPUPDATE}, ino(i), snap_op(op) { 35 set_tid(tid); 36 } 37 ~MMDSSnapUpdate() final {} ** CID 1509765: Performance inefficiencies (AUTO_CAUSES_COPY) /home/kkeithle/src/github/ceph/src/common/ceph_json.cc: 934 in JSONFormattable::encode_json(const char *, ceph::Formatter *) const() ________________________________________________________________________________________________________ *** CID 1509765: Performance inefficiencies (AUTO_CAUSES_COPY) /home/kkeithle/src/github/ceph/src/common/ceph_json.cc: 934 in JSONFormattable::encode_json(const char *, ceph::Formatter *) const() 928 break; 929 case JSONFormattable::FMT_ARRAY: 930 ::encode_json(name, arr, f); 931 break; 932 case JSONFormattable::FMT_OBJ: 933 f->open_object_section(name); >>> CID 1509765: Performance inefficiencies (AUTO_CAUSES_COPY) >>> Using the "auto" keyword without an "&" causes the copy of an object of type pair. 934 for (auto iter : obj) { 935 ::encode_json(iter.first.c_str(), iter.second, f); 936 } 937 f->close_section(); 938 break; 939 case JSONFormattable::FMT_NONE: ** CID 1509764: Concurrent data access violations (MISSING_LOCK) /home/kkeithle/src/github/ceph/src/common/Finisher.cc: 93 in Finisher::finisher_thread_entry()() ________________________________________________________________________________________________________ *** CID 1509764: Concurrent data access violations (MISSING_LOCK) /home/kkeithle/src/github/ceph/src/common/Finisher.cc: 93 in Finisher::finisher_thread_entry()() 87 } 88 // If we are exiting, we signal the thread waiting in stop(), 89 // otherwise it would never unblock 90 finisher_empty_cond.notify_all(); 91 92 ldout(cct, 10) << "finisher_thread stop" << dendl; >>> CID 1509764: Concurrent data access violations (MISSING_LOCK) >>> Accessing "this->finisher_stop" without holding lock "ceph::mutex_debug_detail::mutex_debug_impl<false>.m". Elsewhere, "Finisher.finisher_stop" is accessed with "mutex_debug_impl.m" held 1 out of 2 times (1 of these accesses strongly imply that it is necessary). 93 finisher_stop = false; 94 return 0; ** CID 1509763: (UNCAUGHT_EXCEPT) /home/kkeithle/src/github/ceph/src/msg/async/rdma/Infiniband.cc: 1255 in Infiniband::QueuePair::~QueuePair()() /home/kkeithle/src/github/ceph/src/msg/async/rdma/Infiniband.cc: 1255 in Infiniband::QueuePair::~QueuePair()() ________________________________________________________________________________________________________ *** CID 1509763: (UNCAUGHT_EXCEPT) /home/kkeithle/src/github/ceph/src/msg/async/rdma/Infiniband.cc: 1255 in Infiniband::QueuePair::~QueuePair()() 1249 delete cq; 1250 return NULL; 1251 } 1252 return cq; 1253 } 1254 >>> CID 1509763: (UNCAUGHT_EXCEPT) >>> An exception of type "boost::container::length_error" is thrown but the exception specification "noexcept" doesn't allow it to be thrown. This will result in a call to terminate(). 1255 Infiniband::QueuePair::~QueuePair() 1256 { 1257 ldout(cct, 20) << __func__ << " destroy Queue Pair, qp number: " << qp->qp_num << " left SQ WR " << recv_queue.size() << dendl; 1258 if (qp) { 1259 ldout(cct, 20) << __func__ << " destroy qp=" << qp << dendl; 1260 ceph_assert(!ibv_destroy_qp(qp)); /home/kkeithle/src/github/ceph/src/msg/async/rdma/Infiniband.cc: 1255 in Infiniband::QueuePair::~QueuePair()() 1249 delete cq; 1250 return NULL; 1251 } 1252 return cq; 1253 } 1254 >>> CID 1509763: (UNCAUGHT_EXCEPT) >>> An exception of type "boost::container::length_error" is thrown but the exception specification "noexcept" doesn't allow it to be thrown. This will result in a call to terminate(). 1255 Infiniband::QueuePair::~QueuePair() 1256 { 1257 ldout(cct, 20) << __func__ << " destroy Queue Pair, qp number: " << qp->qp_num << " left SQ WR " << recv_queue.size() << dendl; 1258 if (qp) { 1259 ldout(cct, 20) << __func__ << " destroy qp=" << qp << dendl; 1260 ceph_assert(!ibv_destroy_qp(qp)); ** CID 1509762: Error handling issues (UNCAUGHT_EXCEPT) /home/kkeithle/src/github/ceph/src/msg/async/rdma/Infiniband.cc: 1255 in Infiniband::QueuePair::~QueuePair()() ________________________________________________________________________________________________________ *** CID 1509762: Error handling issues (UNCAUGHT_EXCEPT) /home/kkeithle/src/github/ceph/src/msg/async/rdma/Infiniband.cc: 1255 in Infiniband::QueuePair::~QueuePair()() 1249 delete cq; 1250 return NULL; 1251 } 1252 return cq; 1253 } 1254 >>> CID 1509762: Error handling issues (UNCAUGHT_EXCEPT) >>> An exception of type "std::system_error" is thrown but the exception specification "noexcept" doesn't allow it to be thrown. This will result in a call to terminate(). 1255 Infiniband::QueuePair::~QueuePair() 1256 { 1257 ldout(cct, 20) << __func__ << " destroy Queue Pair, qp number: " << qp->qp_num << " left SQ WR " << recv_queue.size() << dendl; 1258 if (qp) { 1259 ldout(cct, 20) << __func__ << " destroy qp=" << qp << dendl; 1260 ceph_assert(!ibv_destroy_qp(qp)); ** CID 1509761: Error handling issues (CHECKED_RETURN) /src/pybind/rados/rados.c: 56264 in __pyx_pw_5rados_5Ioctx_87watch() ________________________________________________________________________________________________________ *** CID 1509761: Error handling issues (CHECKED_RETURN) /src/pybind/rados/rados.c: 56264 in __pyx_pw_5rados_5Ioctx_87watch() 56258 __Pyx_RaiseArgtupleInvalid("watch", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3314, __pyx_L3_error) 56259 __pyx_L3_error:; 56260 __Pyx_AddTraceback("rados.Ioctx.watch", __pyx_clineno, __pyx_lineno, __pyx_filename); 56261 __Pyx_RefNannyFinishContext(); 56262 return NULL; 56263 __pyx_L4_argument_unpacking_done:; >>> CID 1509761: Error handling issues (CHECKED_RETURN) >>> Calling "__Pyx__ArgTypeTest" without checking return value (as is done elsewhere 132 out of 132 times). 56264 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_obj), (&PyUnicode_Type), 1, "obj", 1))) __PYX_ERR(0, 3314, __pyx_L1_error) 56265 __pyx_r = __pyx_pf_5rados_5Ioctx_86watch(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_obj, __pyx_v_callback, __pyx_v_error_callback, __pyx_v_timeout); 56266 56267 /* "rados.pyx":3314 56268 * return completion 56269 * ** CID 1509760: Error handling issues (CHECKED_RETURN) /src/pybind/rados/rados.c: 47064 in __pyx_pw_5rados_5Ioctx_37aio_remove() ________________________________________________________________________________________________________ *** CID 1509760: Error handling issues (CHECKED_RETURN) /src/pybind/rados/rados.c: 47064 in __pyx_pw_5rados_5Ioctx_37aio_remove() 47058 __Pyx_RaiseArgtupleInvalid("aio_remove", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2640, __pyx_L3_error) 47059 __pyx_L3_error:; 47060 __Pyx_AddTraceback("rados.Ioctx.aio_remove", __pyx_clineno, __pyx_lineno, __pyx_filename); 47061 __Pyx_RefNannyFinishContext(); 47062 return NULL; 47063 __pyx_L4_argument_unpacking_done:; >>> CID 1509760: Error handling issues (CHECKED_RETURN) >>> Calling "__Pyx__ArgTypeTest" without checking return value (as is done elsewhere 132 out of 132 times). 47064 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_object_name), (&PyUnicode_Type), 1, "object_name", 1))) __PYX_ERR(0, 2640, __pyx_L1_error) 47065 __pyx_r = __pyx_pf_5rados_5Ioctx_36aio_remove(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_object_name, __pyx_v_oncomplete, __pyx_v_onsafe); 47066 47067 /* "rados.pyx":2640 47068 * return completion 47069 * ** CID 1509759: Program hangs (SLEEP) /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 703 in SimpleRADOSStriper::lock(unsigned long)() ________________________________________________________________________________________________________ *** CID 1509759: Program hangs (SLEEP) /home/kkeithle/src/github/ceph/src/SimpleRADOSStriper.cc: 703 in SimpleRADOSStriper::lock(unsigned long)() 697 } else if (rc == -EBUSY) { 698 if ((slept % 500000) == 0) { 699 d(-1) << "waiting for locks: "; 700 print_lockers(*_dout); 701 *_dout << dendl; 702 } >>> CID 1509759: Program hangs (SLEEP) >>> Call to "usleep" might sleep while holding lock "lock._M_device". 703 usleep(5000); 704 slept += 5000; 705 continue; 706 } else if (rc == -ECANCELED) { 707 /* CMPXATTR failed, a locker didn't cleanup. Try to recover! */ 708 if (rc = recover_lock(); rc < 0) { ** CID 1509758: Error handling issues (CHECKED_RETURN) /src/pybind/rbd/rbd.c: 81568 in __pyx_pw_3rbd_17GroupSnapIterator_1__init__() ________________________________________________________________________________________________________ *** CID 1509758: Error handling issues (CHECKED_RETURN) /src/pybind/rbd/rbd.c: 81568 in __pyx_pw_3rbd_17GroupSnapIterator_1__init__() 81562 __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5773, __pyx_L3_error) 81563 __pyx_L3_error:; 81564 __Pyx_AddTraceback("rbd.GroupSnapIterator.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); 81565 __Pyx_RefNannyFinishContext(); 81566 return -1; 81567 __pyx_L4_argument_unpacking_done:; >>> CID 1509758: Error handling issues (CHECKED_RETURN) >>> Calling "__Pyx__ArgTypeTest" without checking return value (as is done elsewhere 8 out of 8 times). 81568 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_group), __pyx_ptype_3rbd_Group, 1, "group", 0))) __PYX_ERR(0, 5773, __pyx_L1_error) 81569 __pyx_r = __pyx_pf_3rbd_17GroupSnapIterator___init__(((struct __pyx_obj_3rbd_GroupSnapIterator *)__pyx_v_self), __pyx_v_group); 81570 81571 /* function exit code */ 81572 goto __pyx_L0; 81573 __pyx_L1_error:; ** CID 1509757: Error handling issues (CHECKED_RETURN) /src/pybind/rados/rados.c: 47527 in __pyx_pw_5rados_5Ioctx_41set_locator_key() ________________________________________________________________________________________________________ *** CID 1509757: Error handling issues (CHECKED_RETURN) /src/pybind/rados/rados.c: 47527 in __pyx_pw_5rados_5Ioctx_41set_locator_key() 47521 int __pyx_lineno = 0; 47522 const char *__pyx_filename = NULL; 47523 int __pyx_clineno = 0; 47524 PyObject *__pyx_r = 0; 47525 __Pyx_RefNannyDeclarations 47526 __Pyx_RefNannySetupContext("set_locator_key (wrapper)", 0); >>> CID 1509757: Error handling issues (CHECKED_RETURN) >>> Calling "__Pyx__ArgTypeTest" without checking return value (as is done elsewhere 132 out of 132 times). 47527 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loc_key), (&PyUnicode_Type), 1, "loc_key", 1))) __PYX_ERR(0, 2680, __pyx_L1_error) 47528 __pyx_r = __pyx_pf_5rados_5Ioctx_40set_locator_key(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject*)__pyx_v_loc_key)); 47529 47530 /* function exit code */ 47531 goto __pyx_L0; 47532 __pyx_L1_error:; ** CID 1509756: (CHECKED_RETURN) /src/pybind/rgw/rgw.c: 29532 in __Pyx_PyUnicode_Join() /src/pybind/cephfs/cephfs.c: 44814 in __Pyx_PyUnicode_Join() /src/pybind/rbd/rbd.c: 99756 in __Pyx_PyUnicode_Join() /src/pybind/rados/rados.c: 89361 in __Pyx_PyUnicode_Join() ________________________________________________________________________________________________________ *** CID 1509756: (CHECKED_RETURN) /src/pybind/rgw/rgw.c: 29532 in __Pyx_PyUnicode_Join() 29526 char_pos = 0; 29527 for (i=0; i < value_count; i++) { 29528 int ukind; 29529 Py_ssize_t ulength; 29530 void *udata; 29531 PyObject *uval = PyTuple_GET_ITEM(value_tuple, i); >>> CID 1509756: (CHECKED_RETURN) >>> Calling "_PyUnicode_Ready" without checking return value (as is done elsewhere 8 out of 8 times). 29532 if (unlikely(__Pyx_PyUnicode_READY(uval))) 29533 goto bad; 29534 ulength = __Pyx_PyUnicode_GET_LENGTH(uval); 29535 if (unlikely(!ulength)) 29536 continue; 29537 if (unlikely(char_pos + ulength < 0)) /src/pybind/cephfs/cephfs.c: 44814 in __Pyx_PyUnicode_Join() 44808 char_pos = 0; 44809 for (i=0; i < value_count; i++) { 44810 int ukind; 44811 Py_ssize_t ulength; 44812 void *udata; 44813 PyObject *uval = PyTuple_GET_ITEM(value_tuple, i); >>> CID 1509756: (CHECKED_RETURN) >>> Calling "_PyUnicode_Ready" without checking return value (as is done elsewhere 8 out of 8 times). 44814 if (unlikely(__Pyx_PyUnicode_READY(uval))) 44815 goto bad; 44816 ulength = __Pyx_PyUnicode_GET_LENGTH(uval); 44817 if (unlikely(!ulength)) 44818 continue; 44819 if (unlikely(char_pos + ulength < 0)) /src/pybind/rbd/rbd.c: 99756 in __Pyx_PyUnicode_Join() 99750 char_pos = 0; 99751 for (i=0; i < value_count; i++) { 99752 int ukind; 99753 Py_ssize_t ulength; 99754 void *udata; 99755 PyObject *uval = PyTuple_GET_ITEM(value_tuple, i); >>> CID 1509756: (CHECKED_RETURN) >>> Calling "_PyUnicode_Ready" without checking return value (as is done elsewhere 8 out of 8 times). 99756 if (unlikely(__Pyx_PyUnicode_READY(uval))) 99757 goto bad; 99758 ulength = __Pyx_PyUnicode_GET_LENGTH(uval); 99759 if (unlikely(!ulength)) 99760 continue; 99761 if (unlikely(char_pos + ulength < 0)) /src/pybind/rados/rados.c: 89361 in __Pyx_PyUnicode_Join() 89355 char_pos = 0; 89356 for (i=0; i < value_count; i++) { 89357 int ukind; 89358 Py_ssize_t ulength; 89359 void *udata; 89360 PyObject *uval = PyTuple_GET_ITEM(value_tuple, i); >>> CID 1509756: (CHECKED_RETURN) >>> Calling "_PyUnicode_Ready" without checking return value (as is done elsewhere 8 out of 8 times). 89361 if (unlikely(__Pyx_PyUnicode_READY(uval))) 89362 goto bad; 89363 ulength = __Pyx_PyUnicode_GET_LENGTH(uval); 89364 if (unlikely(!ulength)) 89365 continue; 89366 if (unlikely(char_pos + ulength < 0)) ** CID 1509755: Control flow issues (UNREACHABLE) /src/pybind/rbd/rbd.c: 72245 in __pyx_pf_3rbd_5Image_210snap_get_trash_namespace() ________________________________________________________________________________________________________ *** CID 1509755: Control flow issues (UNREACHABLE) /src/pybind/rbd/rbd.c: 72245 in __pyx_pf_3rbd_5Image_210snap_get_trash_namespace() 72239 * } 72240 * finally: 72241 * free(_name) # <<<<<<<<<<<<<< 72242 * 72243 * @requires_not_closed 72244 */ >>> CID 1509755: Control flow issues (UNREACHABLE) >>> This code cannot be reached: "{ __pyx_L4_error: ; {...". 72245 /*finally:*/ { 72246 __pyx_L4_error:; 72247 /*exception exit:*/{ 72248 __Pyx_PyThreadState_declare 72249 __Pyx_PyThreadState_assign 72250 __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; ** CID 1509754: Uninitialized members (UNINIT_CTOR) /home/kkeithle/src/github/ceph/src/messages/MMDSPing.h: 19 in MMDSPing::MMDSPing()() ________________________________________________________________________________________________________ *** CID 1509754: Uninitialized members (UNINIT_CTOR) /home/kkeithle/src/github/ceph/src/messages/MMDSPing.h: 19 in MMDSPing::MMDSPing()() 13 static constexpr int COMPAT_VERSION = 1; 14 public: 15 version_t seq; 16 17 protected: 18 MMDSPing() : MMDSOp(MSG_MDS_PING, HEAD_VERSION, COMPAT_VERSION) { >>> CID 1509754: Uninitialized members (UNINIT_CTOR) >>> Non-static class member "seq" is not initialized in this constructor nor in any functions that it calls. 19 } 20 MMDSPing(version_t seq) 21 : MMDSOp(MSG_MDS_PING, HEAD_VERSION, COMPAT_VERSION), seq(seq) { 22 } 23 ~MMDSPing() final {} 24 ** CID 1509753: Error handling issues (UNCAUGHT_EXCEPT) /home/kkeithle/src/github/ceph/src/osdc/Objecter.cc: 5005 in Objecter::~Objecter()() ________________________________________________________________________________________________________ *** CID 1509753: Error handling issues (UNCAUGHT_EXCEPT) /home/kkeithle/src/github/ceph/src/osdc/Objecter.cc: 5005 in Objecter::~Objecter()() 4999 Dispatcher(cct), messenger(m), monc(mc), service(service) 5000 { 5001 mon_timeout = cct->_conf.get_val<std::chrono::seconds>("rados_mon_op_timeout"); 5002 osd_timeout = cct->_conf.get_val<std::chrono::seconds>("rados_osd_op_timeout"); 5003 } 5004 >>> CID 1509753: Error handling issues (UNCAUGHT_EXCEPT) >>> An exception of type "boost::container::length_error" is thrown but the exception specification "noexcept" doesn't allow it to be thrown. This will result in a call to terminate(). 5005 Objecter::~Objecter() 5006 { 5007 ceph_assert(homeless_session->get_nref() == 1); 5008 ceph_assert(num_homeless_ops == 0); 5009 homeless_session->put(); 5010 ** CID 1509752: Error handling issues (CHECKED_RETURN) /src/pybind/rados/rados.c: 63069 in __pyx_pw_5rados_5Ioctx_139remove_omap_keys() ________________________________________________________________________________________________________ *** CID 1509752: Error handling issues (CHECKED_RETURN) /src/pybind/rados/rados.c: 63069 in __pyx_pw_5rados_5Ioctx_139remove_omap_keys() 63063 __Pyx_RaiseArgtupleInvalid("remove_omap_keys", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3821, __pyx_L3_error) 63064 __pyx_L3_error:; 63065 __Pyx_AddTraceback("rados.Ioctx.remove_omap_keys", __pyx_clineno, __pyx_lineno, __pyx_filename); 63066 __Pyx_RefNannyFinishContext(); 63067 return NULL; 63068 __pyx_L4_argument_unpacking_done:; >>> CID 1509752: Error handling issues (CHECKED_RETURN) >>> Calling "__Pyx__ArgTypeTest" without checking return value (as is done elsewhere 19 out of 19 times). 63069 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_write_op), __pyx_ptype_5rados_WriteOp, 1, "write_op", 0))) __PYX_ERR(0, 3821, __pyx_L1_error) 63070 __pyx_r = __pyx_pf_5rados_5Ioctx_138remove_omap_keys(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_write_op, __pyx_v_keys); 63071 63072 /* function exit code */ 63073 goto __pyx_L0; 63074 __pyx_L1_error:; ** CID 1509751: Memory - illegal accesses (USE_AFTER_FREE) /home/kkeithle/src/github/ceph/src/msg/async/ProtocolV2.cc: 1399 in ProtocolV2::handle_message()() ________________________________________________________________________________________________________ *** CID 1509751: Memory - illegal accesses (USE_AFTER_FREE) /home/kkeithle/src/github/ceph/src/msg/async/ProtocolV2.cc: 1399 in ProtocolV2::handle_message()() 1393 ldout(cct, 1) << __func__ << " decode message failed " << dendl; 1394 return _fault(); 1395 } else { 1396 state = READ_MESSAGE_COMPLETE; 1397 } 1398 >>> CID 1509751: Memory - illegal accesses (USE_AFTER_FREE) >>> Using freed pointer "this->connection". 1399 INTERCEPT(17); 1400 1401 message->set_byte_throttler(connection->policy.throttler_bytes); 1402 message->set_message_throttler(connection->policy.throttler_messages); 1403 1404 // store reservation size in message, so we don't get confused ** CID 1509750: Error handling issues (UNCAUGHT_EXCEPT) /home/kkeithle/src/github/ceph/src/common/perf_counters_collection.cc: 55 in ceph::common::PerfCountersDeleter::operator ()(ceph::common::PerfCounters *)() ________________________________________________________________________________________________________ *** CID 1509750: Error handling issues (UNCAUGHT_EXCEPT) /home/kkeithle/src/github/ceph/src/common/perf_counters_collection.cc: 55 in ceph::common::PerfCountersDeleter::operator ()(ceph::common::PerfCounters *)() 49 } 50 void PerfCountersCollection::with_counters(std::function<void(const PerfCountersCollectionImpl::CounterMap &)> fn) const 51 { 52 std::lock_guard lck(m_lock); 53 perf_impl.with_counters(fn); 54 } >>> CID 1509750: Error handling issues (UNCAUGHT_EXCEPT) >>> An exception of type "std::system_error" is thrown but the exception specification "noexcept" doesn't allow it to be thrown. This will result in a call to terminate(). 55 void PerfCountersDeleter::operator()(PerfCounters* p) noexcept 56 { 57 if (cct) 58 cct->get_perfcounters_collection()->remove(p); 59 delete p; 60 } 61 ________________________________________________________________________________________________________ To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yojIR8ODHcGVd1JcCGjvdH5QZ17VgLZQT3XYfB8Bhzp4w-3D-3Dapsi_yvgqM0IBcPiStiVTuWpgYFnMA4H-2BJYqMHWw4jQPoaoo-2BtqsVYKtfl9A0JRaS-2FbbUsKzdvQMj2WBidmXXDYpXO5qx9Y4cnFn0p-2FQkZWWe5JHh8ejaBgEwaUzBM3x-2FyM-2FOpvKqhT-2BCzg-2FNUNemZtHf5voIH7BYbWLrdioyp5fcmOVIoUi-2FywPSoY8zfzN1w6jANMlnLaDKN7b-2BOFQMLI5WK5wsImAoh9oNG6AqvJrylMM-3D