AsyncMessenger: Eating up pipe buffer for waking up

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncMessenger: Release connection if stopped

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncMessenger: Normalise log informations

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncMessenger: Try send in queue bufferlist

If previous try_send failed to send all buffers, it will create write event
for next write. But if the message queue is empty and no need to send
in_seq_acked, handle_write will skip to send and in this condition buffers
in queue won't be send forever.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncMessenger: Fix large bufferlist send segment fault

If send long bufferlist exceed IOV_LEN(1024), try_send will stuck in looping
send the first IOV_LEN(1024) ptrs and raise segment fault.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
msg/simple: ms_die_on_skipped_message

Assert if we skip an incoming seq.  The SimpleMessenger never does this,
but the kernel messenger does.  Hopefully useful for tracking down bugs
like #10057.

Signed-off-by: Sage Weil <sage@redhat.com>
librados: Fix operator= null ptr references

Fixes: #10082

dzafman-2014-11-13_10:42:58-rgw-wip-10082-testing-basic-multi

Reviewed-by: Sage Weil <sage@redhat.com>
Signed-off-by: David Zafman <dzafman@redhat.com>
osd/ReplicatedPG: allow whiteout deletion with IGNORE_CACHE flag

If the client specifies IGNORE_CACHE, allow a regular DELETE to zap a
whiteout.  Expand test case to verify this works.

Signed-off-by: Sage Weil <sage@redhat.com>
ceph_test_rados_api_tier: fix cleanup of whiteouts

Doing a normal DELETE on a whiteout returns ENOENT.  Use the IGNORE_CACHE
flag to make sure it removes the whiteout, too.

Fixes: #10052
Signed-off-by: Sage Weil <sage@redhat.com>
Merge pull request #2916 from ceph/wip-10057

msg/simple: ms_die_on_skipped_message

Reviewed-by: Greg Farnum <greg@inktank.com>
messages: MForward: stash auth entity name

This will allow us to assess the entity name, used during auth, for a
forwarded request, which is otherwise unavailable to the receiving
party.

Fixes: #9913 (partially)
Backport: giant

Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
mon: Monitor: stash auth entity name in session

Backport: giant

Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
mon: Monitor: forward session entity name to leader

And populate mock session (for forwarded request) with forwarded entity
name.

Backport: giant

Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
mon: Monitor: use session's entity name for audit log

Fixes: #9913
Backport: giant

Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
Merge pull request #2944 from ceph/wip-9913

mon: auth entity name for forwarded messages

Reviewed-by: Sage Weil <sage@redhat.com>
librbd: protect list_children from invalid child pool IoCtxs

While listing child images, don't ignore error codes returned
from librados when creating an IoCtx. This will prevent seg
faults from occurring when an invalid IoCtx is used.

Fixes: #10123
Backport: giant, firefly, dumpling
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
KeyValueStore: Add KEY_ENDING sign to the end of key

Keys stored in alphabetical order and need to follow ghobject_t comparison
rule. "generation" and "shard_id" are optional fields for object key, but
a default ghobject with UINT64_MAX generation(by default) will larger than
the same ghobject with other generation. GenericObjectMap rejects to store
generation if generation is UINT64_MAX in order to reduce too much words
in key. So we need to add a MAX sign to the end of key to make ordering
is same with ghobject's comparison rule.

For example:

_GHOBJTOSEQ_:1%e1ds0_head!D168A7E8!!1!!benchmark_last_metadata!head
_GHOBJTOSEQ_:1%e1ds0_head!D168A7E8!!1!!benchmark_last_metadata!head!78!0

The first key should larger than the second in ghobject_t ordering because
of generation. But the first key less than the second in GenericObjectMap.

_GHOBJTOSEQ_:1%e1ds0_head!D168A7E8!!1!!benchmark_last_metadata!head
_GHOBJTOSEQ_:1%e1ds0_head!D168A7E8!!1!!benchmark_last_metadata!head!78!0

After we add KEY_ENDING, '!' is (21) in hexadecimal:

_GHOBJTOSEQ_:1%e1ds0_head!D168A7E8!!1!!benchmark_last_metadata!head(21)78!0(FF)
_GHOBJTOSEQ_:1%e1ds0_head!D168A7E8!!1!!benchmark_last_metadata!head(FF)

Fix bug #10119
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
StoreTest: Add scrub situation to tests

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Merge pull request #2926 from ceph/wip-10052

ceph_test_rados_api_tier: fix whiteout cleanup (10052)

Reviewed-by: Samuel Just <sjust@redhat.com>
osd: deep scrub must not abort if hinfo is missing

Instead it should set read_error.

http://tracker.ceph.com/issues/10018 Fixes: #10018

Signed-off-by: Loic Dachary <loic-201408@dachary.org>