Skip to content

Instantly share code, notes, and snippets.

@pellaeon
Created May 21, 2017 08:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pellaeon/bfa9b094e11b47a88bf51f5aa73b9a6d to your computer and use it in GitHub Desktop.
Save pellaeon/bfa9b094e11b47a88bf51f5aa73b9a6d to your computer and use it in GitHub Desktop.
Gluster volume process GDB output
diff --git a/libglusterfs/src/compat.c b/libglusterfs/src/compat.c
index 621ff5f54..76fdfca96 100644
--- a/libglusterfs/src/compat.c
+++ b/libglusterfs/src/compat.c
@@ -535,6 +535,34 @@ out:
#endif /* GF_SOLARIS_HOST_OS */
+#ifdef GF_BSD_HOST_OS
+void
+extattr_list_reshape(char *bsd_list, ssize_t size)
+{
+ /*
+ * the format of bsd_list is
+ * <attr_len>attr<attr_len>attr...
+ * we try to reformat it as Linux's
+ * attr<\0>attr<\0>...
+ * */
+ if (NULL == bsd_list || size <= 0)
+ return;
+
+ int i = 0, j;
+
+ while ( i < size ) {
+ size_t attr_len = bsd_list[i];
+
+ for (j=i; j<i+attr_len; ++j)
+ bsd_list[j] = bsd_list[j+1];
+ bsd_list[j] = '\0';
+
+ i += attr_len + 1;
+ gf_msg_debug ("syscall", 0, "syscall debug: %lu", attr_len);
+ }
+}
+#endif /* GF_BSD_HOST_OS */
+
#ifndef HAVE_STRNLEN
size_t
strnlen(const char *string, size_t maxlen)
diff --git a/libglusterfs/src/compat.h b/libglusterfs/src/compat.h
index 69adfbcd7..55aa406c0 100644
--- a/libglusterfs/src/compat.h
+++ b/libglusterfs/src/compat.h
@@ -177,6 +177,9 @@ enum {
#ifndef _PATH_UMOUNT
#define _PATH_UMOUNT "/sbin/umount"
#endif
+
+void extattr_list_reshape(char *list, ssize_t size);
+
#endif /* GF_BSD_HOST_OS */
#ifdef GF_DARWIN_HOST_OS
diff --git a/libglusterfs/src/syscall.c b/libglusterfs/src/syscall.c
index 93838e285..19edd931f 100644
--- a/libglusterfs/src/syscall.c
+++ b/libglusterfs/src/syscall.c
@@ -430,7 +430,10 @@ sys_llistxattr (const char *path, char *list, size_t size)
#endif
#ifdef GF_BSD_HOST_OS
- return extattr_list_link (path, EXTATTR_NAMESPACE_USER, list, size);
+ ssize_t ret = extattr_list_link (path, EXTATTR_NAMESPACE_USER,
+ list, size);
+ extattr_list_reshape (list, ret);
+ return ret;
#endif
#ifdef GF_SOLARIS_HOST_OS
@@ -546,7 +549,10 @@ sys_flistxattr (int filedes, char *list, size_t size)
#endif
#ifdef GF_BSD_HOST_OS
- return extattr_list_fd (filedes, EXTATTR_NAMESPACE_USER, list, size);
+ ssize_t ret = extattr_list_fd (filedes, EXTATTR_NAMESPACE_USER,
+ list, size);
+ extattr_list_reshape (list, ret);
+ return ret;
#endif
#ifdef GF_SOLARIS_HOST_OS
(gdb) set follow-fork-mode child
(gdb) set breakpoint pending on
(gdb) b compat.c:extattr_list_reshape
Breakpoint 1 at 0x80088eda7: file compat.c, line 548.
(gdb) b compat.c:551
Breakpoint 2 at 0x80088edba: file compat.c, line 551.
(gdb) b sys_llistxattr
Breakpoint 3 at 0x8008959b1: file syscall.c, line 433.
(gdb) b sys_flistxattr
Breakpoint 4 at 0x800895aca: file syscall.c, line 552.
(gdb) b dict.c:1239
Breakpoint 5 at 0x80085b381: file dict.c, line 1239.
(gdb) b posix_getxattr
Breakpoint 6 at 0x8040b0eb4: file posix.c, line 4276.
(gdb) b _handle_list_xattr
Breakpoint 7 at 0x8040c16fd: file posix-helpers.c, line 683.
(gdb)
Note: breakpoint 7 also set at pc 0x8040c16fd.
Breakpoint 8 at 0x8040c16fd: file posix-helpers.c, line 683.
(gdb)
Note: breakpoints 7 and 8 also set at pc 0x8040c16fd.
Breakpoint 9 at 0x8040c16fd: file posix-helpers.c, line 683.
(gdb)
Note: breakpoints 7, 8 and 9 also set at pc 0x8040c16fd.
Breakpoint 10 at 0x8040c16fd: file posix-helpers.c, line 683.
(gdb) bt
#0 0x00000008025651ba in _poll () from /lib/libc.so.7
#1 0x0000000801beb726 in __thr_poll (fds=0x808bb3680, nfds=8, timeout=1) at /usr/src/lib/libthr/thread/thr_syscalls.c:320
#2 0x00000008008ce514 in event_dispatch_poll (event_pool=0x80309d040) at event-poll.c:471
#3 0x0000000800892857 in event_dispatch (event_pool=0x80309d040) at event.c:124
#4 0x000000000040a139 in main (argc=19, argv=0x7fffffffe760) at glusterfsd.c:2493
(gdb) bt
#0 0x00000008025651ba in _poll () from /lib/libc.so.7
#1 0x0000000801beb726 in __thr_poll (fds=0x808bb3680, nfds=8, timeout=1) at /usr/src/lib/libthr/thread/thr_syscalls.c:320
#2 0x00000008008ce514 in event_dispatch_poll (event_pool=0x80309d040) at event-poll.c:471
#3 0x0000000800892857 in event_dispatch (event_pool=0x80309d040) at event.c:124
#4 0x000000000040a139 in main (argc=19, argv=0x7fffffffe760) at glusterfsd.c:2493
(gdb) bt
#0 0x00000008025651ba in _poll () from /lib/libc.so.7
#1 0x0000000801beb726 in __thr_poll (fds=0x808bb3680, nfds=8, timeout=1) at /usr/src/lib/libthr/thread/thr_syscalls.c:320
#2 0x00000008008ce514 in event_dispatch_poll (event_pool=0x80309d040) at event-poll.c:471
#3 0x0000000800892857 in event_dispatch (event_pool=0x80309d040) at event.c:124
#4 0x000000000040a139 in main (argc=19, argv=0x7fffffffe760) at glusterfsd.c:2493
(gdb) c
Continuing.
[LWP 101515 of process 67331 exited]
[Switching to LWP 101271 of process 67331]
Thread 17 hit Breakpoint 7, _handle_list_xattr (xattr_req=0x808b9be7c, real_path=0x7fffde4ee880 "/brick2/gv/0/", fdnum=-1, filler=0x7fffde4ee810)
at posix-helpers.c:683
683 {
(gdb) bt
#0 _handle_list_xattr (xattr_req=0x808b9be7c, real_path=0x7fffde4ee880 "/brick2/gv/0/", fdnum=-1, filler=0x7fffde4ee810) at posix-helpers.c:683
#1 0x00000008040c1a28 in posix_xattr_fill (this=0x803193840, real_path=0x7fffde4ee880 "/brick2/gv/0/", loc=0x8031eb8ac, fd=0x0, fdnum=-1,
xattr_req=0x808b9be7c, buf=0x7fffde4ee9a0) at posix-helpers.c:767
#2 0x000000080409647b in posix_lookup (frame=0x80304745c, this=0x803193840, loc=0x8031eb8ac, xdata=0x808b9be7c) at posix.c:207
#3 0x0000000800912113 in default_lookup (frame=0x80304745c, this=0x803194440, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#4 0x00000008044fadfb in ctr_lookup (frame=0x8031a0d5c, this=0x803195040, loc=0x8031eb8ac, xdata=0x808b9be7c) at changetimerecorder.c:357
#5 0x0000000800912113 in default_lookup (frame=0x8031a0d5c, this=0x803195c40, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#6 0x0000000804e1aeca in br_stub_lookup (frame=0x80319185c, this=0x803196840, loc=0x8031eb8ac, xdata=0x808b9be7c) at bit-rot-stub.c:2784
#7 0x0000000805026397 in posix_acl_lookup (frame=0x80319175c, this=0x803197440, loc=0x8031eb8ac, xattr=0x808b9be7c) at posix-acl.c:975
#8 0x000000080524d33e in pl_lookup (frame=0x803047f5c, this=0x803198040, loc=0x8031eb8ac, xdata=0x808b9be7c) at posix.c:2657
#9 0x0000000800912113 in default_lookup (frame=0x803047f5c, this=0x803198c40, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#10 0x0000000800912113 in default_lookup (frame=0x803047f5c, this=0x803199840, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#11 0x0000000800912113 in default_lookup (frame=0x803047f5c, this=0x80319a440, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#12 0x0000000805a9b3cd in up_lookup (frame=0x803047c5c, this=0x8031f7040, loc=0x8031eb8ac, xattr_req=0x808b9be7c) at upcall.c:784
#13 0x000000080090bf46 in default_lookup_resume (frame=0x8089a865c, this=0x8031f7c40, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:1872
#14 0x00000008008822f0 in call_resume_wind (stub=0x8031eb85c) at call-stub.c:2149
#15 0x000000080088ecde in call_resume (stub=0x8031eb85c) at call-stub.c:2508
#16 0x0000000805cb335e in iot_worker (data=0x8031643c0) at io-threads.c:222
#17 0x0000000801be8bd5 in thread_start (curthread=0x808954f00) at /usr/src/lib/libthr/thread/thr_create.c:289
#18 0x0000000000000000 in ?? ()
Backtrace stopped: Cannot access memory at address 0x7fffde4ef000
(gdb) step 2
685 char *list = NULL;
(gdb) step 9
Thread 17 hit Breakpoint 3, sys_llistxattr (path=0x7fffde4ee880 "/brick2/gv/0/", list=0x0, size=0) at syscall.c:433
433 ssize_t ret = extattr_list_link (path, EXTATTR_NAMESPACE_USER,
(gdb) step 1
435 extattr_list_reshape (list, ret);
(gdb) x/ret
Argument required (starting display address).
(gdb) x/10 ret
0x6d: Cannot access memory at address 0x6d
(gdb) x ret
0x6d: Cannot access memory at address 0x6d
(gdb) print ret
$1 = 109
(gdb) print ret
$2 = 109
(gdb) print real_path
No symbol "real_path" in current context.
(gdb) print fdnum
No symbol "fdnum" in current context.
(gdb) print path
$3 = 0x7fffde4ee880 "/brick2/gv/0/"
Thread 17 hit Breakpoint 1, extattr_list_reshape (bsd_list=0x0, size=109) at compat.c:548
548 if (NULL == bsd_list || size <= 0)
(gdb) step 1
549 return;
(gdb) step 1
563 }
(gdb) step 1
sys_llistxattr (path=0x7fffde4ee880 "/brick2/gv/0/", list=0x0, size=0) at syscall.c:436
436 return ret;
(gdb) print ret
$5 = 109
(gdb) print list
$6 = 0x0
(gdb) c
Continuing.
Thread 17 hit Breakpoint 3, sys_llistxattr (path=0x7fffde4ee880 "/brick2/gv/0/", list=0x7fffde4ee6e0 "\377\377\377\377\377\377\377\377 ", size=109)
at syscall.c:433
433 ssize_t ret = extattr_list_link (path, EXTATTR_NAMESPACE_USER,
(gdb) print list
$7 = 0x7fffde4ee6e0 "\377\377\377\377\377\377\377\377 "
(gdb) step 1
435 extattr_list_reshape (list, ret);
(gdb) print list
$8 = 0x7fffde4ee6e0 "\033trusted.afr.saigon-client-1\021trusted.afr.dirty\033trusted.glusterfs.volume-id\ftrusted.gfid\025trusted.glusterfs.dht"
(gdb) step 1
Thread 17 hit Breakpoint 1, extattr_list_reshape (
bsd_list=0x7fffde4ee6e0 "\033trusted.afr.saigon-client-1\021trusted.afr.dirty\033trusted.glusterfs.volume-id\ftrusted.gfid\025trusted.glusterfs.dht",
size=109) at compat.c:548
548 if (NULL == bsd_list || size <= 0)
(gdb) step 1
Thread 17 hit Breakpoint 2, extattr_list_reshape (
bsd_list=0x7fffde4ee6e0 "\033trusted.afr.saigon-client-1\021trusted.afr.dirty\033trusted.glusterfs.volume-id\ftrusted.gfid\025trusted.glusterfs.dht",
size=109) at compat.c:551
551 int i = 0, j;
(gdb) finish
Run till exit from #0 extattr_list_reshape (
bsd_list=0x7fffde4ee6e0 "\033trusted.afr.saigon-client-1\021trusted.afr.dirty\033trusted.glusterfs.volume-id\ftrusted.gfid\025trusted.glusterfs.dht",
size=109) at compat.c:551
sys_llistxattr (path=0x7fffde4ee880 "/brick2/gv/0/", list=0x7fffde4ee6e0 "trusted.afr.saigon-client-1", size=109) at syscall.c:436
436 return ret;
(gdb) x/110c list
0x7fffde4ee6e0: 116 't' 114 'r' 117 'u' 115 's' 116 't' 101 'e' 100 'd' 46 '.'
0x7fffde4ee6e8: 97 'a' 102 'f' 114 'r' 46 '.' 115 's' 97 'a' 105 'i' 103 'g'
0x7fffde4ee6f0: 111 'o' 110 'n' 45 '-' 99 'c' 108 'l' 105 'i' 101 'e' 110 'n'
0x7fffde4ee6f8: 116 't' 45 '-' 49 '1' 0 '\000' 116 't' 114 'r' 117 'u' 115 's'
0x7fffde4ee700: 116 't' 101 'e' 100 'd' 46 '.' 97 'a' 102 'f' 114 'r' 46 '.'
0x7fffde4ee708: 100 'd' 105 'i' 114 'r' 116 't' 121 'y' 0 '\000' 116 't' 114 'r'
0x7fffde4ee710: 117 'u' 115 's' 116 't' 101 'e' 100 'd' 46 '.' 103 'g' 108 'l'
0x7fffde4ee718: 117 'u' 115 's' 116 't' 101 'e' 114 'r' 102 'f' 115 's' 46 '.'
0x7fffde4ee720: 118 'v' 111 'o' 108 'l' 117 'u' 109 'm' 101 'e' 45 '-' 105 'i'
0x7fffde4ee728: 100 'd' 0 '\000' 116 't' 114 'r' 117 'u' 115 's' 116 't' 101 'e'
0x7fffde4ee730: 100 'd' 46 '.' 103 'g' 102 'f' 105 'i' 100 'd' 0 '\000' 116 't'
0x7fffde4ee738: 114 'r' 117 'u' 115 's' 116 't' 101 'e' 100 'd' 46 '.' 103 'g'
0x7fffde4ee740: 108 'l' 117 'u' 115 's' 116 't' 101 'e' 114 'r' 102 'f' 115 's'
0x7fffde4ee748: 46 '.' 100 'd' 104 'h' 116 't' 0 '\000' 0 '\000'
(gdb) bt
#0 sys_llistxattr (path=0x7fffde4ee880 "/brick2/gv/0/", list=0x7fffde4ee6e0 "trusted.afr.saigon-client-1", size=109) at syscall.c:436
#1 0x00000008040c17f2 in _handle_list_xattr (xattr_req=0x808b9be7c, real_path=0x7fffde4ee880 "/brick2/gv/0/", fdnum=-1, filler=0x7fffde4ee810)
at posix-helpers.c:706
#2 0x00000008040c1a28 in posix_xattr_fill (this=0x803193840, real_path=0x7fffde4ee880 "/brick2/gv/0/", loc=0x8031eb8ac, fd=0x0, fdnum=-1,
xattr_req=0x808b9be7c, buf=0x7fffde4ee9a0) at posix-helpers.c:767
#3 0x000000080409647b in posix_lookup (frame=0x80304745c, this=0x803193840, loc=0x8031eb8ac, xdata=0x808b9be7c) at posix.c:207
#4 0x0000000800912113 in default_lookup (frame=0x80304745c, this=0x803194440, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#5 0x00000008044fadfb in ctr_lookup (frame=0x8031a0d5c, this=0x803195040, loc=0x8031eb8ac, xdata=0x808b9be7c) at changetimerecorder.c:357
#6 0x0000000800912113 in default_lookup (frame=0x8031a0d5c, this=0x803195c40, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#7 0x0000000804e1aeca in br_stub_lookup (frame=0x80319185c, this=0x803196840, loc=0x8031eb8ac, xdata=0x808b9be7c) at bit-rot-stub.c:2784
#8 0x0000000805026397 in posix_acl_lookup (frame=0x80319175c, this=0x803197440, loc=0x8031eb8ac, xattr=0x808b9be7c) at posix-acl.c:975
#9 0x000000080524d33e in pl_lookup (frame=0x803047f5c, this=0x803198040, loc=0x8031eb8ac, xdata=0x808b9be7c) at posix.c:2657
#10 0x0000000800912113 in default_lookup (frame=0x803047f5c, this=0x803198c40, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#11 0x0000000800912113 in default_lookup (frame=0x803047f5c, this=0x803199840, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#12 0x0000000800912113 in default_lookup (frame=0x803047f5c, this=0x80319a440, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#13 0x0000000805a9b3cd in up_lookup (frame=0x803047c5c, this=0x8031f7040, loc=0x8031eb8ac, xattr_req=0x808b9be7c) at upcall.c:784
#14 0x000000080090bf46 in default_lookup_resume (frame=0x8089a865c, this=0x8031f7c40, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:1872
#15 0x00000008008822f0 in call_resume_wind (stub=0x8031eb85c) at call-stub.c:2149
#16 0x000000080088ecde in call_resume (stub=0x8031eb85c) at call-stub.c:2508
#17 0x0000000805cb335e in iot_worker (data=0x8031643c0) at io-threads.c:222
#18 0x0000000801be8bd5 in thread_start (curthread=0x808954f00) at /usr/src/lib/libthr/thread/thr_create.c:289
#19 0x0000000000000000 in ?? ()
Backtrace stopped: Cannot access memory at address 0x7fffde4ef000
(gdb) finish
Run till exit from #0 sys_llistxattr (path=0x7fffde4ee880 "/brick2/gv/0/", list=0x7fffde4ee6e0 "trusted.afr.saigon-client-1", size=109) at syscall.c:436
0x00000008040c17f2 in _handle_list_xattr (xattr_req=0x808b9be7c, real_path=0x7fffde4ee880 "/brick2/gv/0/", fdnum=-1, filler=0x7fffde4ee810)
at posix-helpers.c:706
706 remaining_size = sys_llistxattr (real_path, list, size);
Value returned is $9 = 109
(gdb) x/110c list
0x7fffde4ee6e0: 116 't' 114 'r' 117 'u' 115 's' 116 't' 101 'e' 100 'd' 46 '.'
0x7fffde4ee6e8: 97 'a' 102 'f' 114 'r' 46 '.' 115 's' 97 'a' 105 'i' 103 'g'
0x7fffde4ee6f0: 111 'o' 110 'n' 45 '-' 99 'c' 108 'l' 105 'i' 101 'e' 110 'n'
0x7fffde4ee6f8: 116 't' 45 '-' 49 '1' 0 '\000' 116 't' 114 'r' 117 'u' 115 's'
0x7fffde4ee700: 116 't' 101 'e' 100 'd' 46 '.' 97 'a' 102 'f' 114 'r' 46 '.'
0x7fffde4ee708: 100 'd' 105 'i' 114 'r' 116 't' 121 'y' 0 '\000' 116 't' 114 'r'
0x7fffde4ee710: 117 'u' 115 's' 116 't' 101 'e' 100 'd' 46 '.' 103 'g' 108 'l'
0x7fffde4ee718: 117 'u' 115 's' 116 't' 101 'e' 114 'r' 102 'f' 115 's' 46 '.'
0x7fffde4ee720: 118 'v' 111 'o' 108 'l' 117 'u' 109 'm' 101 'e' 45 '-' 105 'i'
0x7fffde4ee728: 100 'd' 0 '\000' 116 't' 114 'r' 117 'u' 115 's' 116 't' 101 'e'
0x7fffde4ee730: 100 'd' 46 '.' 103 'g' 102 'f' 105 'i' 100 'd' 0 '\000' 116 't'
0x7fffde4ee738: 114 'r' 117 'u' 115 's' 116 't' 101 'e' 100 'd' 46 '.' 103 'g'
0x7fffde4ee740: 108 'l' 117 'u' 115 's' 116 't' 101 'e' 114 'r' 102 'f' 115 's'
0x7fffde4ee748: 46 '.' 100 'd' 104 'h' 116 't' 0 '\000' 0 '\000'
(gdb) finish
Run till exit from #0 0x00000008040c17f2 in _handle_list_xattr (xattr_req=0x808b9be7c, real_path=0x7fffde4ee880 "/brick2/gv/0/", fdnum=-1,
filler=0x7fffde4ee810) at posix-helpers.c:706
posix_xattr_fill (this=0x803193840, real_path=0x7fffde4ee880 "/brick2/gv/0/", loc=0x8031eb8ac, fd=0x0, fdnum=-1, xattr_req=0x808b9be7c, buf=0x7fffde4ee9a0)
at posix-helpers.c:770
770 return xattr;
(gdb) print xattr
$10 = (dict_t *) 0x808b9c1fc
(gdb) print *xattr
$11 = {is_static = 0 '\000', hash_size = 1, count = 3, refcount = 1, members = 0x808b9c234, members_list = 0x80660f85c, extra_free = 0x0,
extra_stdfree = 0x0, lock = {spinlock = 0x80319f6c0, mutex = 0x80319f6c0}, members_internal = 0x80660f85c, free_pair = {hash_next = 0x0,
prev = 0x80660f71c, next = 0x0, value = 0x80663b39c, key = 0x803133490 "trusted.afr.saigon-client-1"}, free_pair_in_use = _gf_true}
(gdb) finish
Run till exit from #0 posix_xattr_fill (this=0x803193840, real_path=0x7fffde4ee880 "/brick2/gv/0/", loc=0x8031eb8ac, fd=0x0, fdnum=-1,
xattr_req=0x808b9be7c, buf=0x7fffde4ee9a0) at posix-helpers.c:770
0x000000080409647b in posix_lookup (frame=0x80304745c, this=0x803193840, loc=0x8031eb8ac, xdata=0x808b9be7c) at posix.c:207
207 xattr = posix_xattr_fill (this, real_path, loc, NULL, -1, xdata,
Value returned is $12 = (dict_t *) 0x808b9c1fc
(gdb) print *0x808b9c1fc
$13 = 0
(gdb) print 0x808b9c1fc
$14 = 34506129916
(gdb) print *xattr
Cannot access memory at address 0x0
(gdb) status
Undefined command: "status". Try "help".
(gdb) list -
202 entry_ret = -1;
203 goto parent;
204 }
205
206 if (xdata && (op_ret == 0)) {
207 xattr = posix_xattr_fill (this, real_path, loc, NULL, -1, xdata,
208 &buf);
209 }
210
211 if (priv->update_pgfid_nlinks) {
(gdb) s
211 if (priv->update_pgfid_nlinks) {
(gdb) print *xattr
$15 = {is_static = 0 '\000', hash_size = 1, count = 3, refcount = 1, members = 0x808b9c234, members_list = 0x80660f85c, extra_free = 0x0,
extra_stdfree = 0x0, lock = {spinlock = 0x80319f6c0, mutex = 0x80319f6c0}, members_internal = 0x80660f85c, free_pair = {hash_next = 0x0,
prev = 0x80660f71c, next = 0x0, value = 0x80663b39c, key = 0x803133490 "trusted.afr.saigon-client-1"}, free_pair_in_use = _gf_true}
(gdb) x/110c 0x803133490
0x803133490: 116 't' 114 'r' 117 'u' 115 's' 116 't' 101 'e' 100 'd' 46 '.'
0x803133498: 97 'a' 102 'f' 114 'r' 46 '.' 115 's' 97 'a' 105 'i' 103 'g'
0x8031334a0: 111 'o' 110 'n' 45 '-' 99 'c' 108 'l' 105 'i' 101 'e' 110 'n'
0x8031334a8: 116 't' 45 '-' 49 '1' 0 '\000' 13 '\r' -16 '\360' -83 '\255' -70 '\272'
0x8031334b0: 0 '\000' 0 '\000' 0 '\000' 0 '\000' 0 '\000' 0 '\000' 0 '\000' 0 '\000'
0x8031334b8: 0 '\000' 0 '\000' 0 '\000' 0 '\000' 0 '\000' 0 '\000' 0 '\000' 0 '\000'
0x8031334c0: 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z'
0x8031334c8: 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z'
0x8031334d0: 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z'
0x8031334d8: 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z'
0x8031334e0: 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z'
0x8031334e8: 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z'
0x8031334f0: 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z'
0x8031334f8: 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z' 90 'Z'
(gdb) print 0x80660f71c
$16 = 34466756380
(gdb) print (*dict_t)0x80660f71c
A syntax error in expression, near `)0x80660f71c'.
(gdb) print (*dict_t) 0x80660f71c
A syntax error in expression, near `) 0x80660f71c'.
(gdb) print xattr->prev
There is no member named prev.
(gdb) print xattr->free_pair->prev
$17 = (struct _data_pair *) 0x80660f71c
(gdb) print *xattr->free_pair->prev
$18 = {hash_next = 0x808b9c23c, prev = 0x80660f85c, next = 0x808b9c23c, value = 0x80663b43c, key = 0x80895b560 "trusted.afr.dirty"}
(gdb) print *xattr->free_pair->prev->prev
$19 = {hash_next = 0x80660f71c, prev = 0x0, next = 0x80660f71c, value = 0x80660f8fc, key = 0x80895b020 "trusted.glusterfs.dht"}
(gdb) bt
#0 posix_lookup (frame=0x80304745c, this=0x803193840, loc=0x8031eb8ac, xdata=0x808b9be7c) at posix.c:211
#1 0x0000000800912113 in default_lookup (frame=0x80304745c, this=0x803194440, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#2 0x00000008044fadfb in ctr_lookup (frame=0x8031a0d5c, this=0x803195040, loc=0x8031eb8ac, xdata=0x808b9be7c) at changetimerecorder.c:357
#3 0x0000000800912113 in default_lookup (frame=0x8031a0d5c, this=0x803195c40, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#4 0x0000000804e1aeca in br_stub_lookup (frame=0x80319185c, this=0x803196840, loc=0x8031eb8ac, xdata=0x808b9be7c) at bit-rot-stub.c:2784
#5 0x0000000805026397 in posix_acl_lookup (frame=0x80319175c, this=0x803197440, loc=0x8031eb8ac, xattr=0x808b9be7c) at posix-acl.c:975
#6 0x000000080524d33e in pl_lookup (frame=0x803047f5c, this=0x803198040, loc=0x8031eb8ac, xdata=0x808b9be7c) at posix.c:2657
#7 0x0000000800912113 in default_lookup (frame=0x803047f5c, this=0x803198c40, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#8 0x0000000800912113 in default_lookup (frame=0x803047f5c, this=0x803199840, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#9 0x0000000800912113 in default_lookup (frame=0x803047f5c, this=0x80319a440, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:2572
#10 0x0000000805a9b3cd in up_lookup (frame=0x803047c5c, this=0x8031f7040, loc=0x8031eb8ac, xattr_req=0x808b9be7c) at upcall.c:784
#11 0x000000080090bf46 in default_lookup_resume (frame=0x8089a865c, this=0x8031f7c40, loc=0x8031eb8ac, xdata=0x808b9be7c) at defaults.c:1872
#12 0x00000008008822f0 in call_resume_wind (stub=0x8031eb85c) at call-stub.c:2149
#13 0x000000080088ecde in call_resume (stub=0x8031eb85c) at call-stub.c:2508
#14 0x0000000805cb335e in iot_worker (data=0x8031643c0) at io-threads.c:222
#15 0x0000000801be8bd5 in thread_start (curthread=0x808954f00) at /usr/src/lib/libthr/thread/thr_create.c:289
#16 0x0000000000000000 in ?? ()
Backtrace stopped: Cannot access memory at address 0x7fffde4ef000
(gdb) set follow-fork-mode child
(gdb) set breakpoint pending on
(gdb) b compat.c:extattr_list_reshape
Function "extattr_list_reshape" not defined in "compat.c".
Breakpoint 1 (compat.c:extattr_list_reshape) pending.
(gdb) b compat.c:551
Breakpoint 2 at 0x80087df90: file compat.c, line 551.
(gdb) b sys_llistxattr
Breakpoint 3 at 0x8008829a0: file syscall.c, line 433.
(gdb) b sys_flistxattr
Breakpoint 4 at 0x800882a20: file syscall.c, line 549.
(gdb) b dict.c:1239
Breakpoint 5 at 0x80085851c: file dict.c, line 1239.
(gdb) b posix_getxattr
Breakpoint 6 at 0x804aa7960: file posix.c, line 4276.
(gdb) b _handle_list_xattr
Breakpoint 7 at 0x804aadb70: file posix-helpers.c, line 681.
(gdb) c
Continuing.
[Switching to LWP 101864 of process 24248]
Thread 7 hit Breakpoint 7, _handle_list_xattr (real_path=real_path@entry=0x7fffdf6f8ac0 "/brick2/gv/0/", fdnum=fdnum@entry=-1,
filler=filler@entry=0x7fffdf6f8a20, xattr_req=0x80420e51c) at posix-helpers.c:681
681 _handle_list_xattr (dict_t *xattr_req, const char *real_path, int fdnum,
(gdb) finish
Run till exit from #0 _handle_list_xattr (real_path=real_path@entry=0x7fffdf6f8ac0 "/brick2/gv/0/", fdnum=fdnum@entry=-1,
filler=filler@entry=0x7fffdf6f8a20, xattr_req=0x80420e51c) at posix-helpers.c:681
Thread 7 hit Breakpoint 3, sys_llistxattr (path=0x7fffdf6f8ac0 "/brick2/gv/0/", list=0x0, size=0) at syscall.c:433
433 return extattr_list_link (path, EXTATTR_NAMESPACE_USER, list, size);
(gdb) finish
Run till exit from #0 sys_llistxattr (path=0x7fffdf6f8ac0 "/brick2/gv/0/", list=0x0, size=0) at syscall.c:433
_handle_list_xattr (real_path=real_path@entry=0x7fffdf6f8ac0 "/brick2/gv/0/", fdnum=fdnum@entry=-1, filler=filler@entry=0x7fffdf6f8a20,
xattr_req=0x80420e51c) at posix-helpers.c:698
698 if (size <= 0)
Value returned is $1 = 63
(gdb) c
Continuing.
Thread 7 hit Breakpoint 3, sys_llistxattr (path=0x7fffdf6f8ac0 "/brick2/gv/0/", list=0x7fffdf6f8970 "\300\212o\337\377\177", size=63) at syscall.c:433
433 return extattr_list_link (path, EXTATTR_NAMESPACE_USER, list, size);
(gdb) finish
Run till exit from #0 sys_llistxattr (path=0x7fffdf6f8ac0 "/brick2/gv/0/", list=0x7fffdf6f8970 "\300\212o\337\377\177", size=63) at syscall.c:433
0x0000000804aadc0c in _handle_list_xattr (real_path=real_path@entry=0x7fffdf6f8ac0 "/brick2/gv/0/", fdnum=fdnum@entry=-1,
filler=filler@entry=0x7fffdf6f8a20, xattr_req=0x80420e51c) at posix-helpers.c:706
706 remaining_size = sys_llistxattr (real_path, list, size);
Value returned is $2 = 63
(gdb) print list
$3 = 0x7fffdf6f8970 "\033trusted.glusterfs.volume-id\ftrusted.gfid\025trusted.glusterfs.dht"
(gdb) finish
Run till exit from #0 0x0000000804aadc0c in _handle_list_xattr (real_path=real_path@entry=0x7fffdf6f8ac0 "/brick2/gv/0/", fdnum=fdnum@entry=-1,
filler=filler@entry=0x7fffdf6f8a20, xattr_req=0x80420e51c) at posix-helpers.c:706
0x0000000804aaf09b in posix_xattr_fill (this=this@entry=0x80455d840, real_path=real_path@entry=0x7fffdf6f8ac0 "/brick2/gv/0/", loc=loc@entry=0x803c01818,
fd=fd@entry=0x0, fdnum=fdnum@entry=-1, xattr_req=xattr_req@entry=0x80420e51c, buf=0x7fffdf6f8b30) at posix-helpers.c:767
767 _handle_list_xattr (xattr_req, real_path, fdnum, &filler);
(gdb) bt
#0 0x0000000804aaf09b in posix_xattr_fill (this=this@entry=0x80455d840, real_path=real_path@entry=0x7fffdf6f8ac0 "/brick2/gv/0/",
loc=loc@entry=0x803c01818, fd=fd@entry=0x0, fdnum=fdnum@entry=-1, xattr_req=xattr_req@entry=0x80420e51c, buf=0x7fffdf6f8b30) at posix-helpers.c:767
#1 0x0000000804a9000b in posix_lookup (frame=0x802f32424, this=0x80455d840, loc=0x803c01818, xdata=0x80420e51c) at posix.c:207
#2 0x00000008008d01a4 in default_lookup (frame=0x802f32424, this=0x80455e440, loc=0x803c01818, xdata=0x80420e51c) at defaults.c:2572
#3 0x0000000804ee377d in ctr_lookup (frame=0x802f32370, this=0x80455f040, loc=0x803c01818, xdata=0x80420e51c) at changetimerecorder.c:357
#4 0x00000008008d01a4 in default_lookup (frame=0x802f32370, this=0x80455fc40, loc=0x803c01818, xdata=0x80420e51c) at defaults.c:2572
#5 0x00000008057ee5f7 in br_stub_lookup (frame=0x802f322bc, this=0x804560840, loc=0x803c01818, xdata=0x80420e51c) at bit-rot-stub.c:2784
#6 0x00000008059fe32b in posix_acl_lookup (frame=0x802f32208, this=0x804561440, loc=0x803c01818, xattr=<optimized out>) at posix-acl.c:975
#7 0x0000000805c15f47 in pl_lookup (frame=0x802f32154, this=0x804562040, loc=0x803c01818, xdata=0x80420e51c) at posix.c:2657
#8 0x00000008008d01a4 in default_lookup (frame=0x802f32154, this=0x804562c40, loc=0x803c01818, xdata=0x80420e51c) at defaults.c:2572
#9 0x00000008008d01a4 in default_lookup (frame=0x802f32154, this=0x804563840, loc=0x803c01818, xdata=0x80420e51c) at defaults.c:2572
#10 0x00000008008d01a4 in default_lookup (frame=0x802f32154, this=0x804564440, loc=0x803c01818, xdata=0x80420e51c) at defaults.c:2572
#11 0x00000008064645b6 in up_lookup (frame=0x802f320a0, this=0x8045c8040, loc=0x803c01818, xattr_req=0x80420e51c) at upcall.c:784
#12 0x00000008008e66b2 in default_lookup_resume (frame=0x802f31fec, this=0x8045c8c40, loc=0x803c01818, xdata=0x80420e51c) at defaults.c:1872
#13 0x000000080087dea6 in call_resume (stub=0x803c017c8) at call-stub.c:2508
#14 0x0000000806677044 in iot_worker (data=0x8045303c0) at io-threads.c:222
#15 0x0000000801bc4bd5 in thread_start (curthread=0x802e18800) at /usr/src/lib/libthr/thread/thr_create.c:289
#16 0x0000000000000000 in ?? ()
Backtrace stopped: Cannot access memory at address 0x7fffdf6f9000
(gdb) list
762 filler.fd = fd;
763 filler.fdnum = fdnum;
764
765 dict_foreach (xattr_req, _posix_xattr_get_set, &filler);
766 if (list)
767 _handle_list_xattr (xattr_req, real_path, fdnum, &filler);
768
769 out:
770 return xattr;
771 }
(gdb) finish
Run till exit from #0 0x0000000804aaf09b in posix_xattr_fill (this=this@entry=0x80455d840, real_path=real_path@entry=0x7fffdf6f8ac0 "/brick2/gv/0/",
loc=loc@entry=0x803c01818, fd=fd@entry=0x0, fdnum=fdnum@entry=-1, xattr_req=xattr_req@entry=0x80420e51c, buf=0x7fffdf6f8b30) at posix-helpers.c:767
0x0000000804a9000b in posix_lookup (frame=0x802f32424, this=0x80455d840, loc=0x803c01818, xdata=0x80420e51c) at posix.c:207
207 xattr = posix_xattr_fill (this, real_path, loc, NULL, -1, xdata,
Value returned is $4 = (dict_t *) 0x80420e378
(gdb) print *xattr
Cannot access memory at address 0x0
(gdb) next
211 if (priv->update_pgfid_nlinks) {
(gdb) print *xattr
$5 = {is_static = 0 '\000', hash_size = 1, count = 0, refcount = 1, members = 0x80420e3b0, members_list = 0x0, extra_free = 0x0, extra_stdfree = 0x0,
lock = {spinlock = 0x808dd7980, mutex = 0x808dd7980}, members_internal = 0x0, free_pair = {hash_next = 0x0, prev = 0x0, next = 0x0, value = 0x0,
key = 0x0}, free_pair_in_use = _gf_false}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment