<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 30 Jan 2019 at 19:12, Gudrun Mareike Amedick &lt;<a href="mailto:g.amedick@uni-luebeck.de">g.amedick@uni-luebeck.de</a>&gt; 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">Hi,<br>
<br>
a bit additional info inlineAm Montag, den 28.01.2019, 10:23 +0100 schrieb Frank Ruehlemann:<br>
&gt; Am Montag, den 28.01.2019, 09:50 +0530 schrieb Nithya Balachandran:<br>
&gt; &gt; <br>
&gt; &gt; On Fri, 25 Jan 2019 at 20:51, Gudrun Mareike Amedick &lt;<br>
&gt; &gt; <a href="mailto:g.amedick@uni-luebeck.de" target="_blank">g.amedick@uni-luebeck.de</a>&gt; wrote:<br>
&gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; Hi all,<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; we have a problem with a distributed dispersed volume (GlusterFS 3.12). We<br>
&gt; &gt; &gt; have files that lost their permissions or gained sticky bits. The files<br>
&gt; &gt; &gt; themselves seem to be okay.<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; It looks like this:<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; # ls -lah $file1<br>
&gt; &gt; &gt; ---------- 1 www-data www-data 45M Jan 12 07:01 $file1<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; # ls -lah $file2<br>
&gt; &gt; &gt; -rw-rwS--T 1 $user $group 11K Jan  9 11:48 $file2<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; # ls -lah $file3<br>
&gt; &gt; &gt; ---------T 1 $user $group 6.8M Jan 12 08:17 $file3<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; These are linkto files (internal dht files) and should not be visible on<br>
&gt; &gt; the mount point. Are they consistently visible like this or do they revert<br>
&gt; &gt; to the proper permissions after some time?<br>
&gt; They didn&#39;t heal yet, even after more than 4 weeks. Therefore we decided<br>
&gt; to recommend our users to fix their files by setting the correct<br>
&gt; permissions again, which worked without problems. But for analysis<br>
&gt; reasons we still have some broken files nobody touched yet.<br>
&gt; <br>
&gt; We know these linkto files but they were never visible to clients. We<br>
&gt; did these ls-commands on a client, not on a brick.<br>
<br>
They have linkfile permissions but on brick side, it looks like this:<br>
<br>
root@gluster06:~# ls -lah /$brick/$file3<br>
---------T 2 $user $group 1.7M Jan 12 08:17 /$brick/$file3<br>
<br>
That seems to be too big for a linkfile. Also, there is no file it could link to. There&#39;s no other file with that name at that path on any other<br>
subvolume.<br></blockquote><div><br></div><div>This sounds like the rebalance failed to transition the file from a linkto to a data file once the migration was complete. Please check the rebalance logs on all nodes for any messages that refer to this file.</div><div>If you still see any such files, please check the its xattrs directly on the brick. You should see one called trusted.glusterfs.dht.linkto. Let me know if that is missing.</div><div><br></div><div>Regards,</div><div>Nithya</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
&gt; <br>
&gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; This is not what the permissions are supposed to look. They were 644 or<br>
&gt; &gt; &gt; 660 before. And they definitely had no sticky bits.<br>
&gt; &gt; &gt; The permissions on the bricks match what I see on client side. So I think<br>
&gt; &gt; &gt; the original permissions are lost without a chance to recover them, right?<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; With some files with weird looking permissions (but not with all of them),<br>
&gt; &gt; &gt; I can do this:<br>
&gt; &gt; &gt; # ls -lah $path/$file4<br>
&gt; &gt; &gt; -rw-r--r-- 1 $user $group 6.0G Oct 11 09:34 $path/$file4<br>
&gt; &gt; &gt; ls -lah $path | grep $file4<br>
&gt; &gt; &gt; -rw-r-Sr-T  1 $user$group 6.0G Oct 11 09:34 $file4<br>
&gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; So, the permissions I see depend on how I&#39;m querying them. The permissions<br>
&gt; &gt; &gt; on brick side agree with the ladder result, stat sees the former. I&#39;m not<br>
&gt; &gt; &gt; sure how that works.<br>
&gt; &gt; &gt; <br>
&gt; &gt; The S and T bits indicate that a file is being migrated. The difference<br>
&gt; &gt; seems to be because of the way lookup versus readdirp handle this  - this<br>
&gt; &gt; looks like a bug. Lookup will strip out the internal permissions set. I<br>
&gt; &gt; don&#39;t think readdirp does. This is happening because a rebalance is in<br>
&gt; &gt; progress.<br>
&gt; There is no active rebalance. At least in &quot;gluster volume rebalance<br>
&gt; $VOLUME status&quot; is none visible.<br>
&gt; <br>
&gt; And in the rebalance log file of this volume is the last line:<br>
&gt; &quot;[2019-01-11 02:14:50.101944] W … received signum (15), shutting down&quot;<br>
&gt; <br>
&gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; We know for at least a part of those files that they were okay at December<br>
&gt; &gt; &gt; 19th. We got the first reports of weird-looking permissions at January<br>
&gt; &gt; &gt; 12th. Between that, there was a rebalance running (January 7th to January<br>
&gt; &gt; &gt; 11th). During that rebalance, a node was offline for a longer period of time<br>
&gt; &gt; &gt; due to hardware issues. The output of &quot;gluster volume heal $VOLUME info&quot;<br>
&gt; &gt; &gt; shows no files though.<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; For all files with broken permissions we found so far, the following lines<br>
&gt; &gt; &gt; are in the rebalance log:<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; [2019-01-07 09:31:11.004802] I [MSGID: 109045]<br>
&gt; &gt; &gt; [dht-common.c:2456:dht_lookup_cbk] 0-$VOLUME-dht: linkfile not having link<br>
&gt; &gt; &gt; subvol for $file5<br>
&gt; &gt; &gt; [2019-01-07 09:31:11.262273] I [MSGID: 109069]<br>
&gt; &gt; &gt; [dht-common.c:1410:dht_lookup_unlink_of_false_linkto_cbk] 0-$VOLUME-dht:<br>
&gt; &gt; &gt; lookup_unlink returned with<br>
&gt; &gt; &gt; op_ret -&gt; 0 and op-errno -&gt; 0 for $file5<br>
&gt; &gt; &gt; [2019-01-07 09:31:11.266014] I [dht-rebalance.c:1570:dht_migrate_file]<br>
&gt; &gt; &gt; 0-$VOLUME-dht: $file5: attempting to move from $VOLUME-readdir-ahead-0 to<br>
&gt; &gt; &gt; $VOLUME-readdir-ahead-5<br>
&gt; &gt; &gt; [2019-01-07 09:31:11.278120] I [dht-rebalance.c:1570:dht_migrate_file]<br>
&gt; &gt; &gt; 0-$VOLUME-dht: $file5: attempting to move from $VOLUME-readdir-ahead-0 to<br>
&gt; &gt; &gt; $VOLUME-readdir-ahead-5<br>
&gt; &gt; &gt; [2019-01-07 09:31:11.732175] W [dht-rebalance.c:2159:dht_migrate_file]<br>
&gt; &gt; &gt; 0-$VOLUME-dht: $file5: failed to perform removexattr on<br>
&gt; &gt; &gt; $VOLUME-readdir-ahead-0<br>
&gt; &gt; &gt; (No data available)<br>
&gt; &gt; &gt; [2019-01-07 09:31:11.737319] W [MSGID: 109023]<br>
&gt; &gt; &gt; [dht-rebalance.c:2179:dht_migrate_file] 0-$VOLUME-dht: $file5: failed to do<br>
&gt; &gt; &gt; a stat on $VOLUME-readdir-<br>
&gt; &gt; &gt; ahead-0 [No such file or directory]<br>
&gt; &gt; &gt; [2019-01-07 09:31:11.744382] I [MSGID: 109022]<br>
&gt; &gt; &gt; [dht-rebalance.c:2218:dht_migrate_file] 0-$VOLUME-dht: completed migration<br>
&gt; &gt; &gt; of $file5 from subvolume<br>
&gt; &gt; &gt; $VOLUME-readdir-ahead-0 to $VOLUME-readdir-ahead-5<br>
&gt; &gt; &gt; [2019-01-07 09:31:11.744676] I [MSGID: 109022]<br>
&gt; &gt; &gt; [dht-rebalance.c:2218:dht_migrate_file] 0-$VOLUME-dht: completed migration<br>
&gt; &gt; &gt; of $file5 from subvolume<br>
&gt; &gt; &gt; $VOLUME-readdir-ahead-0 to $VOLUME-readdir-ahead-5<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; I&#39;ve searched the brick logs for $file5 with broken permissions and found<br>
&gt; &gt; &gt; this on all bricks from (I think) the subvolume $VOLUME-readdir-ahead-5:<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; [2019-01-07 09:32:13.821545] I [MSGID: 113030] [posix.c:2171:posix_unlink]<br>
&gt; &gt; &gt; 0-$VOLUME-posix: open-fd-key-status: 0 for $file5<br>
&gt; &gt; &gt; [2019-01-07 09:32:13.821609] I [MSGID: 113031]<br>
&gt; &gt; &gt; [posix.c:2084:posix_skip_non_linkto_unlink] 0-posix: linkto_xattr status: 0<br>
&gt; &gt; &gt; for $file5<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; Also, we noticed that many directories got their modification time<br>
&gt; &gt; &gt; updated. It was set to the rebalance date. Is that supposed to happen?<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; We had parallel-readdir enabled during the rebalance. We disabled it since<br>
&gt; &gt; &gt; we had empty directories that couldn&#39;t be deleted. I was able to delete<br>
&gt; &gt; &gt; those dirs after that.<br>
&gt; &gt; &gt; <br>
&gt; &gt; Was this disabled during the rebalance? parallel-readdirp changes the<br>
&gt; &gt; volume graph for clients but not for the rebalance process causing it to<br>
&gt; &gt; fail to find the linkto subvols.<br>
&gt; Yes, parallel-readdirp was enabled during the rebalance. But we disabled<br>
&gt; it after some files where invisible on the client side again.<br>
<br>
The timetable looks like this:<br>
<br>
December 12th: parallel-readdir enabled<br>
January 7th: rebalance started<br>
January 11th/12th: rebalance finished (varied a bit, some servers were faster)<br>
January 15th: parallel-readdir disabled<br>
<br>
&gt; <br>
&gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; Also, we have directories who lost their GFID on some bricks. Again.<br>
&gt; &gt; <br>
&gt; &gt; Is this the missing symlink problem that was reported earlier?<br>
<br>
Looks like. I had a dir with missing GFID on one brick, I couldn&#39;t see some files on client side, I recreated the GFID symlink and everything was fine<br>
again.<br>
And in the brick log, I had this entry (with 1d372a8a-4958-4700-8ef1-fa4f756baad3 being the GFID of the dir in question):<br>
<br>
[2019-01-13 17:57:55.020859] W [MSGID: 113103] [posix.c:301:posix_lookup] 0-$VOLUME-posix: Found stale gfid handle<br>
/srv/glusterfs/bricks/$brick/data/.glusterfs/1d/37/1d372a8a-4958-4700-8ef1-fa4f756baad3, removing it. [No such file or directory]<br>
<br>
Very familiar. At least, I know how to fix that :D<br>
<br>
Kind regards<br>
<br>
Gudrun<br>
<br>
&gt; &gt; <br>
&gt; &gt; Regards,<br>
&gt; &gt; Nithya<br>
&gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; What happened? Can we do something to fix this? And could that happen<br>
&gt; &gt; &gt; again?<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; We want to upgrade to 4.1 soon. Is it safe to do that or could it make<br>
&gt; &gt; &gt; things worse?<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; Kind regards<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; Gudrun Amedick_______________________________________________<br>
&gt; &gt; &gt; Gluster-users mailing list<br>
&gt; &gt; &gt; <a href="mailto:Gluster-users@gluster.org" target="_blank">Gluster-users@gluster.org</a><br>
&gt; &gt; &gt; <a href="https://lists.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">https://lists.gluster.org/mailman/listinfo/gluster-users</a><br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; Gluster-users mailing list<br>
&gt; &gt; <a href="mailto:Gluster-users@gluster.org" target="_blank">Gluster-users@gluster.org</a><br>
&gt; &gt; <a href="https://lists.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">https://lists.gluster.org/mailman/listinfo/gluster-users</a></blockquote></div></div>