<div dir="ltr"><div dir="ltr"><div>Hi Brad,</div><div><br></div><div>Find my comments inline below.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 14, 2023 at 6:57 PM Brad Clemmons Jr <<a href="mailto:brad.clemmons@gmail.com">brad.clemmons@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi all, <br>Running into a problem with my gluster here in a LAB env. Production is a slightly different build(distributed replicated with multiple arbiter bricks) and I don't see the same errors...yet. I only seem to have this problem on 2 client vm's that I ran "setfattr -n trusted.io-stats-dump -v output_file_id mount_point" on while trying to test for latency issues. Curious if anyone has run into a similar situation with the bad file descriptor mess below and knows what I'm doing wrong or missing, besides everything...</div></div></blockquote><div><br></div><div>So you only see the problem on the clients where you ran the setfattr command ? or the command was run in more clients but only some of them had the issue ?</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>I had built this gluster in one location, only to receive notice months later the clients were now going to be connecting from another location (different vcenter but with 10G backend). It's basically storing hundreds of thousands of what are usually small flat files.</div></div></blockquote><div><br></div><div>For small files, the critical factor is latency between the sites, not bandwidth. Gluster needs to send several requests for each accessed file, so if the latency is significant, the delay is multiplied. For directory based operations the effects are bigger because it may need many more internal operations.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>Ran into what seemed to be latency issues(4+sec response) even doing something as simple as an LS of a directory mounted with only a few folders in it mounted on the remote clients. Granted some of those folders have thousands of small files... That led me down the setfattr path testing latency.<br></div></div></blockquote><div><br></div><div>The directory access operations are the worst performing ones in Gluster, and they are very latency-sensitive.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br>Reads/writes on that directory yesterday evening after the setfattr was set was fine(albeit slightly slow) and I got a latency report in /var/run/gluster/logfilename. </div><div><br></div><div>I figured we can work out the latency issues, but the problem encountered this morning is that I now cannot create a file via touch, dd, vi etc... on that same mount point without the following errors. This happens now with a client in both the same location as the gluster and a remote client. </div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">"# touch /mnt/stor/test3<br>touch: failed to close '/mnt/stor/test3': Bad file descriptor"</blockquote></div><div><br></div><div>Yet the file actually gets created...</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"># ls -al /mnt/stor/test3.test<br>-rw-r--r--. 1 root root 0 Feb 14 12:39 /mnt/stor/test3</blockquote><div><br></div><div>If I mount the volume directly on one of the gluster servers themselves and create a file that way(via dd, touch, etc...), I receive no error...<br></div><div><br></div><div>I've tried unmounting on the clients and remounting. No effect. I even tried rebooting a client. No effect. As far as I can tell from the gluster side, the gluster volume status, peer status, etc... all think the gluster is fine. Thoughts/ideas?<br></div></div></blockquote><div><br></div><div>Does this happen for any file that you create in any directory, or only for some files or files created in some directory ?</div><div><br></div><div>It's really weird that even after a reboot the same client cannot create files while another client can create them correctly.<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div><br></div><div>I also see the following in the /var/log/gluster/mountpoint.log file on the clients for each attempt to create a file:<br>Similar errors for the Client in both same location as the gluster and a remote client:<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">"[2023-02-14 16:23:27.705871] I [MSGID: 122062] [ec.c:334:ec_up] 0-stor-disperse-1: Going UP<br>[2023-02-14 16:23:27.707347] I [fuse-bridge.c:5271:fuse_init] 0-glusterfs-fuse: FUSE inited with protocol versions: glusterfs 7.24 kernel 7.33<br>[2023-02-14 16:23:27.707374] I [fuse-bridge.c:5899:fuse_graph_sync] 0-fuse: switched to graph 0<br>[2023-02-14 16:23:45.648560] E [MSGID: 122066] [ec-common.c:1273:ec_prepare_update_cbk] 0-stor-disperse-0: Unable to get config xattr. FOP : 'FXATTROP' failed on gfid 864dbaf8-1012-4b79-afe4-89de0ace2628 [No data available]<br>[2023-02-14 16:23:45.648620] W [fuse-bridge.c:1697:fuse_setattr_cbk] 0-glusterfs-fuse: 98: SETATTR() /test8 => -1 (No data available)<br>[2023-02-14 16:23:45.648653] E [MSGID: 122034] [ec-common.c:706:ec_child_select] 0-stor-disperse-0: Insufficient available children for this request (have 0, need 2). FOP : 'FXATTROP' failed on gfid 864dbaf8-1012-4b79-afe4-89de0ace2628<br>[2023-02-14 16:23:45.648663] E [MSGID: 122037] [ec-common.c:2320:ec_update_size_version_done] 0-stor-disperse-0: Failed to update version and size. FOP : 'FXATTROP' failed on gfid 864dbaf8-1012-4b79-afe4-89de0ace2628 [Input/output error]<br>[2023-02-14 16:23:45.648770] E [MSGID: 122077] [ec-generic.c:204:ec_flush] 0-stor-disperse-0: Failing FLUSH on 864dbaf8-1012-4b79-afe4-89de0ace2628 [Bad file descriptor]<br>[2023-02-14 16:23:45.649022] W [fuse-bridge.c:1945:fuse_err_cbk] 0-glusterfs-fuse: 99: FLUSH() ERR => -1 (Bad file descriptor)<br>[2023-02-14 16:23:45.648996] E [MSGID: 122077] [ec-generic.c:204:ec_flush] 0-stor-disperse-0: Failing FLUSH on 864dbaf8-1012-4b79-afe4-89de0ace2628 [Bad file descriptor]"</blockquote></div></blockquote><div><br></div><div>I saw this problem once, but we were not able to identify the cause (or even reproduce it). There's a simple workaround that consists in recreating the missing config xattr, but if you are ok, I would like to try to identify the root cause to be able to completely avoid the problem. Otherwise it could happen again and you will need to recreate the xattr manually again.</div><div><br></div><div>Could you set the client log level to TRACE and try again ?</div><div><br></div><div><span style="font-family:monospace"> # gluster volume set <volname> client-log-level TRACE</span></div><div><br></div><div>Once done, you can reset the log level to the default value:</div><div><br></div><div><div><span style="font-family:monospace"> # gluster volume reset <volname> client-log-level</span></div><div><br></div><div>And then provide the log of the mountpoint.<br></div></div><div><br></div><div>Even if you don't get any visible error from a "good" client, can you check its logs to see if there's any error ? some errors could be "hidden" if the update succeeds on enough bricks.</div><div><br></div><div>BTW, could you create a Git Hub issue for this at <a href="https://github.com/gluster/glusterfs/issues">https://github.com/gluster/glusterfs/issues</a> ? It will be easier to work on this through Git Hub.</div><div><br></div><div>Best regards,</div><div><br></div><div>Xavi</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div><br></div><div>Gluster volume info sans hostname/ip specifics:<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"># gluster volume info stor<br>Volume Name: stor<br>Type: Distributed-Disperse<br>Volume ID: 6e94e3ce-cc15-494d-a2ad-3729e7589cdd<br>Status: Started<br>Snapshot Count: 0<br>Number of Bricks: 2 x (2 + 1) = 6<br>Transport-type: tcp<br>Bricks:<br>Brick1: stor01:/data/brick01a/brick<br>Brick2: stor02:/data/brick02a/brick<br>Brick3: stor03:/data/brick03a/brick<br>Brick4: stor01:/data/brick01b/brick<br>Brick5: stor02:/data/brick02b/brick<br>Brick6: stor03:/data/brick03b/brick<br>Options Reconfigured:<br>diagnostics.count-fop-hits: on<br>diagnostics.latency-measurement: on<br>features.ctime: off<br>transport.address-family: inet<br>storage.fips-mode-rchecksum: on<br>nfs.disable: on</blockquote><div><br></div><div>Thanks,</div><div>Brad</div></div>
________<br>
<br>
<br>
<br>
Community Meeting Calendar:<br>
<br>
Schedule -<br>
Every 2nd and 4th Tuesday at 14:30 IST / 09:00 UTC<br>
Bridge: <a href="https://meet.google.com/cpu-eiue-hvk" rel="noreferrer" target="_blank">https://meet.google.com/cpu-eiue-hvk</a><br>
Gluster-users mailing list<br>
<a href="mailto:Gluster-users@gluster.org" target="_blank">Gluster-users@gluster.org</a><br>
<a href="https://lists.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">https://lists.gluster.org/mailman/listinfo/gluster-users</a><br>
</blockquote></div></div>