]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rbd-nbd: not abort in listing mapped nbd devices
authorLi Wang <laurence.liwang@gmail.com>
Wed, 1 Nov 2017 06:31:10 +0000 (06:31 +0000)
committerShinobu Kinjo <shinobu@redhat.com>
Mon, 20 Nov 2017 20:06:01 +0000 (05:06 +0900)
commit210b826ff06fd145f730e2b5303e6472d82fd8e5
tree645d7622d86c3e39a459aee704387f9ab977f091
parent5c9b93dadd8f05b1a146e3a19f7480ae4019815f
rbd-nbd: not abort in listing mapped nbd devices

In some container scenarios, the file '/sys/block/nbd0/pid'
in the container records the host pid of the process
which opened the device, therefore the file '/proc/pid/cmdline'
corresponding to the pid in the container does not exist,
in that case, 'rbd-nbd list-mapped' will cause the
following assertion failure, this patch fixes it.

src/tools/rbd_nbd/rbd-nbd.cc: In function 'int get_mapped_info(int, Config*)'
/src/tools/rbd_nbd/rbd-nbd.cc: 834: FAILED assert(ifs.is_open())
 ceph version 13.0.0-1632-gf9cfe84 (f9cfe843a1c749d145b6c3b81a0519cc6536eb28) mimic (dev)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x102) [0x7fc6b1054ba2]
 2: (()+0x15c58) [0x560cd4697c58]
 3: (main()+0x9) [0x560cd46937f9]
 4: (__libc_start_main()+0xf0) [0x7fc6b003f830]
 5: (_start()+0x29) [0x560cd46938f9]
 NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
Aborted (core dumped)

Fixes: http://tracker.ceph.com/issues/22011
Signed-off-by: Li Wang <laurence.liwang@gmail.com>
(cherry picked from commit 07d5b81b57f17696f4f693225fcb5a1f7060e9d9)
src/tools/rbd_nbd/rbd-nbd.cc