|
[root@localhost ~]# cd /etc/ceph/
|
|
[root@localhost ceph]# vim
|
|
adminkeyring.bin ceph.conf
|
|
[root@localhost ceph]# vim ceph.conf
|
|
[root@localhost ceph]# vim ceph.conf
|
|
[root@localhost ceph]# grep "registered '" /var/log *
|
|
[root@localhost ceph]# grep "registered" /var/log *
|
|
[root@localhost ceph]# grep "registered" /ceph/ *
|
|
[root@localhost ceph]#
|
|
[root@localhost ceph]# ls
|
|
adminkeyring.bin ceph.conf
|
|
[root@localhost ceph]# ls /
|
|
bin core.10082 core.10114 core.10135 core.10163 lib null selinux var
|
|
boot core.10084 core.10118 core.10145 core.10165 lib64 opt srv
|
|
ceph core.10095 core.10120 core.10148 dev lost+found proc sys
|
|
cgroup core.10100 core.10130 core.10150 etc media root tmp
|
|
core.10078 core.10102 core.10133 core.10160 home mnt sbin usr
|
|
[root@localhost ceph]# cd /root/d
|
|
dmesg.ceph dmesg.txt downloadsda3/
|
|
[root@localhost ceph]# cd /root/
|
|
anaconda-ks.cfg Desktop/ .ICEauthority rpmbuild/
|
|
.bash_history dmesg.ceph .imsettings.log .setroubleshoot
|
|
.bash_logout dmesg.txt install.log .ssh/
|
|
.bash_profile downloadsda3/ install.log.syslog .subversion/
|
|
.bashrc .esd_auth .lesshst .tcshrc
|
|
.cache/ .gconf/ .local/ .viminfo
|
|
cconf-error.txt .gconfd/ .mozilla/ .xauth7hlROR
|
|
ceph.txt .gnome2/ .nautilus/ .xsession-errors
|
|
.config/ .gnome2_private/ project/ .xsession-errors.old
|
|
config.log .gstreamer-0.10/ .pulse/
|
|
.cshrc .gtk-bookmarks .pulse-cookie
|
|
.dbus/ .gvfs/ .recently-used.xbel
|
|
[root@localhost ceph]# cd /root/
|
|
[root@localhost ~]#
|
|
|
|
|
|
|
|
[root@localhost ~]# ls
|
|
anaconda-ks.cfg ceph.txt Desktop dmesg.txt install.log project
|
|
cconf-error.txt config.log dmesg.ceph downloadsda3 install.log.syslog rpmbuild
|
|
[root@localhost ~]# cd project/
|
|
[root@localhost project]# ls
|
|
core.27087 core.27156 core.cconf.6685 list list.cpp
|
|
[root@localhost project]# mkdir list
|
|
mkdir: cannot create directory `list': File exists
|
|
[root@localhost project]# ls
|
|
core.27087 core.27156 core.cconf.6685 list list.cpp
|
|
[root@localhost project]# ls -l
|
|
total 2276
|
|
-rw------- 1 root root 536576 Jan 27 10:45 core.27087
|
|
-rw------- 1 root root 1327104 Jan 27 11:27 core.27156
|
|
-rw------- 1 root root 1777664 Jan 27 13:44 core.cconf.6685
|
|
-rwxrwxr-x 1 root root 42389 Jan 27 11:01 list
|
|
-rw-r--r-- 1 root root 357 Jan 27 11:01 list.cpp
|
|
[root@localhost project]# mkdir list
|
|
mkdir: cannot create directory `list': File exists
|
|
[root@localhost project]# mkdir listd
|
|
[root@localhost project]# mv core.* list list.cpp listd/
|
|
[root@localhost project]#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[root@localhost project]# ls
|
|
listd
|
|
[root@localhost project]# mkdir cconf
|
|
[root@localhost project]# cd co
|
|
bash: cd: co: No such file or directory
|
|
[root@localhost project]# cd cconf/
|
|
[root@localhost cconf]# ulimit -a
|
|
core file size (blocks, -c) 0
|
|
data seg size (kbytes, -d) unlimited
|
|
scheduling priority (-e) 0
|
|
file size (blocks, -f) unlimited
|
|
pending signals (-i) 7902
|
|
max locked memory (kbytes, -l) 64
|
|
max memory size (kbytes, -m) unlimited
|
|
open files (-n) 1024
|
|
pipe size (512 bytes, -p) 8
|
|
POSIX message queues (bytes, -q) 819200
|
|
real-time priority (-r) 0
|
|
stack size (kbytes, -s) 8192
|
|
cpu time (seconds, -t) unlimited
|
|
max user processes (-u) 1024
|
|
virtual memory (kbytes, -v) unlimited
|
|
file locks (-x) unlimited
|
|
[root@localhost cconf]# ulimit -c unlimited
|
|
[root@localhost cconf]#
|
|
|
|
|
|
|
|
[root@localhost cconf]# ls
|
|
[root@localhost cconf]# gdb /usr/bin/cconf
|
|
GNU gdb (GDB) Fedora (7.2-16.fc14)
|
|
Copyright (C) 2010 Free Software Foundation, Inc.
|
|
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
|
This is free software: you are free to change and redistribute it.
|
|
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
|
|
and "show warranty" for details.
|
|
This GDB was configured as "x86_64-redhat-linux-gnu".
|
|
For bug reporting instructions, please see:
|
|
<http://www.gnu.org/software/gdb/bugs/>...
|
|
Reading symbols from /usr/bin/cconf...Reading symbols from /usr/lib/debug/usr/bin/cconf.debug...done.
|
|
done.
|
|
(gdb) quit
|
|
[root@localhost cconf]# cd /root/downloadsda3/ceph-0.24.2/src/
|
|
[root@localhost src]# ls
|
|
acconfig.h librados_a-ConfUtils.o
|
|
acconfig.h.in librados_a-Crypto.o
|
|
Ager.o librados_a-debug.o
|
|
AnchorClient.o librados_a-dyn_snprintf.o
|
|
AnchorServer.o librados_a-errno.o
|
|
armor.o librados_a-ExportControl.o
|
|
assert.o librados_a-Finisher.o
|
|
auth librados_a-KeyRing.o
|
|
AuthAuthorizeHandler.o librados_a-librados.o
|
|
AuthClientHandler.o librados_a-lockdep.o
|
|
AuthMonitor.o librados_a-LogClient.o
|
|
AuthNoneAuthorizeHandler.o librados_a-Logger.o
|
|
AuthServiceHandler.o librados_a-MDSMap.o
|
|
AuthSupported.o librados_a-MemoryModel.o
|
|
BackTrace.o librados_a-Message.o
|
|
buffer.o librados_a-MonClient.o
|
|
builder.o librados_a-MonMap.o
|
|
cauthtool librados_a-msg_types.o
|
|
cauthtool.cc librados_a-Objecter.o
|
|
cauthtool.o librados_a-OSDMap.o
|
|
cclass librados_a-page.o
|
|
cclass.in librados_a-RotatingKeyRing.o
|
|
cclsinfo librados_a-sctp_crc32.o
|
|
cconf librados_a-signal.o
|
|
cconf.cc librados_a-SimpleMessenger.o
|
|
cconf.o librados_a-str_list.o
|
|
cdebugpack librados_a-Timer.o
|
|
cdebugpack.in librados_a-tls.o
|
|
CDentry.o librados_a-WorkQueue.o
|
|
CDir.o librados.cc
|
|
ceph libradosgw.a
|
|
ceph-ceph.o librados.la
|
|
ceph_common.sh librados_la-armor.lo
|
|
ceph_frag.o librados_la-armor.o
|
|
cephfs librados_la-assert.lo
|
|
cephfs.cc librados_la-assert.o
|
|
ceph_fs.o librados_la-AuthAuthorizeHandler.lo
|
|
cephfs.o librados_la-AuthAuthorizeHandler.o
|
|
ceph-gui.o librados_la-AuthClientHandler.lo
|
|
ceph_hash.o librados_la-AuthClientHandler.o
|
|
ceph-SimpleMessenger.o librados_la-AuthNoneAuthorizeHandler.lo
|
|
ceph_strings.o librados_la-AuthNoneAuthorizeHandler.o
|
|
ceph_ver.c librados_la-AuthSupported.lo
|
|
ceph_ver.h librados_la-AuthSupported.o
|
|
ceph_ver.o librados_la-BackTrace.lo
|
|
CephxAuthorizeHandler.o librados_la-BackTrace.o
|
|
CephxClientHandler.o librados_la-buffer.lo
|
|
CephxKeyServer.o librados_la-buffer.o
|
|
CephxProtocol.o librados_la-ceph_frag.lo
|
|
CephxServiceHandler.o librados_la-ceph_frag.o
|
|
cfuse librados_la-ceph_fs.lo
|
|
cfuse.cc librados_la-ceph_fs.o
|
|
cfuse-cfuse.o librados_la-ceph_hash.lo
|
|
cfuse-fuse_ll.o librados_la-ceph_hash.o
|
|
cfuse-fuse.o librados_la-ceph_strings.lo
|
|
cfuse-SimpleMessenger.o librados_la-ceph_strings.o
|
|
check_version librados_la-ceph_ver.lo
|
|
CInode.o librados_la-ceph_ver.o
|
|
ClassHandler.o librados_la-CephxAuthorizeHandler.lo
|
|
ClassLibrary.o librados_la-CephxAuthorizeHandler.o
|
|
ClassMonitor.o librados_la-CephxClientHandler.lo
|
|
client librados_la-CephxClientHandler.o
|
|
Client.o librados_la-CephxProtocol.lo
|
|
Clock.o librados_la-CephxProtocol.o
|
|
cls_acl.cc librados_la-ClassLibrary.lo
|
|
cls_crypto.cc librados_la-ClassLibrary.o
|
|
cls_rbd.cc librados_la-Clock.lo
|
|
cmds librados_la-Clock.o
|
|
cmds.cc librados_la-common_init.lo
|
|
cmds-cmds.o librados_la-common_init.o
|
|
cmds-SimpleMessenger.o librados_la-config.lo
|
|
cmon librados_la-config.o
|
|
cmon.cc librados_la-ConfUtils.lo
|
|
cmon.o librados_la-ConfUtils.o
|
|
cm.txt librados_la-Crypto.lo
|
|
common librados_la-Crypto.o
|
|
common_init.o librados_la-debug.lo
|
|
config.cc librados_la-debug.o
|
|
config.h librados_la-dyn_snprintf.lo
|
|
config.o librados_la-dyn_snprintf.o
|
|
ConfUtils.o librados_la-errno.lo
|
|
cosd librados_la-errno.o
|
|
cosd.cc librados_la-ExportControl.lo
|
|
cosd-class_api.o librados_la-ExportControl.o
|
|
cosd-class_debug.o librados_la-Finisher.lo
|
|
cosd-cosd.o librados_la-Finisher.o
|
|
cosd-SimpleMessenger.o librados_la-KeyRing.lo
|
|
crun librados_la-KeyRing.o
|
|
crush librados_la-librados.lo
|
|
crush.o librados_la-librados.o
|
|
crushtool librados_la-lockdep.lo
|
|
crushtool.cc librados_la-lockdep.o
|
|
crushtool.o librados_la-LogClient.lo
|
|
Crypto.o librados_la-LogClient.o
|
|
csyn librados_la-Logger.lo
|
|
csyn.cc librados_la-Logger.o
|
|
csyn.o librados_la-MDSMap.lo
|
|
debug.o librados_la-MDSMap.o
|
|
Dumper.o librados_la-MemoryModel.lo
|
|
dumpjournal librados_la-MemoryModel.o
|
|
dumpjournal.cc librados_la-Message.lo
|
|
dumpjournal.o librados_la-Message.o
|
|
dupstore librados_la-MonClient.lo
|
|
dupstore.cc librados_la-MonClient.o
|
|
dupstore.o librados_la-MonMap.lo
|
|
dyn_snprintf.o librados_la-MonMap.o
|
|
Elector.o librados_la-msg_types.lo
|
|
errno.o librados_la-msg_types.o
|
|
ExportControl.o librados_la-Objecter.lo
|
|
fetch_config librados_la-Objecter.o
|
|
fiemap.o librados_la-OSDMap.lo
|
|
FileJournal.o librados_la-OSDMap.o
|
|
Filer.o librados_la-page.lo
|
|
FileStore.o librados_la-page.o
|
|
Finisher.o librados_la-RotatingKeyRing.lo
|
|
hash.o librados_la-RotatingKeyRing.o
|
|
include librados_la-sctp_crc32.lo
|
|
init-ceph librados_la-sctp_crc32.o
|
|
init-ceph.in librados_la-signal.lo
|
|
InoTable.o librados_la-signal.o
|
|
Journaler.o librados_la-SimpleMessenger.lo
|
|
JournalingObjectStore.o librados_la-SimpleMessenger.o
|
|
journal.o librados_la-str_list.lo
|
|
KeyRing.o librados_la-str_list.o
|
|
libceph.cc librados_la-Timer.lo
|
|
libceph.la librados_la-Timer.o
|
|
libceph_la-armor.lo librados_la-tls.lo
|
|
libceph_la-armor.o librados_la-tls.o
|
|
libceph_la-assert.lo librados_la-WorkQueue.lo
|
|
libceph_la-assert.o librados_la-WorkQueue.o
|
|
libceph_la-AuthAuthorizeHandler.lo lockdep.o
|
|
libceph_la-AuthAuthorizeHandler.o Locker.o
|
|
libceph_la-AuthClientHandler.lo locks.o
|
|
libceph_la-AuthClientHandler.o LogClient.o
|
|
libceph_la-AuthNoneAuthorizeHandler.lo LogEvent.o
|
|
libceph_la-AuthNoneAuthorizeHandler.o Logger.o
|
|
libceph_la-AuthSupported.lo LogMonitor.o
|
|
libceph_la-AuthSupported.o logrotate.conf
|
|
libceph_la-BackTrace.lo Makefile
|
|
libceph_la-BackTrace.o Makefile.am
|
|
libceph_la-buffer.lo Makefile.in
|
|
libceph_la-buffer.o make_version
|
|
libceph_la-ceph_frag.lo mapper.o
|
|
libceph_la-ceph_frag.o MDBalancer.o
|
|
libceph_la-ceph_fs.lo MDCache.o
|
|
libceph_la-ceph_fs.o MDLog.o
|
|
libceph_la-ceph_hash.lo mds
|
|
libceph_la-ceph_hash.o MDSMap.o
|
|
libceph_la-ceph_strings.lo MDSMonitor.o
|
|
libceph_la-ceph_strings.o MDS.o
|
|
libceph_la-ceph_ver.lo MDSTableClient.o
|
|
libceph_la-ceph_ver.o MDSTable.o
|
|
libceph_la-CephxAuthorizeHandler.lo MDSTableServer.o
|
|
libceph_la-CephxAuthorizeHandler.o MemoryModel.o
|
|
libceph_la-CephxClientHandler.lo Message.o
|
|
libceph_la-CephxClientHandler.o messages
|
|
libceph_la-CephxProtocol.lo Migrator.o
|
|
libceph_la-CephxProtocol.o mkcephfs
|
|
libceph_la-ClassLibrary.lo mkcephfs.in
|
|
libceph_la-ClassLibrary.o mon
|
|
libceph_la-Client.lo MonCaps.o
|
|
libceph_la-Client.o MonClient.o
|
|
libceph_la-Clock.lo Monitor.o
|
|
libceph_la-Clock.o MonitorStore.o
|
|
libceph_la-common_init.lo MonmapMonitor.o
|
|
libceph_la-common_init.o MonMap.o
|
|
libceph_la-config.lo monmaptool
|
|
libceph_la-config.o monmaptool.cc
|
|
libceph_la-ConfUtils.lo monmaptool.o
|
|
libceph_la-ConfUtils.o mount
|
|
libceph_la-Crypto.lo mount.ceph
|
|
libceph_la-Crypto.o mount.ceph.o
|
|
libceph_la-debug.lo msg
|
|
libceph_la-debug.o msg_types.o
|
|
libceph_la-dyn_snprintf.lo objclass
|
|
libceph_la-dyn_snprintf.o ObjectCacher.o
|
|
libceph_la-errno.lo Objecter.o
|
|
libceph_la-errno.o os
|
|
libceph_la-ExportControl.lo osbdb
|
|
libceph_la-ExportControl.o osd
|
|
libceph_la-Filer.lo osdc
|
|
libceph_la-Filer.o OSDCaps.o
|
|
libceph_la-Finisher.lo OSDMap.o
|
|
libceph_la-Finisher.o osdmaptool
|
|
libceph_la-Journaler.lo osdmaptool.cc
|
|
libceph_la-Journaler.o osdmaptool.o
|
|
libceph_la-KeyRing.lo OSDMonitor.o
|
|
libceph_la-KeyRing.o OSD.o
|
|
libceph_la-libceph.lo page.o
|
|
libceph_la-libceph.o Paxos.o
|
|
libceph_la-lockdep.lo PaxosService.o
|
|
libceph_la-lockdep.o PGMonitor.o
|
|
libceph_la-LogClient.lo PG.o
|
|
libceph_la-LogClient.o psim
|
|
libceph_la-Logger.lo psim.cc
|
|
libceph_la-Logger.o psim.o
|
|
libceph_la-MDSMap.lo rados
|
|
libceph_la-MDSMap.o radosacl
|
|
libceph_la-MemoryModel.lo radosacl.cc
|
|
libceph_la-MemoryModel.o radosacl.o
|
|
libceph_la-Message.lo rados.cc
|
|
libceph_la-Message.o radosgw
|
|
libceph_la-MonClient.lo radosgw_admin
|
|
libceph_la-MonClient.o rados.o
|
|
libceph_la-MonMap.lo rbd
|
|
libceph_la-MonMap.o rbd.cc
|
|
libceph_la-msg_types.lo rbd.o
|
|
libceph_la-msg_types.o README
|
|
libceph_la-ObjectCacher.lo ReplicatedPG.o
|
|
libceph_la-ObjectCacher.o rgw
|
|
libceph_la-Objecter.lo rgw_access.o
|
|
libceph_la-Objecter.o rgw_acl.o
|
|
libceph_la-OSDMap.lo rgw_admin.o
|
|
libceph_la-OSDMap.o rgw_common.o
|
|
libceph_la-page.lo rgw_fs.o
|
|
libceph_la-page.o rgw_main.o
|
|
libceph_la-RotatingKeyRing.lo rgw_op.o
|
|
libceph_la-RotatingKeyRing.o rgw_rados.o
|
|
libceph_la-sctp_crc32.lo rgw_rest.o
|
|
libceph_la-sctp_crc32.o rgw_user.o
|
|
libceph_la-signal.lo RotatingKeyRing.o
|
|
libceph_la-signal.o sample.ceph.conf
|
|
libceph_la-SimpleMessenger.lo sample.fetch_config
|
|
libceph_la-SimpleMessenger.o sctp_crc32.o
|
|
libceph_la-str_list.lo Server.o
|
|
libceph_la-str_list.o SessionMap.o
|
|
libceph_la-Timer.lo signal.o
|
|
libceph_la-Timer.o SimpleMessenger.o
|
|
libceph_la-tls.lo snap.o
|
|
libceph_la-tls.o SnapServer.o
|
|
libceph_la-WorkQueue.lo stamp-h1
|
|
libceph_la-WorkQueue.o stop.sh
|
|
libclient.a streamtest
|
|
libcls_rbd.la streamtest.cc
|
|
libcls_rbd_la-cls_rbd.lo streamtest.o
|
|
libcls_rbd_la-cls_rbd.o str_list.o
|
|
libcommon.a SyntheticClient.o
|
|
libcrush.a test
|
|
libcrush.la testceph
|
|
libcrush_la-builder.lo testceph.o
|
|
libcrush_la-builder.o testcrypto
|
|
libcrush_la-crush.lo testcrypto.cc
|
|
libcrush_la-crush.o testcrypto.o
|
|
libcrush_la-hash.lo testencoding
|
|
libcrush_la-hash.o TestEncoding.o
|
|
libcrush_la-mapper.lo test_ioctls
|
|
libcrush_la-mapper.o test_ioctls.o
|
|
libmds.a testkeys
|
|
libmon.a testkeys.cc
|
|
libos.a testkeys.o
|
|
libosd.a testmsgr
|
|
libosdc.a testmsgr.cc
|
|
librados.a testmsgr.o
|
|
librados_a-armor.o testrados
|
|
librados_a-assert.o testrados.c
|
|
librados_a-AuthAuthorizeHandler.o testrados.o
|
|
librados_a-AuthClientHandler.o testradospp
|
|
librados_a-AuthNoneAuthorizeHandler.o testradospp.cc
|
|
librados_a-AuthSupported.o testradospp.o
|
|
librados_a-BackTrace.o testtimers
|
|
librados_a-buffer.o TestTimers.o
|
|
librados_a-ceph_frag.o test_trans
|
|
librados_a-ceph_fs.o test_trans.cc
|
|
librados_a-ceph_hash.o test_trans.o
|
|
librados_a-ceph_strings.o Timer.o
|
|
librados_a-ceph_ver.o tls.o
|
|
librados_a-CephxAuthorizeHandler.o TODO
|
|
librados_a-CephxClientHandler.o tools
|
|
librados_a-CephxProtocol.o Trace.o
|
|
librados_a-ClassLibrary.o verify-mds-journal.sh
|
|
librados_a-Clock.o vstart.sh
|
|
librados_a-common_init.o WorkQueue.o
|
|
librados_a-config.o
|
|
[root@localhost src]# gdb ./cconf
|
|
cconf cconf.cc cconf.o
|
|
[root@localhost src]# gdb ./cconf
|
|
GNU gdb (GDB) Fedora (7.2-16.fc14)
|
|
Copyright (C) 2010 Free Software Foundation, Inc.
|
|
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
|
This is free software: you are free to change and redistribute it.
|
|
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
|
|
and "show warranty" for details.
|
|
This GDB was configured as "x86_64-redhat-linux-gnu".
|
|
For bug reporting instructions, please see:
|
|
<http://www.gnu.org/software/gdb/bugs/>...
|
|
Reading symbols from /root/downloadsda3/ceph-0.24.2/src/cconf...done.
|
|
(gdb) set args -c /etc/ceph/ceph.conf -l mon
|
|
(gdb) break Mutex::Mutex
|
|
Breakpoint 1 at 0x45d023: file ./common/Mutex.h, line 63.
|
|
(gdb) break SafeTimer::SafeTimer
|
|
Breakpoint 2 at 0x48d4bc: file common/Timer.cc, line 51.
|
|
(gdb) break SafeTimer::~SafeTimer
|
|
Breakpoint 3 at 0x48d55a: file common/Timer.cc, line 57.
|
|
(gdb) break SafeTimer::init
|
|
Breakpoint 4 at 0x48d612: file common/Timer.cc, line 62.
|
|
(gdb) break Mutex::~Mutex
|
|
Breakpoint 5 at 0x45d149: file ./common/Mutex.h, line 97.
|
|
(gdb) break Mutex::Lock
|
|
Breakpoint 6 at 0x45a5f2: file common/Mutex.h, line 115.
|
|
(gdb) break Mutex::UnLock
|
|
the class Mutex does not have any method named UnLock
|
|
Hint: try 'Mutex::UnLock<TAB> or 'Mutex::UnLock<ESC-?>
|
|
(Note leading single quote.)
|
|
Make breakpoint pending on future shared library load? (y or [n]) y
|
|
|
|
Breakpoint 7 (Mutex::UnLock) pending.
|
|
(gdb) break Mutex::Unlock
|
|
Breakpoint 8 at 0x4653d9: file ./common/Mutex.h, line 123.
|
|
(gdb) break SafeTimer::shutdown
|
|
Breakpoint 9 at 0x48d6cf: file common/Timer.cc, line 69.
|
|
(gdb) break lockdep_register
|
|
Breakpoint 10 at 0x473b4f: file common/lockdep.cc, line 79.
|
|
(gdb) l
|
|
18
|
|
19 static void usage()
|
|
20 {
|
|
21 cerr << "usage: cconf <-c filename> [-t type] [-i id] [-l|--list_sections <prefix>] [-s <section>] [[-s section] ... ] <key> [default]" << std::endl;
|
|
22 exit(1);
|
|
23 }
|
|
24
|
|
25 int main(int argc, const char **argv)
|
|
26 {
|
|
27 const char *key = NULL, *defval = NULL;
|
|
(gdb)
|
|
28 const char *list_sections = 0;
|
|
29 char *val;
|
|
30 char *section;
|
|
31 int param = 0;
|
|
32 vector<const char*> args, nargs;
|
|
33 deque<const char *> sections;
|
|
34 unsigned i;
|
|
35 std::vector<const char *> empty_args;
|
|
36 char buf[1024];
|
|
37 DEFINE_CONF_VARS(usage);
|
|
(gdb)
|
|
38
|
|
39 argv_to_vec(argc, argv, args);
|
|
40 env_to_vec(args);
|
|
41
|
|
42 if (args.size() < 2)
|
|
43 usage();
|
|
44
|
|
45 FOR_EACH_ARG(args) {
|
|
46 if (CONF_ARG_EQ("type", 't')) {
|
|
47 CONF_SAFE_SET_ARG_VAL(&type, OPT_STR);
|
|
(gdb)
|
|
48 } else if (CONF_ARG_EQ("id", 'i')) {
|
|
49 CONF_SAFE_SET_ARG_VAL(&g_conf.id, OPT_STR);
|
|
50 } else {
|
|
51 nargs.push_back(args[i]);
|
|
52 }
|
|
53 }
|
|
54 args.swap(nargs);
|
|
55
|
|
56 common_set_defaults(false);
|
|
57 common_init(args, type, false);
|
|
(gdb)
|
|
58
|
|
59 FOR_EACH_ARG(args) {
|
|
60 if (CONF_ARG_EQ("list_sections", 'l')) {
|
|
61 CONF_SAFE_SET_ARG_VAL(&list_sections, OPT_STR);
|
|
62 } else if (CONF_ARG_EQ("section", 's')) {
|
|
63 CONF_SAFE_SET_ARG_VAL(§ion, OPT_STR);
|
|
64 sections.push_back(section);
|
|
65 } else if (*args[i] != '-') {
|
|
66 switch (param) {
|
|
67 case 0:
|
|
(gdb)
|
|
68 key = args[i];
|
|
69 break;
|
|
70 case 1:
|
|
71 defval = args[i];
|
|
72 break;
|
|
73 }
|
|
74 param++;
|
|
75 } else {
|
|
76 cerr << "unrecognized argument: " << args[i] << std::endl;
|
|
77 usage();
|
|
(gdb)
|
|
78 }
|
|
79 }
|
|
80
|
|
81 if (!list_sections && (param < 1 || param > 2))
|
|
82 usage();
|
|
83
|
|
84 ConfFile *cf = conf_get_conf_file();
|
|
85
|
|
86 assert(cf);
|
|
87
|
|
(gdb)
|
|
88 if (list_sections) {
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
90 p != cf->get_section_list().end();
|
|
91 p++) {
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
93 cout << (*p)->get_name() << std::endl;
|
|
94 }
|
|
95 return 0;
|
|
96 }
|
|
97
|
|
(gdb) break 95
|
|
Breakpoint 11 at 0x45a0de: file cconf.cc, line 95.
|
|
(gdb) r
|
|
Starting program: /root/downloadsda3/ceph-0.24.2/src/cconf -c /etc/ceph/ceph.conf -l mon
|
|
[Thread debugging using libthread_db enabled]
|
|
|
|
Breakpoint 1, Mutex::Mutex (this=0x6e0ce0, n=0x49d94f "logger_lock", r=false, ld=true, bt=false)
|
|
at ./common/Mutex.h:63
|
|
63 name(n), id(-1), recursive(r), lockdep(ld), backtrace(bt), nlock(0) {
|
|
Missing separate debuginfos, use: debuginfo-install cryptopp-5.6.1-1.fc14.x86_64 glibc-2.12.90-17.x86_64 libgcc-4.5.1-4.fc14.x86_64 libstdc++-4.5.1-4.fc14.x86_64
|
|
(gdb) p lockdep
|
|
$1 = false
|
|
(gdb) p g_lockdep
|
|
$2 = 0
|
|
(gdb) n
|
|
64 if (recursive) {
|
|
(gdb)
|
|
75 else if (lockdep) {
|
|
(gdb)
|
|
82 pthread_mutexattr_init(&attr);
|
|
(gdb)
|
|
83 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
|
|
(gdb)
|
|
84 pthread_mutex_init(&_m, &attr);
|
|
(gdb) n
|
|
85 if (g_lockdep)
|
|
(gdb)
|
|
95 }
|
|
(gdb)
|
|
__static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535)
|
|
at common/Logger.cc:35
|
|
35 SafeTimer logger_timer(logger_lock);
|
|
(gdb) s
|
|
|
|
Breakpoint 2, SafeTimer::SafeTimer (this=0x6e0d20, l=...) at common/Timer.cc:51
|
|
51 stopping(false)
|
|
(gdb) n
|
|
53 }
|
|
(gdb)
|
|
__static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535)
|
|
at common/Logger.cc:37
|
|
37 list<Logger*> logger_list;
|
|
(gdb) n
|
|
38 utime_t start;
|
|
(gdb)
|
|
51 } stopper;
|
|
(gdb)
|
|
400 }
|
|
(gdb) n
|
|
0x0000000000499166 in __do_global_ctors_aux ()
|
|
(gdb)
|
|
Single stepping until exit from function __do_global_ctors_aux,
|
|
which has no line number information.
|
|
|
|
Breakpoint 1, Mutex::Mutex (this=0x6e0b80, n=0x49cd29 "auth_supported_init", r=false, ld=true,
|
|
bt=false) at ./common/Mutex.h:63
|
|
63 name(n), id(-1), recursive(r), lockdep(ld), backtrace(bt), nlock(0) {
|
|
(gdb)
|
|
64 if (recursive) {
|
|
(gdb)
|
|
75 else if (lockdep) {
|
|
(gdb)
|
|
82 pthread_mutexattr_init(&attr);
|
|
(gdb)
|
|
83 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
|
|
(gdb)
|
|
84 pthread_mutex_init(&_m, &attr);
|
|
(gdb)
|
|
85 if (g_lockdep)
|
|
(gdb)
|
|
95 }
|
|
(gdb)
|
|
__static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535)
|
|
at auth/AuthSupported.cc:23
|
|
23 static map<int, bool> auth_supported;
|
|
(gdb)
|
|
54 }
|
|
(gdb) n
|
|
0x0000000000499166 in __do_global_ctors_aux ()
|
|
(gdb)
|
|
Single stepping until exit from function __do_global_ctors_aux,
|
|
which has no line number information.
|
|
|
|
Breakpoint 1, Mutex::Mutex (this=0x6cc1c0, n=0x49ab25 "stringtable::lock", r=false, ld=true,
|
|
bt=false) at ./common/Mutex.h:63
|
|
63 name(n), id(-1), recursive(r), lockdep(ld), backtrace(bt), nlock(0) {
|
|
(gdb)
|
|
64 if (recursive) {
|
|
(gdb)
|
|
75 else if (lockdep) {
|
|
(gdb)
|
|
82 pthread_mutexattr_init(&attr);
|
|
(gdb)
|
|
83 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
|
|
(gdb)
|
|
84 pthread_mutex_init(&_m, &attr);
|
|
(gdb)
|
|
85 if (g_lockdep)
|
|
(gdb)
|
|
95 }
|
|
(gdb) n
|
|
__static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at config.cc:74
|
|
74 static ConfFileDestructor cfd;
|
|
(gdb)
|
|
77 atomic_t _num_threads(0);
|
|
(gdb) n
|
|
93 std::map<entity_name_t,float> g_fake_kill_after;
|
|
(gdb)
|
|
96 md_config_t g_conf;
|
|
(gdb)
|
|
809 static bool g_conf_initialized = init_g_conf();
|
|
(gdb)
|
|
1255 }
|
|
(gdb) n
|
|
0x0000000000499166 in __do_global_ctors_aux ()
|
|
(gdb)
|
|
Single stepping until exit from function __do_global_ctors_aux,
|
|
which has no line number information.
|
|
|
|
Breakpoint 1, Mutex::Mutex (this=0x6c5f40, n=0x49a60b "_dout_lock", r=false, ld=false, bt=false)
|
|
at ./common/Mutex.h:63
|
|
63 name(n), id(-1), recursive(r), lockdep(ld), backtrace(bt), nlock(0) {
|
|
(gdb) n
|
|
64 if (recursive) {
|
|
(gdb) n
|
|
75 else if (lockdep) {
|
|
(gdb)
|
|
93 pthread_mutex_init(&_m, NULL);
|
|
(gdb)
|
|
95 }
|
|
(gdb)
|
|
__static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535)
|
|
at common/debug.cc:31
|
|
31 std::ofstream _dout_out;
|
|
(gdb)
|
|
209 }
|
|
(gdb)
|
|
0x0000000000499166 in __do_global_ctors_aux ()
|
|
(gdb)
|
|
Single stepping until exit from function __do_global_ctors_aux,
|
|
which has no line number information.
|
|
|
|
Breakpoint 1, Mutex::Mutex (this=0x6c5ed0, n=0x499425 "Clock::lock", r=false, ld=true, bt=false)
|
|
at ./common/Mutex.h:63
|
|
63 name(n), id(-1), recursive(r), lockdep(ld), backtrace(bt), nlock(0) {
|
|
(gdb)
|
|
64 if (recursive) {
|
|
(gdb)
|
|
75 else if (lockdep) {
|
|
(gdb)
|
|
82 pthread_mutexattr_init(&attr);
|
|
(gdb)
|
|
83 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
|
|
(gdb)
|
|
84 pthread_mutex_init(&_m, &attr);
|
|
(gdb)
|
|
85 if (g_lockdep)
|
|
(gdb)
|
|
95 }
|
|
(gdb)
|
|
Clock::Clock (this=0x6c5ec0) at ./common/Clock.h:46
|
|
46 }
|
|
(gdb)
|
|
0x0000000000499166 in __do_global_ctors_aux ()
|
|
(gdb)
|
|
Single stepping until exit from function __do_global_ctors_aux,
|
|
which has no line number information.
|
|
0x0000000000458643 in _init ()
|
|
(gdb)
|
|
Single stepping until exit from function _init,
|
|
which has no line number information.
|
|
0x0000000000499095 in __libc_csu_init ()
|
|
(gdb)
|
|
Single stepping until exit from function __libc_csu_init,
|
|
which has no line number information.
|
|
0x0000003716a1ee10 in __libc_start_main () from /lib64/libc.so.6
|
|
(gdb)
|
|
Single stepping until exit from function __libc_start_main,
|
|
which has no line number information.
|
|
|
|
Breakpoint 1, Mutex::Mutex (this=0x6e5ae0, n=0x49ab37 "ExportControl", r=false, ld=true, bt=false)
|
|
at ./common/Mutex.h:63
|
|
63 name(n), id(-1), recursive(r), lockdep(ld), backtrace(bt), nlock(0) {
|
|
(gdb)
|
|
64 if (recursive) {
|
|
(gdb)
|
|
75 else if (lockdep) {
|
|
(gdb)
|
|
82 pthread_mutexattr_init(&attr);
|
|
(gdb)
|
|
83 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
|
|
(gdb)
|
|
84 pthread_mutex_init(&_m, &attr);
|
|
(gdb)
|
|
85 if (g_lockdep)
|
|
(gdb)
|
|
95 }
|
|
(gdb)
|
|
parse_startup_config_options (args=std::vector of length 2, capacity 2 = {...}, module_type=0x0)
|
|
at config.cc:1190
|
|
1190 ec->load(cf);
|
|
(gdb)
|
|
|
|
Breakpoint 6, Mutex::Lock (this=0x6e5ae0, no_lockdep=false) at common/Mutex.h:115
|
|
115 if (lockdep && g_lockdep && !no_lockdep) _will_lock();
|
|
(gdb) p lockdep
|
|
$3 = true
|
|
(gdb) p g_lockdep
|
|
$4 = 0
|
|
(gdb) p no_lockdep
|
|
$5 = false
|
|
(gdb) n
|
|
116 int r = pthread_mutex_lock(&_m);
|
|
(gdb)
|
|
117 if (lockdep && g_lockdep) _locked();
|
|
(gdb) p r
|
|
$6 = 0
|
|
(gdb) n
|
|
118 assert(r == 0);
|
|
(gdb)
|
|
119 nlock++;
|
|
(gdb)
|
|
120 }
|
|
(gdb) p nlock
|
|
$7 = 1
|
|
(gdb) n
|
|
Mutex::Locker::Locker (this=0x7fffffffc940, m=...) at ./common/Mutex.h:140
|
|
140 }
|
|
(gdb) n
|
|
ExportControl::load (this=0x6e5ab0, conf=0x6e6840) at auth/ExportControl.cc:576
|
|
576 int mnt_len = strlen(MOUNT_SEC_NAME);
|
|
(gdb)
|
|
577 int grp_len = strlen(GROUP_SEC_NAME);
|
|
(gdb)
|
|
578 int client_len = strlen(CLIENT_SEC_NAME);
|
|
(gdb)
|
|
579 char *allow_str = NULL;
|
|
(gdb)
|
|
580 char *allow_def = NULL;
|
|
(gdb)
|
|
584 if (!conf)
|
|
(gdb)
|
|
587 ret = conf->read("mount", "allow", &allow_def, EVERYONE);
|
|
(gdb)
|
|
589 for (std::list<ConfSection*>::const_iterator p = conf->get_section_list().begin();
|
|
(gdb) p allow_def
|
|
$8 = 0x6e5860 "0.0.0.0/0"
|
|
(gdb) n
|
|
590 p != conf->get_section_list().end();
|
|
(gdb)
|
|
589 for (std::list<ConfSection*>::const_iterator p = conf->get_section_list().begin();
|
|
(gdb)
|
|
590 p != conf->get_section_list().end();
|
|
(gdb)
|
|
589 for (std::list<ConfSection*>::const_iterator p = conf->get_section_list().begin();
|
|
(gdb)
|
|
593 if (strncmp(MOUNT_SEC_NAME, (*p)->get_name().c_str(), mnt_len) == 0) {
|
|
(gdb)
|
|
622 } else if ((strncmp(GROUP_SEC_NAME, (*p)->get_name().c_str(), grp_len) == 0) ||
|
|
(gdb)
|
|
623 (strncmp(CLIENT_SEC_NAME, (*p)->get_name().c_str(), client_len) == 0)) {
|
|
(gdb)
|
|
622 } else if ((strncmp(GROUP_SEC_NAME, (*p)->get_name().c_str(), grp_len) == 0) ||
|
|
(gdb)
|
|
591 p++) {
|
|
(gdb)
|
|
589 for (std::list<ConfSection*>::const_iterator p = conf->get_section_list().begin();
|
|
(gdb)
|
|
590 p != conf->get_section_list().end();
|
|
(gdb)
|
|
589 for (std::list<ConfSection*>::const_iterator p = conf->get_section_list().begin();
|
|
(gdb)
|
|
590 p != conf->get_section_list().end();
|
|
(gdb)
|
|
589 for (std::list<ConfSection*>::const_iterator p = conf->get_section_list().begin();
|
|
(gdb)
|
|
593 if (strncmp(MOUNT_SEC_NAME, (*p)->get_name().c_str(), mnt_len) == 0) {
|
|
(gdb)
|
|
622 } else if ((strncmp(GROUP_SEC_NAME, (*p)->get_name().c_str(), grp_len) == 0) ||
|
|
(gdb)
|
|
623 (strncmp(CLIENT_SEC_NAME, (*p)->get_name().c_str(), client_len) == 0)) {
|
|
(gdb)
|
|
622 } else if ((strncmp(GROUP_SEC_NAME, (*p)->get_name().c_str(), grp_len) == 0) ||
|
|
(gdb)
|
|
591 p++) {
|
|
(gdb)
|
|
589 for (std::list<ConfSection*>::const_iterator p = conf->get_section_list().begin();
|
|
(gdb) finish
|
|
Run till exit from #0 ExportControl::load (this=0x6e5ab0, conf=0x6e6840)
|
|
at auth/ExportControl.cc:589
|
|
|
|
Breakpoint 6, Mutex::Lock (this=0x6c5f40, no_lockdep=false) at common/Mutex.h:115
|
|
115 if (lockdep && g_lockdep && !no_lockdep) _will_lock();
|
|
(gdb) n
|
|
116 int r = pthread_mutex_lock(&_m);
|
|
(gdb)
|
|
117 if (lockdep && g_lockdep) _locked();
|
|
(gdb)
|
|
118 assert(r == 0);
|
|
(gdb)
|
|
119 nlock++;
|
|
(gdb)
|
|
120 }
|
|
(gdb) p nlock
|
|
$9 = 1
|
|
(gdb) n
|
|
_dout_begin_line () at ./common/debug.h:43
|
|
43 if (_dout_need_open)
|
|
(gdb)
|
|
44 _dout_open_log();
|
|
(gdb)
|
|
45 *_dout << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " ";
|
|
(gdb)
|
|
46 }
|
|
(gdb)
|
|
_dout_begin_line_static () at ./common/debug.h:49
|
|
49 }
|
|
(gdb) n
|
|
operator<< (out=...) at ./common/debug.h:66
|
|
66 return out;
|
|
(gdb)
|
|
67 }
|
|
(gdb)
|
|
2011-01-28 12:26:04.040252 7ffff7fe0740 ** creating new group with no options (everyone)
|
|
|
|
Breakpoint 8, Mutex::Unlock (this=0x6c5f40) at ./common/Mutex.h:123
|
|
123 assert(nlock > 0);
|
|
(gdb)
|
|
124 --nlock;
|
|
(gdb)
|
|
125 if (lockdep && g_lockdep) _will_unlock();
|
|
(gdb)
|
|
126 int r = pthread_mutex_unlock(&_m);
|
|
(gdb)
|
|
127 assert(r == 0);
|
|
(gdb)
|
|
128 }
|
|
(gdb)
|
|
_dout_end_line () at ./common/debug.h:53
|
|
53 }
|
|
(gdb)
|
|
GroupsManager::get_group (this=0x6e0c20, name=0x6e5b36 "everyone") at auth/ExportControl.cc:325
|
|
325 group = new GroupEntry(subnet);
|
|
(gdb)
|
|
326 subnet = NULL;
|
|
(gdb)
|
|
327 groups_map[group_name] = group;
|
|
(gdb)
|
|
328 goto done;
|
|
(gdb)
|
|
346 free(orig_tmp);
|
|
(gdb)
|
|
347 delete subnet;
|
|
(gdb)
|
|
348 return group;
|
|
(gdb)
|
|
349 }
|
|
(gdb)
|
|
ExportControl::load (this=0x6e5ab0, conf=0x6e6840) at auth/ExportControl.cc:636
|
|
636 if (exp)
|
|
(gdb)
|
|
637 exp->init(conf, section, NULL);
|
|
(gdb)
|
|
|
|
Breakpoint 6, Mutex::Lock (this=0x6c5f40, no_lockdep=false) at common/Mutex.h:115
|
|
115 if (lockdep && g_lockdep && !no_lockdep) _will_lock();
|
|
(gdb)
|
|
116 int r = pthread_mutex_lock(&_m);
|
|
(gdb)
|
|
117 if (lockdep && g_lockdep) _locked();
|
|
(gdb)
|
|
118 assert(r == 0);
|
|
(gdb)
|
|
119 nlock++;
|
|
(gdb)
|
|
120 }
|
|
(gdb) p nlock
|
|
$10 = 1
|
|
(gdb) n
|
|
_dout_begin_line () at ./common/debug.h:43
|
|
43 if (_dout_need_open)
|
|
(gdb)
|
|
45 *_dout << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " ";
|
|
(gdb)
|
|
46 }
|
|
(gdb) p _dout_need_open
|
|
$11 = false
|
|
(gdb) n
|
|
_dout_begin_line_static () at ./common/debug.h:49
|
|
49 }
|
|
(gdb)
|
|
operator<< (out=...) at ./common/debug.h:66
|
|
66 return out;
|
|
(gdb)
|
|
67 }
|
|
(gdb)
|
|
2011-01-28 12:27:11.370165 7ffff7fe0740 parse_addr_line str=0.0.0.0/0
|
|
|
|
Breakpoint 8, Mutex::Unlock (this=0x6c5f40) at ./common/Mutex.h:123
|
|
123 assert(nlock > 0);
|
|
(gdb)
|
|
124 --nlock;
|
|
(gdb)
|
|
125 if (lockdep && g_lockdep) _will_unlock();
|
|
(gdb)
|
|
126 int r = pthread_mutex_unlock(&_m);
|
|
(gdb)
|
|
127 assert(r == 0);
|
|
(gdb)
|
|
128 }
|
|
(gdb)
|
|
_dout_end_line () at ./common/debug.h:53
|
|
53 }
|
|
(gdb)
|
|
GroupEntry::parse_addr_line (this=0x6ed100, str=0x6e5b50 "0.0.0.0/0") at auth/ExportControl.cc:201
|
|
201 val = strsep(&s, ", \t");
|
|
(gdb)
|
|
202 if (*val) {
|
|
(gdb)
|
|
203 GroupEntry *group = groups_mgr.get_group(val);
|
|
(gdb) finish
|
|
Run till exit from #0 GroupEntry::parse_addr_line (this=0x6ed100, str=0x6e5b50 "0.0.0.0/0")
|
|
at auth/ExportControl.cc:203
|
|
|
|
Breakpoint 6, Mutex::Lock (this=0x6c5f40, no_lockdep=false) at common/Mutex.h:115
|
|
115 if (lockdep && g_lockdep && !no_lockdep) _will_lock();
|
|
(gdb) n
|
|
116 int r = pthread_mutex_lock(&_m);
|
|
(gdb)
|
|
117 if (lockdep && g_lockdep) _locked();
|
|
(gdb)
|
|
118 assert(r == 0);
|
|
(gdb)
|
|
119 nlock++;
|
|
(gdb)
|
|
120 }
|
|
(gdb)
|
|
_dout_begin_line () at ./common/debug.h:43
|
|
43 if (_dout_need_open)
|
|
(gdb)
|
|
45 *_dout << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " ";
|
|
(gdb)
|
|
46 }
|
|
(gdb)
|
|
_dout_begin_line_static () at ./common/debug.h:49
|
|
49 }
|
|
(gdb)
|
|
operator<< (out=...) at ./common/debug.h:66
|
|
66 return out;
|
|
(gdb)
|
|
67 }
|
|
(gdb) n
|
|
2011-01-28 12:28:05.783551 7ffff7fe0740 Subnet::parse str=0.0.0.0/0
|
|
|
|
Breakpoint 8, Mutex::Unlock (this=0x6c5f40) at ./common/Mutex.h:123
|
|
123 assert(nlock > 0);
|
|
(gdb)
|
|
124 --nlock;
|
|
(gdb)
|
|
125 if (lockdep && g_lockdep) _will_unlock();
|
|
(gdb) p nlock
|
|
$12 = 0
|
|
(gdb) n
|
|
126 int r = pthread_mutex_unlock(&_m);
|
|
(gdb)
|
|
127 assert(r == 0);
|
|
(gdb)
|
|
128 }
|
|
(gdb)
|
|
_dout_end_line () at ./common/debug.h:53
|
|
53 }
|
|
(gdb)
|
|
Subnet::parse (this=0x6e5ca0, str=0x6e5c60 "0.0.0.0/0") at auth/ExportControl.cc:91
|
|
91 orig_str = strdup(str);
|
|
(gdb)
|
|
93 ret = sscanf(str, "%hhd.%hhd.%hhd.%hhd/%s", &ip[0], &ip[1], &ip[2], &ip[3], mask_str);
|
|
(gdb) finish
|
|
Run till exit from #0 Subnet::parse (this=0x6e5ca0, str=0x6e5c60 "0.0.0.0/0")
|
|
at auth/ExportControl.cc:93
|
|
|
|
Breakpoint 6, Mutex::Lock (this=0x6c5f40, no_lockdep=false) at common/Mutex.h:115
|
|
115 if (lockdep && g_lockdep && !no_lockdep) _will_lock();
|
|
(gdb) n
|
|
116 int r = pthread_mutex_lock(&_m);
|
|
(gdb)
|
|
117 if (lockdep && g_lockdep) _locked();
|
|
(gdb)
|
|
118 assert(r == 0);
|
|
(gdb)
|
|
119 nlock++;
|
|
(gdb)
|
|
120 }
|
|
(gdb)
|
|
_dout_begin_line () at ./common/debug.h:43
|
|
43 if (_dout_need_open)
|
|
(gdb)
|
|
45 *_dout << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " ";
|
|
(gdb)
|
|
46 }
|
|
(gdb)
|
|
_dout_begin_line_static () at ./common/debug.h:49
|
|
49 }
|
|
(gdb)
|
|
operator<< (out=...) at ./common/debug.h:66
|
|
66 return out;
|
|
(gdb)
|
|
67 }
|
|
(gdb) n
|
|
2011-01-28 12:29:11.150241 7ffff7fe0740 parsed str=0.0.0.0/0
|
|
|
|
Breakpoint 8, Mutex::Unlock (this=0x6c5f40) at ./common/Mutex.h:123
|
|
123 assert(nlock > 0);
|
|
(gdb) p nlock
|
|
$13 = 1
|
|
(gdb) n
|
|
124 --nlock;
|
|
(gdb)
|
|
125 if (lockdep && g_lockdep) _will_unlock();
|
|
(gdb)
|
|
126 int r = pthread_mutex_unlock(&_m);
|
|
(gdb)
|
|
127 assert(r == 0);
|
|
(gdb)
|
|
128 }
|
|
(gdb)
|
|
_dout_end_line () at ./common/debug.h:53
|
|
53 }
|
|
(gdb)
|
|
Subnet::parse (this=0x6e5ca0, str=0x6e5c60 "0.0.0.0/0") at auth/ExportControl.cc:123
|
|
123 memcpy(&GET_IP(&subnet.addr), ip, 4);
|
|
(gdb) finish
|
|
Run till exit from #0 Subnet::parse (this=0x6e5ca0, str=0x6e5c60 "0.0.0.0/0")
|
|
at auth/ExportControl.cc:123
|
|
|
|
Breakpoint 6, Mutex::Lock (this=0x6c5f40, no_lockdep=false) at common/Mutex.h:115
|
|
115 if (lockdep && g_lockdep && !no_lockdep) _will_lock();
|
|
(gdb) n
|
|
116 int r = pthread_mutex_lock(&_m);
|
|
(gdb)
|
|
117 if (lockdep && g_lockdep) _locked();
|
|
(gdb)
|
|
118 assert(r == 0);
|
|
(gdb)
|
|
119 nlock++;
|
|
(gdb)
|
|
120 }
|
|
(gdb)
|
|
_dout_begin_line () at ./common/debug.h:43
|
|
43 if (_dout_need_open)
|
|
(gdb)
|
|
45 *_dout << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " ";
|
|
(gdb)
|
|
46 }
|
|
(gdb)
|
|
_dout_begin_line_static () at ./common/debug.h:49
|
|
49 }
|
|
(gdb)
|
|
operator<< (out=...) at ./common/debug.h:66
|
|
66 return out;
|
|
(gdb)
|
|
67 }
|
|
(gdb)
|
|
Subnet::parse (this=0x6e5ca0, str=0x6e5c60 "0.0.0.0/0") at auth/ExportControl.cc:127
|
|
127 << (int)mask[0] << "." << (int)mask[1] << "." << (int)mask[2] << "." << (int)mask[3] << dendl;
|
|
(gdb) finish
|
|
Run till exit from #0 Subnet::parse (this=0x6e5ca0, str=0x6e5c60 "0.0.0.0/0")
|
|
at auth/ExportControl.cc:127
|
|
2011-01-28 12:30:04.016837 7ffff7fe0740 --> 0.0.0.0/0.0.0.0
|
|
|
|
Breakpoint 8, Mutex::Unlock (this=0x6c5f40) at ./common/Mutex.h:123
|
|
123 assert(nlock > 0);
|
|
(gdb) p nlock
|
|
$14 = 1
|
|
(gdb) n
|
|
124 --nlock;
|
|
(gdb)
|
|
125 if (lockdep && g_lockdep) _will_unlock();
|
|
(gdb)
|
|
126 int r = pthread_mutex_unlock(&_m);
|
|
(gdb)
|
|
127 assert(r == 0);
|
|
(gdb)
|
|
128 }
|
|
(gdb)
|
|
_dout_end_line () at ./common/debug.h:53
|
|
53 }
|
|
(gdb)
|
|
Subnet::parse (this=0x6e5ca0, str=0x6e5c60 "0.0.0.0/0") at auth/ExportControl.cc:128
|
|
128 dout(30) << hex << GET_IP(&subnet.addr) << dec << dendl;
|
|
(gdb) finish
|
|
Run till exit from #0 Subnet::parse (this=0x6e5ca0, str=0x6e5c60 "0.0.0.0/0")
|
|
at auth/ExportControl.cc:128
|
|
|
|
Breakpoint 6, Mutex::Lock (this=0x6c5f40, no_lockdep=false) at common/Mutex.h:115
|
|
115 if (lockdep && g_lockdep && !no_lockdep) _will_lock();
|
|
(gdb) finish
|
|
Run till exit from #0 Mutex::Lock (this=0x6c5f40, no_lockdep=false) at common/Mutex.h:115
|
|
_dout_begin_line () at ./common/debug.h:43
|
|
43 if (_dout_need_open)
|
|
(gdb) n
|
|
45 *_dout << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " ";
|
|
(gdb)
|
|
46 }
|
|
(gdb)
|
|
_dout_begin_line_static () at ./common/debug.h:49
|
|
49 }
|
|
(gdb)
|
|
operator<< (out=...) at ./common/debug.h:66
|
|
66 return out;
|
|
(gdb)
|
|
67 }
|
|
(gdb)
|
|
2011-01-28 12:30:39.476829 7ffff7fe0740 0
|
|
|
|
Breakpoint 8, Mutex::Unlock (this=0x6c5f40) at ./common/Mutex.h:123
|
|
123 assert(nlock > 0);
|
|
(gdb)
|
|
124 --nlock;
|
|
(gdb)
|
|
125 if (lockdep && g_lockdep) _will_unlock();
|
|
(gdb)
|
|
126 int r = pthread_mutex_unlock(&_m);
|
|
(gdb)
|
|
127 assert(r == 0);
|
|
(gdb)
|
|
128 }
|
|
(gdb)
|
|
_dout_end_line () at ./common/debug.h:53
|
|
53 }
|
|
(gdb)
|
|
Subnet::parse (this=0x6e5ca0, str=0x6e5c60 "0.0.0.0/0") at auth/ExportControl.cc:130
|
|
130 valid = true;
|
|
(gdb)
|
|
131 }
|
|
(gdb)
|
|
Subnet::Subnet (this=0x6e5ca0, str=0x6e5c60 "0.0.0.0/0") at auth/ExportControl.cc:50
|
|
50 }
|
|
(gdb)
|
|
GroupsManager::get_group (this=0x6e0c20, name=0x6e5c60 "0.0.0.0/0") at auth/ExportControl.cc:308
|
|
308 iter = groups_map.find(name);
|
|
(gdb)
|
|
310 if (iter != groups_map.end()) {
|
|
(gdb)
|
|
315 group_name = strsep(&tmp, "(");
|
|
(gdb)
|
|
317 if (tmp) {
|
|
(gdb)
|
|
321 if (!options) {
|
|
(gdb)
|
|
322 dout(30) << "** creating new group with no options (" << group_name << ")" << dendl;
|
|
(gdb)
|
|
|
|
Breakpoint 6, Mutex::Lock (this=0x6c5f40, no_lockdep=false) at common/Mutex.h:115
|
|
115 if (lockdep && g_lockdep && !no_lockdep) _will_lock();
|
|
(gdb)
|
|
116 int r = pthread_mutex_lock(&_m);
|
|
(gdb)
|
|
117 if (lockdep && g_lockdep) _locked();
|
|
(gdb)
|
|
118 assert(r == 0);
|
|
(gdb)
|
|
119 nlock++;
|
|
(gdb)
|
|
120 }
|
|
(gdb)
|
|
_dout_begin_line () at ./common/debug.h:43
|
|
43 if (_dout_need_open)
|
|
(gdb)
|
|
45 *_dout << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " ";
|
|
(gdb)
|
|
46 }
|
|
(gdb)
|
|
_dout_begin_line_static () at ./common/debug.h:49
|
|
49 }
|
|
(gdb)
|
|
operator<< (out=...) at ./common/debug.h:66
|
|
66 return out;
|
|
(gdb)
|
|
67 }
|
|
(gdb)
|
|
2011-01-28 12:31:04.860119 7ffff7fe0740 ** creating new group with no options (0.0.0.0/0)
|
|
|
|
Breakpoint 8, Mutex::Unlock (this=0x6c5f40) at ./common/Mutex.h:123
|
|
123 assert(nlock > 0);
|
|
(gdb)
|
|
124 --nlock;
|
|
(gdb)
|
|
125 if (lockdep && g_lockdep) _will_unlock();
|
|
(gdb)
|
|
126 int r = pthread_mutex_unlock(&_m);
|
|
(gdb)
|
|
127 assert(r == 0);
|
|
(gdb)
|
|
128 }
|
|
(gdb)
|
|
_dout_end_line () at ./common/debug.h:53
|
|
53 }
|
|
(gdb)
|
|
GroupsManager::get_group (this=0x6e0c20, name=0x6e5c60 "0.0.0.0/0") at auth/ExportControl.cc:325
|
|
325 group = new GroupEntry(subnet);
|
|
(gdb)
|
|
326 subnet = NULL;
|
|
(gdb)
|
|
327 groups_map[group_name] = group;
|
|
(gdb)
|
|
328 goto done;
|
|
(gdb)
|
|
346 free(orig_tmp);
|
|
(gdb)
|
|
347 delete subnet;
|
|
(gdb)
|
|
348 return group;
|
|
(gdb)
|
|
349 }
|
|
(gdb)
|
|
GroupEntry::parse_addr_line (this=0x6ed100, str=0x6e5b50 "0.0.0.0/0") at auth/ExportControl.cc:204
|
|
204 if (group)
|
|
(gdb)
|
|
205 groups.push_back(group);
|
|
(gdb)
|
|
200 do {
|
|
(gdb)
|
|
209 free(orig_s);
|
|
(gdb)
|
|
210 }
|
|
(gdb)
|
|
GroupEntry::init (this=0x6ed100, cf=0x6e6840, section=0x6ecad8 "group everyone", options=0x0)
|
|
at auth/ExportControl.cc:368
|
|
368 free(group_str);
|
|
(gdb)
|
|
371 ret = cf->read(section, "read only", &rdonly, 0);
|
|
(gdb)
|
|
373 if (ret)
|
|
(gdb)
|
|
378 if (options) {
|
|
(gdb)
|
|
398 }
|
|
(gdb)
|
|
ExportControl::load (this=0x6e5ab0, conf=0x6e6840) at auth/ExportControl.cc:640
|
|
640 free(orig_tmp_sec);
|
|
(gdb)
|
|
591 p++) {
|
|
(gdb)
|
|
589 for (std::list<ConfSection*>::const_iterator p = conf->get_section_list().begin();
|
|
(gdb)
|
|
590 p != conf->get_section_list().end();
|
|
(gdb)
|
|
589 for (std::list<ConfSection*>::const_iterator p = conf->get_section_list().begin();
|
|
(gdb)
|
|
590 p != conf->get_section_list().end();
|
|
(gdb)
|
|
589 for (std::list<ConfSection*>::const_iterator p = conf->get_section_list().begin();
|
|
(gdb)
|
|
593 if (strncmp(MOUNT_SEC_NAME, (*p)->get_name().c_str(), mnt_len) == 0) {
|
|
(gdb)
|
|
594 const char *section = (*p)->get_name().c_str();
|
|
(gdb)
|
|
595 char *tmp_sec = strdup(section);
|
|
(gdb)
|
|
597 char *orig_tmp_sec = tmp_sec;
|
|
(gdb)
|
|
598 char *copy_str = NULL;
|
|
(gdb)
|
|
600 strsep(&tmp_sec, " ");
|
|
(gdb)
|
|
601 mnt = tmp_sec;
|
|
(gdb) finish
|
|
Run till exit from #0 ExportControl::load (this=0x6e5ab0, conf=0x6e6840)
|
|
at auth/ExportControl.cc:601
|
|
|
|
Breakpoint 6, Mutex::Lock (this=0x6c5f40, no_lockdep=false) at common/Mutex.h:115
|
|
115 if (lockdep && g_lockdep && !no_lockdep) _will_lock();
|
|
(gdb) n
|
|
116 int r = pthread_mutex_lock(&_m);
|
|
(gdb)
|
|
117 if (lockdep && g_lockdep) _locked();
|
|
(gdb)
|
|
118 assert(r == 0);
|
|
(gdb)
|
|
119 nlock++;
|
|
(gdb)
|
|
120 }
|
|
(gdb)
|
|
_dout_begin_line () at ./common/debug.h:43
|
|
43 if (_dout_need_open)
|
|
(gdb)
|
|
45 *_dout << g_clock.now() << " " << std::hex << pthread_self() << std::dec << " ";
|
|
(gdb)
|
|
46 }
|
|
(gdb)
|
|
_dout_begin_line_static () at ./common/debug.h:49
|
|
49 }
|
|
(gdb)
|
|
operator<< (out=...) at ./common/debug.h:66
|
|
66 return out;
|
|
(gdb)
|
|
67 }
|
|
(gdb)
|
|
2011-01-28 12:31:30.176792 7ffff7fe0740 parse_addr_line str=%everyone
|
|
|
|
Breakpoint 8, Mutex::Unlock (this=0x6c5f40) at ./common/Mutex.h:123
|
|
123 assert(nlock > 0);
|
|
(gdb)
|
|
124 --nlock;
|
|
(gdb)
|
|
125 if (lockdep && g_lockdep) _will_unlock();
|
|
(gdb)
|
|
126 int r = pthread_mutex_unlock(&_m);
|
|
(gdb)
|
|
127 assert(r == 0);
|
|
(gdb)
|
|
128 }
|
|
(gdb)
|
|
_dout_end_line () at ./common/debug.h:53
|
|
53 }
|
|
(gdb)
|
|
GroupEntry::parse_addr_line (this=0x6e6030, str=0x6e5ff0 "%everyone") at auth/ExportControl.cc:201
|
|
201 val = strsep(&s, ", \t");
|
|
(gdb)
|
|
202 if (*val) {
|
|
(gdb)
|
|
203 GroupEntry *group = groups_mgr.get_group(val);
|
|
(gdb) finish
|
|
Run till exit from #0 GroupEntry::parse_addr_line (this=0x6e6030, str=0x6e5ff0 "%everyone")
|
|
at auth/ExportControl.cc:203
|
|
ExportAddrEntry::ExportAddrEntry (this=0x6e6010, str=0x6e5ff0 "%everyone")
|
|
at auth/ExportControl.cc:417
|
|
417 }
|
|
(gdb) n
|
|
ExportEntry::init (this=0x6e5c60, str=0x6e5b50 "%everyone") at auth/ExportControl.cc:488
|
|
488 if (ent->is_valid()) {
|
|
(gdb) finish
|
|
Run till exit from #0 ExportEntry::init (this=0x6e5c60, str=0x6e5b50 "%everyone")
|
|
at auth/ExportControl.cc:488
|
|
ExportControl::load (this=0x6e5ab0, conf=0x6e6840) at auth/ExportControl.cc:616
|
|
616 exports[mnt] = exp;
|
|
(gdb) finish
|
|
Run till exit from #0 ExportControl::load (this=0x6e5ab0, conf=0x6e6840)
|
|
at auth/ExportControl.cc:616
|
|
|
|
Breakpoint 8, Mutex::Unlock (this=0x6e5ae0) at ./common/Mutex.h:123
|
|
123 assert(nlock > 0);
|
|
(gdb) n
|
|
124 --nlock;
|
|
(gdb)
|
|
125 if (lockdep && g_lockdep) _will_unlock();
|
|
(gdb)
|
|
126 int r = pthread_mutex_unlock(&_m);
|
|
(gdb)
|
|
127 assert(r == 0);
|
|
(gdb)
|
|
128 }
|
|
(gdb)
|
|
Mutex::Locker::~Locker (this=0x7fffffffc940, __in_chrg=<value optimized out>)
|
|
at ./common/Mutex.h:143
|
|
143 }
|
|
(gdb)
|
|
ExportControl::load (this=0x6e5ab0, conf=0x6e6840) at auth/ExportControl.cc:643
|
|
643 }
|
|
(gdb)
|
|
parse_startup_config_options (args=std::vector of length 2, capacity 2 = {...}, module_type=0x0)
|
|
at config.cc:1161
|
|
1161 list<string> ls;
|
|
(gdb) finish
|
|
Run till exit from #0 parse_startup_config_options (
|
|
args=std::vector of length 2, capacity 2 = {...}, module_type=0x0) at config.cc:1161
|
|
common_init (args=std::vector of length 2, capacity 2 = {...}, module_type=0x0, init_keys=false)
|
|
at common/common_init.cc:31
|
|
31 parse_config_options(args);
|
|
(gdb) n
|
|
32 install_standard_sighandlers();
|
|
(gdb)
|
|
35 if (g_conf.tcmalloc_profiler_run && g_conf.tcmalloc_have) {
|
|
(gdb)
|
|
48 if (g_conf.log_file && g_conf.log_file[0])
|
|
(gdb)
|
|
52 if (!g_conf.log_to_stdout)
|
|
(gdb)
|
|
55 if (init_keys && is_supported_auth(CEPH_AUTH_CEPHX)) {
|
|
(gdb)
|
|
84 }
|
|
(gdb)
|
|
main (argc=5, argv=0x7fffffffe1d8) at cconf.cc:59
|
|
59 FOR_EACH_ARG(args) {
|
|
(gdb)
|
|
60 if (CONF_ARG_EQ("list_sections", 'l')) {
|
|
(gdb)
|
|
61 CONF_SAFE_SET_ARG_VAL(&list_sections, OPT_STR);
|
|
(gdb)
|
|
59 FOR_EACH_ARG(args) {
|
|
(gdb)
|
|
81 if (!list_sections && (param < 1 || param > 2))
|
|
(gdb)
|
|
84 ConfFile *cf = conf_get_conf_file();
|
|
(gdb)
|
|
86 assert(cf);
|
|
(gdb)
|
|
88 if (list_sections) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
91 p++) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
91 p++) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb) p logger_lock.is_locked()
|
|
$15 = false
|
|
(gdb) n
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
91 p++) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
93 cout << (*p)->get_name() << std::endl;
|
|
(gdb)
|
|
mon
|
|
91 p++) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
93 cout << (*p)->get_name() << std::endl;
|
|
(gdb)
|
|
mon.0
|
|
91 p++) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
91 p++) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
91 p++) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
91 p++) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
91 p++) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
91 p++) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
91 p++) {
|
|
(gdb) p (*p)->get_name().c_str()
|
|
$16 = 0x6ecad8 "group everyone"
|
|
(gdb) n
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
92 if (strncmp(list_sections, (*p)->get_name().c_str(), strlen(list_sections)) == 0)
|
|
(gdb)
|
|
91 p++) {
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
90 p != cf->get_section_list().end();
|
|
(gdb)
|
|
89 for (std::list<ConfSection*>::const_iterator p = cf->get_section_list().begin();
|
|
(gdb)
|
|
|
|
Breakpoint 11, main (argc=5, argv=0x7fffffffe1d8) at cconf.cc:95
|
|
95 return 0;
|
|
(gdb)
|
|
35 std::vector<const char *> empty_args;
|
|
(gdb)
|
|
33 deque<const char *> sections;
|
|
(gdb)
|
|
32 vector<const char*> args, nargs;
|
|
(gdb)
|
|
126 }
|
|
(gdb)
|
|
0x0000003716a1ee7d in __libc_start_main () from /lib64/libc.so.6
|
|
(gdb)
|
|
Single stepping until exit from function __libc_start_main,
|
|
which has no line number information.
|
|
|
|
Breakpoint 5, Mutex::~Mutex (this=0x6c5ed0, __in_chrg=<value optimized out>)
|
|
at ./common/Mutex.h:97
|
|
97 assert(nlock == 0);
|
|
(gdb) p nlock
|
|
$17 = 0
|
|
(gdb) n
|
|
98 pthread_mutex_destroy(&_m);
|
|
(gdb)
|
|
99 }
|
|
(gdb) n
|
|
0x0000003716a379c1 in exit () from /lib64/libc.so.6
|
|
(gdb)
|
|
Single stepping until exit from function exit,
|
|
which has no line number information.
|
|
|
|
Breakpoint 5, Mutex::~Mutex (this=0x6c5f40, __in_chrg=<value optimized out>)
|
|
at ./common/Mutex.h:97
|
|
97 assert(nlock == 0);
|
|
(gdb) n
|
|
98 pthread_mutex_destroy(&_m);
|
|
(gdb)
|
|
99 }
|
|
(gdb)
|
|
0x0000003716a379c1 in exit () from /lib64/libc.so.6
|
|
(gdb)
|
|
Single stepping until exit from function exit,
|
|
which has no line number information.
|
|
|
|
Breakpoint 5, Mutex::~Mutex (this=0x6cc1c0, __in_chrg=<value optimized out>)
|
|
at ./common/Mutex.h:97
|
|
97 assert(nlock == 0);
|
|
(gdb)
|
|
98 pthread_mutex_destroy(&_m);
|
|
(gdb)
|
|
99 }
|
|
(gdb)
|
|
0x0000003716a379c1 in exit () from /lib64/libc.so.6
|
|
(gdb)
|
|
Single stepping until exit from function exit,
|
|
which has no line number information.
|
|
|
|
Breakpoint 5, Mutex::~Mutex (this=0x6e0b80, __in_chrg=<value optimized out>)
|
|
at ./common/Mutex.h:97
|
|
97 assert(nlock == 0);
|
|
(gdb) p this
|
|
$18 = (Mutex * const) 0x6e0b80
|
|
(gdb) n
|
|
98 pthread_mutex_destroy(&_m);
|
|
(gdb)
|
|
99 }
|
|
(gdb)
|
|
0x0000003716a379c1 in exit () from /lib64/libc.so.6
|
|
(gdb)
|
|
Single stepping until exit from function exit,
|
|
which has no line number information.
|
|
|
|
Breakpoint 6, Mutex::Lock (this=0x6e0ce0, no_lockdep=false) at common/Mutex.h:115
|
|
115 if (lockdep && g_lockdep && !no_lockdep) _will_lock();
|
|
(gdb) p lockdep
|
|
$19 = true
|
|
(gdb) p g_lockdep
|
|
$20 = 0
|
|
(gdb) n
|
|
116 int r = pthread_mutex_lock(&_m);
|
|
(gdb) n
|
|
117 if (lockdep && g_lockdep) _locked();
|
|
(gdb)
|
|
118 assert(r == 0);
|
|
(gdb)
|
|
119 nlock++;
|
|
(gdb)
|
|
120 }
|
|
(gdb) n
|
|
stop () at common/Logger.cc:183
|
|
183 logger_timer.shutdown();
|
|
(gdb) s
|
|
|
|
Breakpoint 9, SafeTimer::shutdown (this=0x6e0d20) at common/Timer.cc:69
|
|
69 dout(10) << "shutdown" << dendl;
|
|
(gdb) n
|
|
|
|
Breakpoint 6, Mutex::Lock (this=0x6c5f40, no_lockdep=false) at common/Mutex.h:115
|
|
115 if (lockdep && g_lockdep && !no_lockdep) _will_lock();
|
|
(gdb) n
|
|
116 int r = pthread_mutex_lock(&_m);
|
|
(gdb)
|
|
117 if (lockdep && g_lockdep) _locked();
|
|
(gdb)
|
|
118 assert(r == 0);
|
|
(gdb)
|
|
common/Mutex.h: In function 'void Mutex::Lock(bool)':
|
|
common/Mutex.h:118: FAILED assert(r == 0)
|
|
ceph version 0.24.2 (commit:f7572de5cb87eb7157217be4975ae66d90831bb7)
|
|
1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x3c) [0x45d30b]
|
|
2: (Mutex::Lock(bool)+0x97) [0x45a673]
|
|
3: /root/downloadsda3/ceph-0.24.2/src/cconf() [0x464c2a]
|
|
4: (operator<<(std::ostream&, _dbeginl_t)+0x16) [0x466bcf]
|
|
5: (SafeTimer::shutdown()+0x2e) [0x48d6ec]
|
|
6: /root/downloadsda3/ceph-0.24.2/src/cconf() [0x48a2cb]
|
|
7: (FlusherStopper::~FlusherStopper()+0x16) [0x48b7dc]
|
|
8: (exit()+0xe1) [0x3716a379c1]
|
|
9: (__libc_start_main()+0x104) [0x3716a1ee84]
|
|
10: /root/downloadsda3/ceph-0.24.2/src/cconf() [0x459599]
|
|
NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
|
|
common/Mutex.h: In function 'void Mutex::Lock(bool)':
|
|
common/Mutex.h:118: FAILED assert(r == 0)
|
|
ceph version 0.24.2 (commit:f7572de5cb87eb7157217be4975ae66d90831bb7)
|
|
1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x3c) [0x45d30b]
|
|
2: (Mutex::Lock(bool)+0x97) [0x45a673]
|
|
3: /root/downloadsda3/ceph-0.24.2/src/cconf() [0x464c2a]
|
|
4: (operator<<(std::ostream&, _dbeginl_t)+0x16) [0x466bcf]
|
|
5: (SafeTimer::shutdown()+0x2e) [0x48d6ec]
|
|
6: /root/downloadsda3/ceph-0.24.2/src/cconf() [0x48a2cb]
|
|
7: (FlusherStopper::~FlusherStopper()+0x16) [0x48b7dc]
|
|
8: (exit()+0xe1) [0x3716a379c1]
|
|
9: (__libc_start_main()+0x104) [0x3716a1ee84]
|
|
10: /root/downloadsda3/ceph-0.24.2/src/cconf() [0x459599]
|
|
NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
|
|
terminate called after throwing an instance of 'ceph::FailedAssertion'
|
|
|
|
Program received signal SIGABRT, Aborted.
|
|
0x0000003716a34065 in raise () from /lib64/libc.so.6
|
|
(gdb)
|
|
|