All of lore.kernel.org
 help / color / mirror / Atom feed
From: kefu chai <tchaikov@gmail.com>
To: "ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>
Subject: Re: New Defects reported by Coverity Scan for ceph
Date: Fri, 17 Feb 2017 13:19:51 +0800	[thread overview]
Message-ID: <CAJE9aOOJ_beE6DgybWO2Rhb=Qkt1zOVsXPwExHNX4MGtf6bLQA@mail.gmail.com> (raw)
In-Reply-To: <CAJE9aOMoxWjhq=g+25hfhMhxSCnHAOwAyNhXvkxS1wwBEd3j+A@mail.gmail.com>

resending in plain-text

On Fri, Feb 17, 2017 at 1:18 PM, kefu chai <tchaikov@gmail.com> wrote:
> rocksdb related fixes posted to
> https://github.com/facebook/rocksdb/pull/1879
>
> ceph related fixes posted to https://github.com/ceph/ceph/pull/13473
>
> @Bartłomiej i also left a comment at
> https://github.com/ceph/ceph/pull/12829. could you take a look?
>
>
> On Fri, Feb 17, 2017 at 10:29 AM, <scan-admin@coverity.com> wrote:
>>
>>
>> Hi,
>>
>> Please find the latest report on new defect(s) introduced to ceph found
>> with Coverity Scan.
>>
>> 18 new defect(s) introduced to ceph found with Coverity Scan.
>> 32 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 18 of 18 defect(s)
>>
>>
>> ** CID 1400653:  Integer handling issues  (CONSTANT_EXPRESSION_RESULT)
>> /home/brad/working/src/ceph/src/tools/rbd_nbd/rbd-nbd.cc: 632 in
>> do_map()()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400653:  Integer handling issues  (CONSTANT_EXPRESSION_RESULT)
>> /home/brad/working/src/ceph/src/tools/rbd_nbd/rbd-nbd.cc: 632 in
>> do_map()()
>> 626       r = ioctl(nbd, NBD_SET_BLKSIZE, RBD_NBD_BLKSIZE);
>> 627       if (r < 0) {
>> 628         r = -errno;
>> 629         goto close_nbd;
>> 630       }
>> 631
>> >>>     CID 1400653:  Integer handling issues
>> >>> (CONSTANT_EXPRESSION_RESULT)
>> >>>     "info.size > 18446744073709551615UL /* 9223372036854775807L * 2UL
>> >>> + 1UL */" is always false regardless of the values of its operands. This
>> >>> occurs as the logical operand of "if".
>> 632       if (info.size > ULONG_MAX) {
>> 633         r = -EFBIG;
>> 634         cerr << "rbd-nbd: image is too large (" <<
>> prettybyte_t(info.size)
>> 635              << ", max is " << prettybyte_t(ULONG_MAX) << ")" <<
>> std::endl;
>> 636         goto close_nbd;
>> 637       }
>>
>> ** CID 1400654:  Resource leaks  (CTOR_DTOR_LEAK)
>> /home/brad/working/src/ceph/src/rocksdb/db/compaction_job.cc: 276 in
>> rocksdb::CompactionJob::CompactionJob(int, rocksdb::Compaction *, const
>> rocksdb::ImmutableDBOptions &, const rocksdb::EnvOptions &,
>> rocksdb::VersionSet *, const std::atomic<bool> *, rocksdb::LogBuffer *,
>> rocksdb::Directory *, rocksdb::Directory *, rocksdb::Statistics *,
>> rocksdb::InstrumentedMutex *, rocksdb::Status *, std::vector<unsigned long,
>> std::allocator<unsigned long>>, unsigned long,
>> std::shared_ptr<rocksdb::Cache>, rocksdb::EventLogger *, bool, bool, const
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>> &, rocksdb::CompactionJobStats *)()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400654:  Resource leaks  (CTOR_DTOR_LEAK)
>> /home/brad/working/src/ceph/src/rocksdb/db/compaction_job.cc: 276 in
>> rocksdb::CompactionJob::CompactionJob(int, rocksdb::Compaction *, const
>> rocksdb::ImmutableDBOptions &, const rocksdb::EnvOptions &,
>> rocksdb::VersionSet *, const std::atomic<bool> *, rocksdb::LogBuffer *,
>> rocksdb::Directory *, rocksdb::Directory *, rocksdb::Statistics *,
>> rocksdb::InstrumentedMutex *, rocksdb::Status *, std::vector<unsigned long,
>> std::allocator<unsigned long>>, unsigned long,
>> std::shared_ptr<rocksdb::Cache>, rocksdb::EventLogger *, bool, bool, const
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>> &, rocksdb::CompactionJobStats *)()
>> 270         std::vector<SequenceNumber> existing_snapshots,
>> 271         SequenceNumber earliest_write_conflict_snapshot,
>> 272         std::shared_ptr<Cache> table_cache, EventLogger* event_logger,
>> 273         bool paranoid_file_checks, bool measure_io_stats, const
>> std::string& dbname,
>> 274         CompactionJobStats* compaction_job_stats)
>> 275         : job_id_(job_id),
>> >>>     CID 1400654:  Resource leaks  (CTOR_DTOR_LEAK)
>> >>>     The constructor allocates field "compact_" of
>> >>> "rocksdb::CompactionJob" but the destructor and whatever functions it calls
>> >>> do not free it.
>> 276           compact_(new CompactionState(compaction)),
>> 277           compaction_job_stats_(compaction_job_stats),
>> 278           compaction_stats_(1),
>> 279           dbname_(dbname),
>> 280           db_options_(db_options),
>> 281           env_options_(env_options),
>>
>> ** CID 1400655:  Security best practices violations  (DC.WEAK_CRYPTO)
>> /home/brad/working/src/ceph/src/osdc/Objecter.cc: 2792 in
>> Objecter::_calc_target(Objecter::op_target_t *, Connection *, bool)()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400655:  Security best practices violations  (DC.WEAK_CRYPTO)
>> /home/brad/working/src/ceph/src/osdc/Objecter.cc: 2792 in
>> Objecter::_calc_target(Objecter::op_target_t *, Connection *, bool)()
>> 2786         if (acting_primary == -1) {
>> 2787           t->osd = -1;
>> 2788         } else {
>> 2789           int osd;
>> 2790           bool read = is_read && !is_write;
>> 2791           if (read && (t->flags & CEPH_OSD_FLAG_BALANCE_READS)) {
>> >>>     CID 1400655:  Security best practices violations  (DC.WEAK_CRYPTO)
>> >>>     "rand" should not be used for security related applications, as
>> >>> linear congruential algorithms are too easy to break.
>> 2792            int p = rand() % acting.size();
>> 2793            if (p)
>> 2794              t->used_replica = true;
>> 2795            osd = acting[p];
>> 2796            ldout(cct, 10) << " chose random osd." << osd << " of " <<
>> acting
>> 2797                           << dendl;
>>
>> ** CID 1400656:  Incorrect expression  (NO_EFFECT)
>> /home/brad/working/src/ceph/src/msg/async/AsyncConnection.cc: 1077 in
>> AsyncConnection::_process_connection()()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400656:  Incorrect expression  (NO_EFFECT)
>> /home/brad/working/src/ceph/src/msg/async/AsyncConnection.cc: 1077 in
>> AsyncConnection::_process_connection()()
>> 1071               goto fail;
>> 1072             } else if (r > 0) {
>> 1073               break;
>> 1074             }
>> 1075
>> 1076             connect_reply = *((ceph_msg_connect_reply*)state_buffer);
>> >>>     CID 1400656:  Incorrect expression  (NO_EFFECT)
>> >>>     Assigning "this->connect_reply.features" to itself has no effect.
>> 1077             connect_reply.features = connect_reply.features;
>> 1078
>> 1079             ldout(async_msgr->cct, 20) << __func__ << " connect got
>> reply tag " << (int)connect_reply.tag
>> 1080                                  << " connect_seq " <<
>> connect_reply.connect_seq << " global_seq "
>> 1081                                  << connect_reply.global_seq << "
>> proto " << connect_reply.protocol_version
>> 1082                                  << " flags " <<
>> (int)connect_reply.flags << " features "
>>
>> ** CID 1400657:  Incorrect expression  (NO_EFFECT)
>> /home/brad/working/src/ceph/src/msg/simple/Pipe.cc: 1152 in
>> Pipe::connect()()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400657:  Incorrect expression  (NO_EFFECT)
>> /home/brad/working/src/ceph/src/msg/simple/Pipe.cc: 1152 in
>> Pipe::connect()()
>> 1146         if (rc < 0) {
>> 1147           ldout(msgr->cct,2) << "connect read reply " <<
>> cpp_strerror(rc) << dendl;
>> 1148           goto fail;
>> 1149         }
>> 1150
>> 1151         // sanitize features
>> >>>     CID 1400657:  Incorrect expression  (NO_EFFECT)
>> >>>     Assigning "reply.features" to itself has no effect.
>> 1152         reply.features = reply.features;
>> 1153
>> 1154         ldout(msgr->cct,20) << "connect got reply tag " <<
>> (int)reply.tag
>> 1155                            << " connect_seq " << reply.connect_seq
>> 1156                            << " global_seq " << reply.global_seq
>> 1157                            << " proto " << reply.protocol_version
>>
>> ** CID 1400658:  Incorrect expression  (NO_EFFECT)
>> /home/brad/working/src/ceph/src/msg/simple/Pipe.cc: 431 in
>> Pipe::accept()()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400658:  Incorrect expression  (NO_EFFECT)
>> /home/brad/working/src/ceph/src/msg/simple/Pipe.cc: 431 in
>> Pipe::accept()()
>> 425         if (tcp_read((char*)&connect, sizeof(connect)) < 0) {
>> 426           ldout(msgr->cct,10) << "accept couldn't read connect" <<
>> dendl;
>> 427           goto fail_unlocked;
>> 428         }
>> 429
>> 430         // sanitize features
>> >>>     CID 1400658:  Incorrect expression  (NO_EFFECT)
>> >>>     Assigning "connect.features" to itself has no effect.
>> 431         connect.features = connect.features;
>> 432
>> 433         authorizer.clear();
>> 434         if (connect.authorizer_len) {
>> 435           bp = buffer::create(connect.authorizer_len);
>> 436           if (tcp_read(bp.c_str(), connect.authorizer_len) < 0) {
>>
>> ** CID 1400659:    (RETURN_LOCAL)
>> /home/brad/working/src/ceph/src/rocksdb/db/forward_iterator.cc: 567 in
>> rocksdb::ForwardIterator::RebuildIterators(bool)()
>> /home/brad/working/src/ceph/src/rocksdb/db/forward_iterator.cc: 567 in
>> rocksdb::ForwardIterator::RebuildIterators(bool)()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400659:    (RETURN_LOCAL)
>> /home/brad/working/src/ceph/src/rocksdb/db/forward_iterator.cc: 567 in
>> rocksdb::ForwardIterator::RebuildIterators(bool)()
>> 561       // Clean up
>> 562       Cleanup(refresh_sv);
>> 563       if (refresh_sv) {
>> 564         // New
>> 565         sv_ = cfd_->GetReferencedSuperVersion(&(db_->mutex_));
>> 566       }
>> >>>     CID 1400659:    (RETURN_LOCAL)
>> >>>     Temporary variable of type "rocksdb::InternalKeyComparator" goes
>> >>> out of scope.
>> 567       RangeDelAggregator range_del_agg(
>> 568           InternalKeyComparator(cfd_->internal_comparator()), {} /*
>> snapshots */);
>> 569       mutable_iter_ = sv_->mem->NewIterator(read_options_, &arena_);
>> 570       sv_->imm->AddIterators(read_options_, &imm_iters_, &arena_);
>> 571       if (!read_options_.ignore_range_deletions) {
>> 572         std::unique_ptr<InternalIterator> range_del_iter(
>> /home/brad/working/src/ceph/src/rocksdb/db/forward_iterator.cc: 567 in
>> rocksdb::ForwardIterator::RebuildIterators(bool)()
>> 561       // Clean up
>> 562       Cleanup(refresh_sv);
>> 563       if (refresh_sv) {
>> 564         // New
>> 565         sv_ = cfd_->GetReferencedSuperVersion(&(db_->mutex_));
>> 566       }
>> >>>     CID 1400659:    (RETURN_LOCAL)
>> >>>     Temporary variable of type "rocksdb::InternalKeyComparator" goes
>> >>> out of scope.
>> 567       RangeDelAggregator range_del_agg(
>> 568           InternalKeyComparator(cfd_->internal_comparator()), {} /*
>> snapshots */);
>> 569       mutable_iter_ = sv_->mem->NewIterator(read_options_, &arena_);
>> 570       sv_->imm->AddIterators(read_options_, &imm_iters_, &arena_);
>> 571       if (!read_options_.ignore_range_deletions) {
>> 572         std::unique_ptr<InternalIterator> range_del_iter(
>>
>> ** CID 1400660:    (RETURN_LOCAL)
>> /home/brad/working/src/ceph/src/rocksdb/db/forward_iterator.cc: 622 in
>> rocksdb::ForwardIterator::RenewIterators()()
>> /home/brad/working/src/ceph/src/rocksdb/db/forward_iterator.cc: 622 in
>> rocksdb::ForwardIterator::RenewIterators()()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400660:    (RETURN_LOCAL)
>> /home/brad/working/src/ceph/src/rocksdb/db/forward_iterator.cc: 622 in
>> rocksdb::ForwardIterator::RenewIterators()()
>> 616         DeleteIterator(m, true /* is_arena */);
>> 617       }
>> 618       imm_iters_.clear();
>> 619
>> 620       mutable_iter_ = svnew->mem->NewIterator(read_options_, &arena_);
>> 621       svnew->imm->AddIterators(read_options_, &imm_iters_, &arena_);
>> >>>     CID 1400660:    (RETURN_LOCAL)
>> >>>     Temporary variable of type "rocksdb::InternalKeyComparator" goes
>> >>> out of scope.
>> 622       RangeDelAggregator range_del_agg(
>> 623           InternalKeyComparator(cfd_->internal_comparator()), {} /*
>> snapshots */);
>> 624       if (!read_options_.ignore_range_deletions) {
>> 625         std::unique_ptr<InternalIterator> range_del_iter(
>> 626             svnew->mem->NewRangeTombstoneIterator(read_options_));
>> 627         range_del_agg.AddTombstones(std::move(range_del_iter));
>> /home/brad/working/src/ceph/src/rocksdb/db/forward_iterator.cc: 622 in
>> rocksdb::ForwardIterator::RenewIterators()()
>> 616         DeleteIterator(m, true /* is_arena */);
>> 617       }
>> 618       imm_iters_.clear();
>> 619
>> 620       mutable_iter_ = svnew->mem->NewIterator(read_options_, &arena_);
>> 621       svnew->imm->AddIterators(read_options_, &imm_iters_, &arena_);
>> >>>     CID 1400660:    (RETURN_LOCAL)
>> >>>     Temporary variable of type "rocksdb::InternalKeyComparator" goes
>> >>> out of scope.
>> 622       RangeDelAggregator range_del_agg(
>> 623           InternalKeyComparator(cfd_->internal_comparator()), {} /*
>> snapshots */);
>> 624       if (!read_options_.ignore_range_deletions) {
>> 625         std::unique_ptr<InternalIterator> range_del_iter(
>> 626             svnew->mem->NewRangeTombstoneIterator(read_options_));
>> 627         range_del_agg.AddTombstones(std::move(range_del_iter));
>>
>> ** CID 1400661:  Uninitialized variables  (UNINIT)
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400661:  Uninitialized variables  (UNINIT)
>> /home/brad/working/src/ceph/src/messages/MOSDBackoff.h: 41 in
>> MOSDBackoff::MOSDBackoff()()
>> 35       }
>> 36       epoch_t get_map_epoch() const override {
>> 37         return map_epoch;
>> 38       }
>> 39
>> 40       MOSDBackoff()
>> >>>     CID 1400661:  Uninitialized variables  (UNINIT)
>> >>>     Using uninitialized value "this->COMPAT_VERSION" when calling
>> >>> "MOSDFastDispatchOp".
>> 41         : MOSDFastDispatchOp(CEPH_MSG_OSD_BACKOFF, HEAD_VERSION,
>> COMPAT_VERSION) {}
>> 42       MOSDBackoff(spg_t pgid_, epoch_t ep, uint8_t op_, uint64_t id_,
>> 43            hobject_t begin_, hobject_t end_)
>> 44         : MOSDFastDispatchOp(CEPH_MSG_OSD_BACKOFF, HEAD_VERSION,
>> COMPAT_VERSION),
>> 45           pgid(pgid_),
>> 46           map_epoch(ep),
>>
>> ** CID 1400662:  Uninitialized variables  (UNINIT)
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400662:  Uninitialized variables  (UNINIT)
>> /home/brad/working/src/ceph/src/messages/MOSDBackoff.h: 44 in
>> MOSDBackoff::MOSDBackoff(spg_t, unsigned int, unsigned char, unsigned long,
>> hobject_t, hobject_t)()
>> 38       }
>> 39
>> 40       MOSDBackoff()
>> 41         : MOSDFastDispatchOp(CEPH_MSG_OSD_BACKOFF, HEAD_VERSION,
>> COMPAT_VERSION) {}
>> 42       MOSDBackoff(spg_t pgid_, epoch_t ep, uint8_t op_, uint64_t id_,
>> 43            hobject_t begin_, hobject_t end_)
>> >>>     CID 1400662:  Uninitialized variables  (UNINIT)
>> >>>     Using uninitialized value "this->COMPAT_VERSION" when calling
>> >>> "MOSDFastDispatchOp".
>> 44         : MOSDFastDispatchOp(CEPH_MSG_OSD_BACKOFF, HEAD_VERSION,
>> COMPAT_VERSION),
>> 45           pgid(pgid_),
>> 46           map_epoch(ep),
>> 47           op(op_),
>> 48           id(id_),
>> 49           begin(begin_),
>>
>> ** CID 1400663:  Uninitialized members  (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/rocksdb/db/compaction_iterator.cc: 71 in
>> rocksdb::CompactionIterator::CompactionIterator(rocksdb::InternalIterator *,
>> const rocksdb::Comparator *, rocksdb::MergeHelper *, unsigned long,
>> std::vector<unsigned long, std::allocator<unsigned long>> *, unsigned long,
>> rocksdb::Env *, bool, rocksdb::RangeDelAggregator *,
>> std::unique_ptr<rocksdb::CompactionIterator::CompactionProxy,
>> std::default_delete<rocksdb::CompactionIterator::CompactionProxy>>, const
>> rocksdb::CompactionFilter *, const std::atomic<bool> *)()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400663:  Uninitialized members  (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/rocksdb/db/compaction_iterator.cc: 71 in
>> rocksdb::CompactionIterator::CompactionIterator(rocksdb::InternalIterator *,
>> const rocksdb::Comparator *, rocksdb::MergeHelper *, unsigned long,
>> std::vector<unsigned long, std::allocator<unsigned long>> *, unsigned long,
>> rocksdb::Env *, bool, rocksdb::RangeDelAggregator *,
>> std::unique_ptr<rocksdb::CompactionIterator::CompactionProxy,
>> std::default_delete<rocksdb::CompactionIterator::CompactionProxy>>, const
>> rocksdb::CompactionFilter *, const std::atomic<bool> *)()
>> 65       if (compaction_filter_ != nullptr &&
>> compaction_filter_->IgnoreSnapshots()) {
>> 66         ignore_snapshots_ = true;
>> 67       } else {
>> 68         ignore_snapshots_ = false;
>> 69       }
>> 70       input_->SetPinnedItersMgr(&pinned_iters_mgr_);
>> >>>     CID 1400663:  Uninitialized members  (UNINIT_CTOR)
>> >>>     Non-static class member "current_user_key_snapshot_" is not
>> >>> initialized in this constructor nor in any functions that it calls.
>> 71     }
>> 72
>> 73     CompactionIterator::~CompactionIterator() {
>> 74       // input_ Iteartor lifetime is longer than pinned_iters_mgr_
>> lifetime
>> 75       input_->SetPinnedItersMgr(nullptr);
>> 76     }
>>
>> ** CID 1400664:  Control flow issues  (UNREACHABLE)
>> /home/brad/working/src/ceph/src/rocksdb/util/env_posix.cc: 386 in
>> rocksdb::<unnamed>::PosixEnv::ReuseWritableFile(const
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>> &, const std::__cxx11::basic_string<char,
>> std::char_traits<char>, std::allocator<char>> &,
>> std::unique_ptr<rocksdb::WritableFile,
>> std::default_delete<rocksdb::WritableFile>> *, const rocksdb::EnvOptions
>> &)()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400664:  Control flow issues  (UNREACHABLE)
>> /home/brad/working/src/ceph/src/rocksdb/util/env_posix.cc: 386 in
>> rocksdb::<unnamed>::PosixEnv::ReuseWritableFile(const
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>> &, const std::__cxx11::basic_string<char,
>> std::char_traits<char>, std::allocator<char>> &,
>> std::unique_ptr<rocksdb::WritableFile,
>> std::default_delete<rocksdb::WritableFile>> *, const rocksdb::EnvOptions
>> &)()
>> 380           EnvOptions no_mmap_writes_options = options;
>> 381           no_mmap_writes_options.use_mmap_writes = false;
>> 382           result->reset(new PosixWritableFile(fname, fd,
>> no_mmap_writes_options));
>> 383         }
>> 384         return s;
>> 385
>> >>>     CID 1400664:  Control flow issues  (UNREACHABLE)
>> >>>     This code cannot be reached: "return rocksdb::Status(s);".
>> 386         return s;
>> 387       }
>> 388
>> 389       virtual Status NewRandomRWFile(const std::string& fname,
>> 390                                      unique_ptr<RandomRWFile>* result,
>> 391                                      const EnvOptions& options)
>> override {
>>
>> ** CID 1400665:  Uninitialized members  (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/rocksdb/db/compaction_iterator.cc: 26 in
>> rocksdb::CompactionIterator::CompactionIterator(rocksdb::InternalIterator *,
>> const rocksdb::Comparator *, rocksdb::MergeHelper *, unsigned long,
>> std::vector<unsigned long, std::allocator<unsigned long>> *, unsigned long,
>> rocksdb::Env *, bool, rocksdb::RangeDelAggregator *, const
>> rocksdb::Compaction *, const rocksdb::CompactionFilter *, const
>> std::atomic<bool> *)()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400665:  Uninitialized members  (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/rocksdb/db/compaction_iterator.cc: 26 in
>> rocksdb::CompactionIterator::CompactionIterator(rocksdb::InternalIterator *,
>> const rocksdb::Comparator *, rocksdb::MergeHelper *, unsigned long,
>> std::vector<unsigned long, std::allocator<unsigned long>> *, unsigned long,
>> rocksdb::Env *, bool, rocksdb::RangeDelAggregator *, const
>> rocksdb::Compaction *, const rocksdb::CompactionFilter *, const
>> std::atomic<bool> *)()
>> 20         : CompactionIterator(
>> 21               input, cmp, merge_helper, last_sequence, snapshots,
>> 22               earliest_write_conflict_snapshot, env,
>> expect_valid_internal_key,
>> 23               range_del_agg,
>> 24               std::unique_ptr<CompactionProxy>(
>> 25                   compaction ? new CompactionProxy(compaction) :
>> nullptr),
>> >>>     CID 1400665:  Uninitialized members  (UNINIT_CTOR)
>> >>>     Non-static class member "current_user_key_snapshot_" is not
>> >>> initialized in this constructor nor in any functions that it calls.
>> 26               compaction_filter, shutting_down) {}
>> 27
>> 28     CompactionIterator::CompactionIterator(
>> 29         InternalIterator* input, const Comparator* cmp, MergeHelper*
>> merge_helper,
>> 30         SequenceNumber last_sequence, std::vector<SequenceNumber>*
>> snapshots,
>> 31         SequenceNumber earliest_write_conflict_snapshot, Env* env,
>>
>> ** CID 1400666:  Uninitialized members  (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/rocksdb/db/dbformat.h: 531 in
>> rocksdb::RangeTombstone::RangeTombstone()()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400666:  Uninitialized members  (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/rocksdb/db/dbformat.h: 531 in
>> rocksdb::RangeTombstone::RangeTombstone()()
>> 525     // the struct here is a easy-understood form
>> 526     // start/end_key_ is the start/end user key of the range to be
>> deleted
>> 527     struct RangeTombstone {
>> 528       Slice start_key_;
>> 529       Slice end_key_;
>> 530       SequenceNumber seq_;
>> >>>     CID 1400666:  Uninitialized members  (UNINIT_CTOR)
>> >>>     Non-static class member "seq_" is not initialized in this
>> >>> constructor nor in any functions that it calls.
>> 531       RangeTombstone() = default;
>> 532       RangeTombstone(Slice sk, Slice ek, SequenceNumber sn)
>> 533           : start_key_(sk), end_key_(ek), seq_(sn) {}
>> 534
>> 535       RangeTombstone(ParsedInternalKey parsed_key, Slice value) {
>> 536         start_key_ = parsed_key.user_key;
>>
>> ** CID 1400667:    (UNINIT_CTOR)
>> /usr/include/c++/6.2.1/bits/regex_executor.h: 86 in
>> std::__detail::_Executor<__gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>,
>> std::allocator<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const
>> char *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>>>, std::__cxx11::regex_traits<char>,
>> (bool)0>::_Executor(__gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>, __gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>,
>> std::vector<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const char
>> *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>>,
>> std::allocator<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const
>> char *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>
>>  >>> &, const std::__cxx11::basic_regex<char,
>> std::__cxx11::regex_traits<char>> &,
>> std::regex_constants::match_flag_type)()
>> /usr/include/c++/6.2.1/bits/regex_executor.h: 86 in
>> std::__detail::_Executor<__gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>,
>> std::allocator<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const
>> char *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>>>, std::__cxx11::regex_traits<char>,
>> (bool)1>::_Executor(__gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>, __gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>,
>> std::vector<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const char
>> *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>>,
>> std::allocator<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const
>> char *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>
>>  >>> &, const std::__cxx11::basic_regex<char,
>> std::__cxx11::regex_traits<char>> &,
>> std::regex_constants::match_flag_type)()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400667:    (UNINIT_CTOR)
>> /usr/include/c++/6.2.1/bits/regex_executor.h: 86 in
>> std::__detail::_Executor<__gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>,
>> std::allocator<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const
>> char *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>>>, std::__cxx11::regex_traits<char>,
>> (bool)0>::_Executor(__gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>, __gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>,
>> std::vector<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const char
>> *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>>,
>> std::allocator<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const
>> char *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>
>>  >>> &, const std::__cxx11::basic_regex<char,
>> std::__cxx11::regex_traits<char>> &,
>> std::regex_constants::match_flag_type)()
>> 80           _M_states(_M_nfa._M_start(), _M_nfa.size()),
>> 81           _M_flags((__flags & regex_constants::match_prev_avail)
>> 82             ? (__flags
>> 83                & ~regex_constants::match_not_bol
>> 84                & ~regex_constants::match_not_bow)
>> 85             : __flags)
>> >>>     CID 1400667:    (UNINIT_CTOR)
>> >>>     Non-static class member "_M_has_sol" is not initialized in this
>> >>> constructor nor in any functions that it calls.
>> 86           { }
>> 87
>> 88           // Set matched when string exactly matches the pattern.
>> 89           bool
>> 90           _M_match()
>> 91           {
>> /usr/include/c++/6.2.1/bits/regex_executor.h: 86 in
>> std::__detail::_Executor<__gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>,
>> std::allocator<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const
>> char *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>>>, std::__cxx11::regex_traits<char>,
>> (bool)1>::_Executor(__gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>, __gnu_cxx::__normal_iterator<const char *,
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>,
>> std::vector<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const char
>> *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>>,
>> std::allocator<std::__cxx11::sub_match<__gnu_cxx::__normal_iterator<const
>> char *, std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>>>
>>  >>> &, const std::__cxx11::basic_regex<char,
>> std::__cxx11::regex_traits<char>> &,
>> std::regex_constants::match_flag_type)()
>> 80           _M_states(_M_nfa._M_start(), _M_nfa.size()),
>> 81           _M_flags((__flags & regex_constants::match_prev_avail)
>> 82             ? (__flags
>> 83                & ~regex_constants::match_not_bol
>> 84                & ~regex_constants::match_not_bow)
>> 85             : __flags)
>> >>>     CID 1400667:    (UNINIT_CTOR)
>> >>>     Non-static class member "_M_has_sol" is not initialized in this
>> >>> constructor nor in any functions that it calls.
>> 86           { }
>> 87
>> 88           // Set matched when string exactly matches the pattern.
>> 89           bool
>> 90           _M_match()
>> 91           {
>>
>> ** CID 1400668:  Uninitialized members  (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/rocksdb/util/thread_local.cc: 41 in
>> rocksdb::ThreadData::ThreadData(rocksdb::ThreadLocalPtr::StaticMeta *)()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400668:  Uninitialized members  (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/rocksdb/util/thread_local.cc: 41 in
>> rocksdb::ThreadData::ThreadData(rocksdb::ThreadLocalPtr::StaticMeta *)()
>> 35     //     ---------------------------------------------------
>> 36     //     | thread 2 |    void*   |    void*   |    void*   | <-
>> ThreadData
>> 37     //     ---------------------------------------------------
>> 38     //     | thread 3 |    void*   |    void*   |    void*   | <-
>> ThreadData
>> 39     //     ---------------------------------------------------
>> 40     struct ThreadData {
>> >>>     CID 1400668:  Uninitialized members  (UNINIT_CTOR)
>> >>>     Non-static class member "prev" is not initialized in this
>> >>> constructor nor in any functions that it calls.
>> 41       explicit ThreadData(ThreadLocalPtr::StaticMeta* _inst) :
>> entries(), inst(_inst) {}
>> 42       std::vector<Entry> entries;
>> 43       ThreadData* next;
>> 44       ThreadData* prev;
>> 45       ThreadLocalPtr::StaticMeta* inst;
>> 46     };
>>
>> ** CID 1400669:  Uninitialized members  (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/rocksdb/db/compaction_job.cc: 303 in
>> rocksdb::CompactionJob::CompactionJob(int, rocksdb::Compaction *, const
>> rocksdb::ImmutableDBOptions &, const rocksdb::EnvOptions &,
>> rocksdb::VersionSet *, const std::atomic<bool> *, rocksdb::LogBuffer *,
>> rocksdb::Directory *, rocksdb::Directory *, rocksdb::Statistics *,
>> rocksdb::InstrumentedMutex *, rocksdb::Status *, std::vector<unsigned long,
>> std::allocator<unsigned long>>, unsigned long,
>> std::shared_ptr<rocksdb::Cache>, rocksdb::EventLogger *, bool, bool, const
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>> &, rocksdb::CompactionJobStats *)()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400669:  Uninitialized members  (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/rocksdb/db/compaction_job.cc: 303 in
>> rocksdb::CompactionJob::CompactionJob(int, rocksdb::Compaction *, const
>> rocksdb::ImmutableDBOptions &, const rocksdb::EnvOptions &,
>> rocksdb::VersionSet *, const std::atomic<bool> *, rocksdb::LogBuffer *,
>> rocksdb::Directory *, rocksdb::Directory *, rocksdb::Statistics *,
>> rocksdb::InstrumentedMutex *, rocksdb::Status *, std::vector<unsigned long,
>> std::allocator<unsigned long>>, unsigned long,
>> std::shared_ptr<rocksdb::Cache>, rocksdb::EventLogger *, bool, bool, const
>> std::__cxx11::basic_string<char, std::char_traits<char>,
>> std::allocator<char>> &, rocksdb::CompactionJobStats *)()
>> 297       assert(log_buffer_ != nullptr);
>> 298       const auto* cfd = compact_->compaction->column_family_data();
>> 299       ThreadStatusUtil::SetColumnFamily(cfd, cfd->ioptions()->env,
>> 300
>> db_options_.enable_thread_tracking);
>> 301
>> ThreadStatusUtil::SetThreadOperation(ThreadStatus::OP_COMPACTION);
>> 302       ReportStartedCompaction(compaction);
>> >>>     CID 1400669:  Uninitialized members  (UNINIT_CTOR)
>> >>>     Non-static class member "bottommost_level_" is not initialized in
>> >>> this constructor nor in any functions that it calls.
>> 303     }
>> 304
>> 305     CompactionJob::~CompactionJob() {
>> 306       assert(compact_ == nullptr);
>> 307       ThreadStatusUtil::ResetThreadStatus();
>> 308     }
>>
>> ** CID 1400670:    (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/common/perf_histogram.h: 76 in
>> PerfHistogram<(int)3>::PerfHistogram(std::initializer_list<PerfHistogramCommon::axis_config_d>)()
>> /home/brad/working/src/ceph/src/common/perf_histogram.h: 76 in
>> PerfHistogram<(int)2>::PerfHistogram(std::initializer_list<PerfHistogramCommon::axis_config_d>)()
>>
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1400670:    (UNINIT_CTOR)
>> /home/brad/working/src/ceph/src/common/perf_histogram.h: 76 in
>> PerfHistogram<(int)3>::PerfHistogram(std::initializer_list<PerfHistogramCommon::axis_config_d>)()
>> 70                  "Quantization unit must be non-zero positive integer
>> value");
>> 71
>> 72           m_axes_config[i++] = ac;
>> 73         }
>> 74
>> 75         m_rawData.reset(new atomic64_t[get_raw_size()]);
>> >>>     CID 1400670:    (UNINIT_CTOR)
>> >>>     Non-static class member field "m_axes_config.m_buckets" is not
>> >>> initialized in this constructor nor in any functions that it calls.
>> 76       }
>> 77
>> 78       /// Copy from other histogram object
>> 79       PerfHistogram(const PerfHistogram &other)
>> 80           : m_axes_config(other.m_axes_config) {
>> 81         int64_t size = get_raw_size();
>> /home/brad/working/src/ceph/src/common/perf_histogram.h: 76 in
>> PerfHistogram<(int)2>::PerfHistogram(std::initializer_list<PerfHistogramCommon::axis_config_d>)()
>> 70                  "Quantization unit must be non-zero positive integer
>> value");
>> 71
>> 72           m_axes_config[i++] = ac;
>> 73         }
>> 74
>> 75         m_rawData.reset(new atomic64_t[get_raw_size()]);
>> >>>     CID 1400670:    (UNINIT_CTOR)
>> >>>     Non-static class member field "m_axes_config.m_buckets" is not
>> >>> initialized in this constructor nor in any functions that it calls.
>> 76       }
>> 77
>> 78       /// Copy from other histogram object
>> 79       PerfHistogram(const PerfHistogram &other)
>> 80           : m_axes_config(other.m_axes_config) {
>> 81         int64_t size = get_raw_size();
>>
>>
>>
>> ________________________________________________________________________________________________________
>> To view the defects in Coverity Scan visit,
>> https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRaGCnxtQO9E3gxlB2GxVsWFENryh7bC5hIb-2FQBVM85YLQ-3D-3D_2sw0G7ICm9mxCh1lYW1t9y1lfDrIerWzLwB67LZ-2Bn8H4KF1IlXLD-2BqrKefpd88Z5Qn-2BCdL-2Fafidv7i7JbWnbYk2XkuOyRjm7mXKjIHSkA92ObTvjIEq-2B5i2MmktPXrNNvXGakHrXTM3wVp3hqJlVTnu2NfhoRcCwEL0hTK4iUF8mfcRFEYXJ8-2BPbpX9ipo3XzvQgcITqg6E1Pr7dF9-2B7jr50RALwBCrj2W3qAey0ubs-3D
>>
>> To manage Coverity Scan email notifications for
>> "ceph-devel@vger.kernel.org", click
>> https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRbVDbis712qZDP-2FA8y06Nq4Bco8jcmzhh7FSyvoR0E3-2BDgRcBCQ6OuthHBtaTCGNq9zoLsiw8NWrIF2zsdhfTt-2FbHjZ2ToL3Et9v1-2BrDLungAOjHpQtOY-2BsyLiTVCQEUCU-3D_2sw0G7ICm9mxCh1lYW1t9y1lfDrIerWzLwB67LZ-2Bn8H4KF1IlXLD-2BqrKefpd88Z5Qn-2BCdL-2Fafidv7i7JbWnbYj3UFll0kLEXj1l8hL4GuqmBx-2FvovAjGpFTlH-2FaIcjDnBBxKBJTwcEG4iy7vZfeeugTV1lawq4rA-2BeUmFeCA-2FFXIX2wyMhco9kl6-2BRDnMz1sgDM7n0Ea67Ff92t-2B9rYiCTqGkRx16OZcOHkIZM-2B-2FPaw-3D
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
>
>
> --
> Regards
> Kefu Chai



-- 
Regards
Kefu Chai

  parent reply	other threads:[~2017-02-17  5:19 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-17  2:29 New Defects reported by Coverity Scan for ceph scan-admin
     [not found] ` <CAJE9aOMoxWjhq=g+25hfhMhxSCnHAOwAyNhXvkxS1wwBEd3j+A@mail.gmail.com>
2017-02-17  5:19   ` kefu chai [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-08-20 12:22 scan-admin
2022-08-20 13:17 ` Jeff Layton
2022-08-22  3:54   ` Brad Hubbard
2022-08-23 12:52     ` Jeff Layton
2018-01-04  3:32 scan-admin
2017-12-28  1:57 scan-admin
2017-12-21  1:54 scan-admin
2017-12-21  3:34 ` Jos Collin
2017-12-21  4:03   ` Brad Hubbard
2017-12-14  6:49 scan-admin
2017-12-01  2:25 scan-admin
2017-11-23  0:19 scan-admin
2017-11-16 11:35 scan-admin
2017-11-09 11:36 scan-admin
2017-11-02  2:11 scan-admin
2017-10-27  0:31 scan-admin
2017-10-19  3:54 scan-admin
2017-10-12  5:54 scan-admin
2017-10-05  5:08 scan-admin
2017-09-28  5:09 scan-admin
2017-09-21  6:44 scan-admin
2017-09-14  7:19 scan-admin
2017-09-07  5:08 scan-admin
2017-08-31  6:39 scan-admin
2017-08-24 23:32 scan-admin
2017-08-17  3:29 scan-admin
2017-08-10  3:50 scan-admin
2017-08-03  4:57 scan-admin
2017-07-27  3:50 scan-admin
2017-07-28 18:42 ` Gregory Farnum
2017-07-28 22:22   ` Brad Hubbard
2017-07-20  4:08 scan-admin
2017-07-13  5:11 scan-admin
2017-07-06  5:03 scan-admin
2017-06-29  4:08 scan-admin
2017-06-22  4:27 scan-admin
2017-06-15  9:50 scan-admin
2017-06-11 23:46 scan-admin
2017-06-01  4:33 scan-admin
2017-05-25  6:22 scan-admin
2017-05-18  1:44 scan-admin
2017-05-11  5:32 scan-admin
2017-05-04  2:45 scan-admin
2017-04-27  2:22 scan-admin
2017-04-20  5:34 scan-admin
2017-04-13  6:25 scan-admin
2017-04-06  9:40 scan-admin
2017-03-31  1:25 scan-admin
2017-03-23  7:58 scan-admin
2017-03-16  7:37 scan-admin
2017-03-09  6:12 scan-admin
2017-03-02  7:44 scan-admin
2017-02-23  9:09 scan-admin
2017-02-05 10:08 scan-admin
2017-01-27 13:22 scan-admin
2017-01-17  3:01 scan-admin
2017-01-09 10:05 scan-admin
2016-12-30  8:33 scan-admin
2016-12-23  9:16 scan-admin
2016-12-16  8:54 scan-admin
2016-12-09 11:29 scan-admin
2016-12-02 11:08 scan-admin
2016-11-25  7:55 scan-admin
2016-03-19 17:58 scan-admin
2016-03-13 17:40 scan-admin
2016-03-12 18:04 scan-admin
2016-03-05 17:55 scan-admin
2016-03-07 20:59 ` Gregory Farnum
2016-02-27 18:07 scan-admin
2016-02-20 18:26 scan-admin
2016-02-18 20:32 scan-admin
2016-02-13 17:47 scan-admin
2016-02-11 17:57 scan-admin
2016-02-11 22:01 ` Gregory Farnum
2016-02-12 16:36   ` Adam C. Emerson
2016-02-04 20:39 scan-admin
2016-02-03 20:40 scan-admin
2015-05-02 14:37 scan-admin
2015-01-21  1:41 scan-admin
2015-01-16 14:39 scan-admin
2015-01-16 15:17 ` Gregory Farnum
2015-01-16 16:00   ` John Spray
2015-01-16 16:08   ` Sage Weil
     [not found] <54b528bef1f63_1b74f3532c63410@scan.coverity.com.mail>
2015-01-13 14:34 ` Sage Weil
2015-01-13 14:16 scan-admin
2015-01-10 14:36 scan-admin
2015-01-10 15:48 ` Haomai Wang
2015-01-09 14:30 scan-admin
2015-01-09 15:26 ` Sage Weil
2015-01-09 15:32   ` Danny Al-Gaaf
2015-01-04 14:14 scan-admin
2014-12-27 14:13 scan-admin
2014-12-28  6:03 ` Sage Weil
2014-12-26 14:19 scan-admin
2014-12-23 14:37 scan-admin
2014-12-21 14:13 scan-admin
2014-12-18 14:19 scan-admin
2014-12-14 14:17 scan-admin
2014-12-07 20:36 scan-admin
2014-12-05 14:11 scan-admin
2014-12-02 14:09 scan-admin
2014-11-25 14:09 scan-admin
2014-11-23 14:08 scan-admin
2014-11-20 14:20 scan-admin
2014-11-14 14:21 scan-admin
2014-11-13 14:21 scan-admin
2014-11-11 20:40 scan-admin
2014-11-09 14:12 scan-admin
2014-10-30 13:19 scan-admin
2014-10-30 16:08 ` Sage Weil
2014-10-28 13:16 scan-admin
2014-10-28 18:26 ` Danny Al-Gaaf
2014-10-26 13:17 scan-admin
2014-10-24 17:55 scan-admin
2014-10-24 17:59 ` Sage Weil
2014-10-17 13:27 scan-admin
2014-10-09 13:23 scan-admin
2014-10-02 13:21 scan-admin
2014-09-25 13:18 scan-admin
2014-09-16 21:40 scan-admin
2014-08-16 21:31 scan-admin
2014-08-09 15:30 scan-admin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAJE9aOOJ_beE6DgybWO2Rhb=Qkt1zOVsXPwExHNX4MGtf6bLQA@mail.gmail.com' \
    --to=tchaikov@gmail.com \
    --cc=ceph-devel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.