Created
May 21, 2017 08:57
-
-
Save pellaeon/bfa9b094e11b47a88bf51f5aa73b9a6d to your computer and use it in GitHub Desktop.
Gluster volume process GDB output
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(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