[Gluster-devel] query about why glustershd can not afr_selfheal_recreate_entry because of "afr: Prevent null gfids in self-heal entry re-creation"

Ravishankar N ravishankar at redhat.com
Tue Jan 16 05:44:16 UTC 2018


+ gluster-devel


On 01/15/2018 01:41 PM, Zhou, Cynthia (NSB - CN/Hangzhou) wrote:
> Hi glusterfs expert,
>         Good day,
>         When I do some test about glusterfs self-heal I find following 
> prints showing when dir/file type get error it cannot get self-healed.
> *Could you help to check if it is an expected behavior ? because I 
> find the code change **_https://review.gluster.org/#/c/17981/_**add 
> check for **iatt->ia_typ**e,  so what if a file’s ia_type get 
> corrupted ? in this case it should not get self-healed* ?

Yes, without knowing the ia-type , afr_selfheal_recreate_entry () cannot 
decide what type of FOP to do (mkdir/link/mknod ) to create the 
appropriate file on the sink. You would need to find out why the source 
brick is not returning valid ia_type. i.e. why replies[source].poststat 
is not valid.
Thanks,
Ravi

> Thanks!
> //////////////////heal info output////////////////////////////
> [root at sn-0:/home/robot]
> # gluster v heal export info
> Brick sn-0.local:/mnt/bricks/export/brick
> Status: Connected
> Number of entries: 0
> Brick sn-1.local:/mnt/bricks/export/brick
> /testdir - Is in split-brain
> Status: Connected
> Number of entries: 1
> //////////////////////////////////////////sn-1 glustershd 
> log///////////////////////////////////////////////////
> [2018-01-15 03:53:40.011422] I [MSGID: 108026] 
> [afr-self-heal-entry.c:887:afr_selfheal_entry_do] 
> 0-export-replicate-0: performing entry selfheal on 
> b217d6af-4902-4f18-9a69-e0ccf5207572
> [2018-01-15 03:53:40.013994] W [MSGID: 114031] 
> [client-rpc-fops.c:2860:client3_3_lookup_cbk] 0-export-client-1: 
> remote operation failed. Path: (null) 
> (00000000-0000-0000-0000-000000000000) [No data available]
> [2018-01-15 03:53:40.014025] E [MSGID: 108037] 
> [afr-self-heal-entry.c:92:afr_selfheal_recreate_entry] 
> 0-export-replicate-0: Invalid ia_type (0) or 
> gfid(00000000-0000-0000-0000-000000000000). source brick=1, 
> pargfid=00000000-0000-0000-0000-000000000000, name=IORFILE_82_2
> //////////////////////////////////////gdb attached to sn-1 
> glustershd/////////////////////////////////////////////
> root at sn-1:/var/log/glusterfs]
> # gdb attach 2191
> GNU gdb (GDB) 8.0.1
> Copyright (C) 2017 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-linux-gnu".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <_http://www.gnu.org/software/gdb/bugs/_>.
> Find the GDB manual and other documentation resources online at:
> <_http://www.gnu.org/software/gdb/documentation/_>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> attach: No such file or directory.
> Attaching to process 2191
> [New LWP 2192]
> [New LWP 2193]
> [New LWP 2194]
> [New LWP 2195]
> [New LWP 2196]
> [New LWP 2197]
> [New LWP 2239]
> [New LWP 2241]
> [New LWP 2243]
> [New LWP 2245]
> [New LWP 2247]
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
> 0x00007f90aca037bd in __pthread_join (threadid=140259279345408, 
> thread_return=0x0) at pthread_join.c:90
> 90 pthread_join.c: No such file or directory.
> (gdb) break afr_selfheal_recreate_entry
> Breakpoint 1 at 0x7f90a3b56dec: file afr-self-heal-entry.c, line 73.
> (gdb) c
> Continuing.
> [Switching to Thread 0x7f90a1b8e700 (LWP 2241)]
> Thread 9 "glustershdheal" hit Breakpoint 1, 
> afr_selfheal_recreate_entry (frame=0x7f90980018d0, dst=0, source=1, 
> sources=0x7f90a1b8ceb0 "", dir=0x7f9098011940, name=0x7f909c015d48 
> "IORFILE_82_2",
> inode=0x7f9098001bd0, replies=0x7f90a1b8c890) at afr-self-heal-entry.c:73
> 73 afr-self-heal-entry.c: No such file or directory.
> (gdb) n
> 74      in afr-self-heal-entry.c
> (gdb) n
> 75      in afr-self-heal-entry.c
> (gdb) n
> 76      in afr-self-heal-entry.c
> (gdb) n
> 77      in afr-self-heal-entry.c
> (gdb) n
> 78      in afr-self-heal-entry.c
> (gdb) n
> 79      in afr-self-heal-entry.c
> (gdb) n
> 80      in afr-self-heal-entry.c
> (gdb) n
> 81      in afr-self-heal-entry.c
> (gdb) n
> 82      in afr-self-heal-entry.c
> (gdb) n
> 83      in afr-self-heal-entry.c
> (gdb) n
> 85      in afr-self-heal-entry.c
> (gdb) n
> 86      in afr-self-heal-entry.c
> (gdb) n
> 87      in afr-self-heal-entry.c
> (gdb) print iatt->ia_type
> $1 = IA_INVAL
> (gdb) print gf_uuid_is_null(iatt->ia_gfid)
> $2 = 1
> (gdb) bt
> #0 afr_selfheal_recreate_entry (frame=0x7f90980018d0, dst=0, source=1, 
> sources=0x7f90a1b8ceb0 "", dir=0x7f9098011940, name=0x7f909c015d48 
> "IORFILE_82_2", inode=0x7f9098001bd0, replies=0x7f90a1b8c890)
>     at afr-self-heal-entry.c:87
> #1 0x00007f90a3b57d20 in __afr_selfheal_merge_dirent 
> (frame=0x7f90980018d0, this=0x7f90a4024610, fd=0x7f9098413090, 
> name=0x7f909c015d48 "IORFILE_82_2", inode=0x7f9098001bd0,
> sources=0x7f90a1b8ceb0 "", healed_sinks=0x7f90a1b8ce70 
> "\001\001A\230\220\177", locked_on=0x7f90a1b8ce50 
> "\001\001\270\241\220\177", replies=0x7f90a1b8c890) at 
> afr-self-heal-entry.c:360
> #2 0x00007f90a3b57da5 in __afr_selfheal_entry_dirent 
> (frame=0x7f90980018d0, this=0x7f90a4024610, fd=0x7f9098413090, 
> name=0x7f909c015d48 "IORFILE_82_2", inode=0x7f9098001bd0, source=-1,
> sources=0x7f90a1b8ceb0 "", healed_sinks=0x7f90a1b8ce70 
> "\001\001A\230\220\177", locked_on=0x7f90a1b8ce50 
> "\001\001\270\241\220\177", replies=0x7f90a1b8c890) at 
> afr-self-heal-entry.c:379
> #3 0x00007f90a3b5881f in afr_selfheal_entry_dirent 
> (frame=0x7f90980018d0, this=0x7f90a4024610, fd=0x7f9098413090, 
> name=0x7f909c015d48 "IORFILE_82_2", parent_idx_inode=0x0, 
> subvol=0x7f90a4022240,
> full_crawl=_gf_true) at afr-self-heal-entry.c:610
> #4 0x00007f90a3b58da8 in afr_selfheal_entry_do_subvol 
> (frame=0x7f90980110f0, this=0x7f90a4024610, fd=0x7f9098413090, 
> child=1) at afr-self-heal-entry.c:742
> #5 0x00007f90a3b5953a in afr_selfheal_entry_do (frame=0x7f90980110f0, 
> this=0x7f90a4024610, fd=0x7f9098413090, source=-1, 
> sources=0x7f90a1b8d810 "",
> healed_sinks=0x7f90a1b8d7d0 "\001\001\270\241\220\177") at 
> afr-self-heal-entry.c:908
> #6 0x00007f90a3b59b79 in __afr_selfheal_entry (frame=0x7f90980110f0, 
> this=0x7f90a4024610, fd=0x7f9098413090, locked_on=0x7f90a1b8d920 
> "\001\001\\Z") at afr-self-heal-entry.c:1002
> #7 0x00007f90a3b5a051 in afr_selfheal_entry (frame=0x7f90980110f0, 
> this=0x7f90a4024610, inode=0x7f9098011940) at afr-self-heal-entry.c:1112
> #8 0x00007f90a3b519b1 in afr_selfheal_do (frame=0x7f90980110f0, 
> this=0x7f90a4024610, gfid=0x7f90a1b8db20 
> "\262\027֯I\002O\030\232i\340\314\365 urP۸\241\220\177") at 
> afr-self-heal-common.c:2459
> #9 0x00007f90a3b51aa7 in afr_selfheal (this=0x7f90a4024610, 
> gfid=0x7f90a1b8db20 "\262\027֯I\002O\030\232i\340\314\365 
> urP۸\241\220\177") at afr-self-heal-common.c:2500
> #10 0x00007f90a3b5cf1f in afr_shd_selfheal (healer=0x7f90a4033510, 
> child=1, gfid=0x7f90a1b8db20 "\262\027֯I\002O\030\232i\340\314\365 
> urP۸\241\220\177") at afr-self-heald.c:334
> #11 0x00007f90a3b5d2c8 in afr_shd_index_heal (subvol=0x7f90a4022240, 
> entry=0x7f909c0169c0, parent=0x7f90a1b8dde0, data=0x7f90a4033510) at 
> afr-self-heald.c:431
> #12 0x00007f90adc74654 in syncop_mt_dir_scan (frame=0x7f90a407b4f0, 
> subvol=0x7f90a4022240, loc=0x7f90a1b8dde0, pid=-6, 
> data=0x7f90a4033510, fn=0x7f90a3b5d17c <afr_shd_index_heal>,
> xdata=0x7f90a4002380, max_jobs=1, max_qlen=1024) at syncop-utils.c:407
> #13 0x00007f90a3b5d4e1 in afr_shd_index_sweep (healer=0x7f90a4033510, 
> vgfid=0x7f90a3b84f38 "glusterfs.xattrop_index_gfid") at 
> afr-self-heald.c:481
> #14 0x00007f90a3b5d5bd in afr_shd_index_sweep_all 
> (healer=0x7f90a4033510) at afr-self-heald.c:504
> #15 0x00007f90a3b5d894 in afr_shd_index_healer (data=0x7f90a4033510) 
> at afr-self-heald.c:584
> #16 0x00007f90aca024a5 in start_thread (arg=0x7f90a1b8e700) at 
> pthread_create.c:465
> #17 0x00007f90ac2e959f in clone () at 
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> (gdb)
> Best regards,
> *Cynthia **(周琳)*
> MBB SM HETRAN SW3 MATRIX
> Storage
> Mobile: +86 (0)18657188311

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-devel/attachments/20180116/08a033e7/attachment-0001.html>


More information about the Gluster-devel mailing list