ceph/src
Ma, Jianpeng 9061988ec7 osd: init local_connection for fast_dispatch in _send_boot()
We were not properly setting up Sessions on the local_connection for
fast_dispatch'ed Messages if the cluster_addr was set explicitly: the OSD
was not in the dispatch list at bind() time (in ceph_osd.cc), and nothing
called it later on. This issue was missed in testing because Inktank only
uses unified NICs.

That led to errors like the following:

When do ec-read, i met a bug which was occured 100%. The messages are:
2014-07-14 10:03:07.318681 7f7654f6e700 -1 osd/OSD.cc: In function
'virtual void OSD::ms_fast_dispatch(Message*)' thread 7f7654f6e700 time
2014-07-14 10:03:07.316782 osd/OSD.cc: 5019: FAILED assert(session)

 ceph version 0.82-585-g79f3f67 (79f3f67491)
 1: (OSD::ms_fast_dispatch(Message*)+0x286) [0x6544b6]
 2: (DispatchQueue::fast_dispatch(Message*)+0x56) [0xb059d6]
 3: (DispatchQueue::run_local_delivery()+0x6b) [0xb08e0b]
 4: (DispatchQueue::LocalDeliveryThread::entry()+0xd) [0xa4a5fd]
 5: (()+0x8182) [0x7f7665670182]
 6: (clone()+0x6d) [0x7f7663a1130d]
 NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.

To resolve this, we have the OSD invoke ms_handle_fast_connect() explicitly
in send_boot(). It's not really an appropriate location, but we're already
doing a bunch of messenger twiddling there, so it's acceptable for now.

Signed-off-by: Ma Jianpeng <jianpeng.ma@intel.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
2014-07-21 13:13:44 -07:00
..
arch
auth
bash_completion
brag remove unused variables, gets all tox envs passing 2014-05-28 11:54:32 -04:00
civetweb@438a4d0f58
client Fix mismatched tags (struct vs. class) inconsistency 2014-07-21 17:09:17 +02:00
cls [werror] Fix c++11-compat-reserved-user-defined-literal 2014-07-03 00:43:32 +02:00
common Merge pull request #2111 from ceph/wip-8174 2014-07-20 14:21:09 -07:00
crush crush: include CRUSH_V3, v2/v3 rules checks in dump_tunables() 2014-07-11 06:58:57 -07:00
doc
erasure-code erasure-code: remove jerasure internals dependencies 2014-06-12 23:36:27 +02:00
global
gtest
include Fix mismatched tags (struct vs. class) inconsistency 2014-07-21 17:09:17 +02:00
java cephfs-java: build against older jni headers 2014-05-21 21:41:26 -07:00
jobs
json_spirit
key_value_store kv_flat_btree_async.cc: remove consecutive break after return 2014-06-05 00:34:08 +02:00
librados Merge branch 'wip-libradosstriper' 2014-06-06 18:13:11 -07:00
libradosstriper Merge pull request #2035 from ceph/wip-da-SCA-20140623 2014-06-26 12:43:08 -07:00
librbd librbd/internal.cc: check earlier for null pointer 2014-06-04 23:22:18 +02:00
libs3@dcf98ff04b libs3: update to latest git master of ceph/libs3 2014-06-04 22:38:17 +02:00
log [RGW, memory leak] Memory leak in RGW has been fixed: deletion of allocated pointer to pointer to Log object has been added to "on_exit" handler. 2014-06-29 22:26:25 +04:00
mds mds: fix journal reformat failure in standbyreplay 2014-07-18 18:40:51 +01:00
messages Fix size of network protocol intergers. 2014-07-15 16:56:18 -04:00
mon Merge pull request #2121 from ceph/wip-dencoder 2014-07-21 13:10:02 -07:00
mount mount.ceph.c: fix strdup related memory leak 2014-06-26 04:40:09 +02:00
msg msg: debug refs on incoming Messages 2014-07-03 14:28:26 -07:00
objclass
objsync
ocf
os Merge pull request #2121 from ceph/wip-dencoder 2014-07-21 13:10:02 -07:00
osd osd: init local_connection for fast_dispatch in _send_boot() 2014-07-21 13:13:44 -07:00
osdc osdc: refactor JOURNAL_FORMAT_* constants to enum 2014-07-18 18:40:51 +01:00
perfglue
pybind Merge pull request #1869 from ceph/wip-pybind-timeout 2014-06-03 15:32:38 -07:00
rbd_fuse
rgw Merge pull request #2121 from ceph/wip-dencoder 2014-07-21 13:10:02 -07:00
script scripts/run-coverity: don't explicitly specify tool version 2014-05-31 08:13:48 -07:00
test Merge pull request #2121 from ceph/wip-dencoder 2014-07-21 13:10:02 -07:00
tools crushtool: Send output to stdout instead of stderr 2014-07-18 20:18:18 +02:00
upstart
.gitignore gitignore: Add cephfs-journal-tool 2014-05-20 14:07:49 +01:00
btrfs_ioc_test.c
ceph_common.sh init-ceph: continue after failure doing osd data mount 2014-06-08 20:18:49 -07:00
ceph_fuse.cc
ceph_mds.cc tools: Create cephfs-journal-tool 2014-05-20 14:07:49 +01:00
ceph_mon.cc ceph-mon: override 'leveldb_*' config options for the monitor 2014-06-23 21:59:13 +01:00
ceph_osd.cc osd: remove OSD-specific leveldb options 2014-06-23 22:41:35 +01:00
ceph_syn.cc
ceph_ver.c
ceph-clsinfo
ceph-coverage.in
ceph-create-keys
ceph-crush-location.in
ceph-debugpack.in
ceph-disk set the default log level to WARNING 2014-07-16 11:11:01 -04:00
ceph-disk-activate
ceph-disk-prepare
ceph-disk-udev
ceph-post-file.in
ceph-rbdnamer
ceph-rest-api
ceph-run
ceph.conf.twoosds
ceph.in ceph.in: handle DYLD_LIBRARY_PATH on OS X 2014-06-29 17:31:15 +01:00
cephfs.cc cephfs: pool safety & print deprecation warning 2014-07-15 12:45:34 +01:00
check_version
cls_acl.cc
cls_crypto.cc
cmonctl
fetch_config
init-ceph.in init-ceph: wrap daemon startup with systemd-run when running under systemd 2014-07-15 18:11:41 -07:00
init-radosgw
init-radosgw.sysv
init-rbdmap rbdmap: per-device post-map/pre-unmap hooks 2014-07-12 06:17:22 +10:00
krbd.cc krbd: rework the unmap retry loop 2014-06-30 12:59:34 +04:00
libcephfs.cc
librados-config.cc
loadclass.sh
logrotate.conf
make_version
Makefile-env.am libosd_types, libos_types, libmon_types 2014-07-18 22:33:42 -07:00
Makefile.am autotools: avoid check_SCRIPTS duplication 2014-06-19 09:54:32 +02:00
mount.fuse.ceph
multi-dump.sh
ps-ceph.pl
push_to_qemu.pl
rbd.cc rbd.cc: Check io-size avoid floating point exception. 2014-07-10 17:59:18 -07:00
rbdmap
README
sample.ceph.conf sample.ceph.conf: minor update 2014-05-16 20:30:29 +10:00
stop.sh
TODO
unittest_bufferlist.sh
valgrind.supp
verify-mds-journal.sh
vstart.sh vstart.sh: default to 3 osds 2014-07-16 17:46:11 -07:00
yasm-wrapper

Sage Weil <sage@newdream.net>
Ceph - scalable distributed storage system