Project

General

Profile

Bug #751 ยป lock.txt

longguang yue, 01/27/2011 09:31 PM

 
[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(&section, 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)

    (1-1/1)