<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 07/27/2015 08:30 PM, Glomski,
      Patrick wrote:<br>
    </div>
    <blockquote
cite="mid:CALkMjdDXL3D0JwyWuvnN0cXVCWw=+utgq_s_gOy=qUPyoguSzw@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>I built a patched version of 3.6.4 and the problem does
          seem to be fixed on a test server/client when I mounted with
          those flags (acl, resolve-gids, and gid-timeout). Seeing as it
          was a test system, I can't really provide anything meaningful
          as to the performance hit seen without the gid-timeout option.
          Thank you for implementing it so quickly, though! <br>
          <br>
          Is there any chance of getting this fix incorporated in the
          upcoming 3.6.5 release?<br>
          <br>
        </div>
        Patrick<br>
      </div>
    </blockquote>
    <br>
    I am planning to include this fix in 3.6.5. This fix is still under
    review. Once it is accepted in master, it cab be backported to
    release-3.6 branch. I will wait till then and make 3.6.5.<br>
    <br>
    Regards,<br>
    Raghavendra Bhat<br>
    <br>
    <blockquote
cite="mid:CALkMjdDXL3D0JwyWuvnN0cXVCWw=+utgq_s_gOy=qUPyoguSzw@mail.gmail.com"
      type="cite">
      <div dir="ltr"><br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Thu, Jul 23, 2015 at 6:27 PM, Niels
          de Vos <span dir="ltr">&lt;<a moz-do-not-send="true"
              href="mailto:ndevos@redhat.com" target="_blank">ndevos@redhat.com</a>&gt;</span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div class="HOEnZb">
              <div class="h5">On Tue, Jul 21, 2015 at 10:30:04PM +0200,
                Niels de Vos wrote:<br>
                &gt; On Wed, Jul 08, 2015 at 03:20:41PM -0400, Glomski,
                Patrick wrote:<br>
                &gt; &gt; Gluster devs,<br>
                &gt; &gt;<br>
                &gt; &gt; I'm running gluster v3.6.3 (both server and
                client side). Since my<br>
                &gt; &gt; application requires more than 32 groups, I
                don't mount with ACLs on the<br>
                &gt; &gt; client. If I mount with ACLs between the
                bricks and set a default ACL on<br>
                &gt; &gt; the server, I think I'm right in stating that
                the server should respect<br>
                &gt; &gt; that ACL whenever a new file or folder is
                made.<br>
                &gt;<br>
                &gt; I would expect that the ACL gets in herited on the
                brick. When a new<br>
                &gt; file is created without the default ACL, things
                seem to be wrong. You<br>
                &gt; mention that creating the file directly on the
                brick has the correct<br>
                &gt; ACL, so there must be some Gluster component
                interfering.<br>
                &gt;<br>
                &gt; You reminded me on IRC about this email, and that
                helped a lot. Its very<br>
                &gt; easy to get distracted when trying to investigate
                things from the<br>
                &gt; mailinglists.<br>
                &gt;<br>
                &gt; I had a brief look, and I think we could reach a
                solution. An ugly patch<br>
                &gt; for initial testing is ready. Well... it compiles.
                I'll try to run some<br>
                &gt; basic tests tomorrow and see if it improves things
                and does not crash<br>
                &gt; immediately.<br>
                &gt;<br>
                &gt; The change can be found here:<br>
                &gt;   <a moz-do-not-send="true"
                  href="http://review.gluster.org/11732"
                  rel="noreferrer" target="_blank">http://review.gluster.org/11732</a><br>
                &gt;<br>
                &gt; It basically adds a "resolve-gids" mount option for
                the FUSE client.<br>
                &gt; This causes the fuse daemon to call getgrouplist()
                and retrieve all the<br>
                &gt; groups for the UID that accesses the mountpoint.
                Without this option,<br>
                &gt; the behavior is not changed, and /proc/$PID/status
                is used to get up to<br>
                &gt; 32 groups (the $PID is the process that accesses
                the mountpoint).<br>
                &gt;<br>
                &gt; You probably want to also mount with
                "gid-timeout=N" where N is seconds<br>
                &gt; that the group cache is valid. In the current
                master branch this is set<br>
                &gt; to 300 seconds (like the sssd default), but if the
                groups of a used<br>
                &gt; rarely change, this value can be increased.
                Previous versions had a<br>
                &gt; lower timeout which could cause resolving the
                groups on almost each<br>
                &gt; network packet that arrives (HUGE performance
                impact).<br>
                &gt;<br>
                &gt; When using this option, you may also need to enable
                server.manage-gids.<br>
                &gt; This option allows using more than ~93 groups on
                the bricks. The network<br>
                &gt; packets can only contain ~93 groups, when
                server.manage-gids is enabled,<br>
                &gt; the groups are not sent in the network packets, but
                are resolved on the<br>
                &gt; bricks with getgrouplist().<br>
                <br>
              </div>
            </div>
            The patch linked above had been tested, corrected and
            updated. The<br>
            change works for me on a test-system.<br>
            <br>
            A backport that you should be able to include in a package
            for 3.6 can<br>
            be found here: <a moz-do-not-send="true"
              href="http://termbin.com/f3cj" rel="noreferrer"
              target="_blank">http://termbin.com/f3cj</a><br>
            Let me know if you are not familiar with rebuilding patched
            packages,<br>
            and I can build a test-version for you tomorrow.<br>
            <br>
            On glusterfs-3.6, you will want to pass a gid-timeout mount
            option too.<br>
            The option enables caching of the resolved groups that the
            uid belongs<br>
            too, if caching is not enebled (or expires quickly), you
            will probably<br>
            notice a preformance hit. Newer version of GlusterFS set the
            timeout to<br>
            300 seconds (like the default timeout sssd uses).<br>
            <br>
            Please test and let me know if this fixes your use case.<br>
            <br>
            Thanks,<br>
            Niels<br>
            <div class="HOEnZb">
              <div class="h5"><br>
                <br>
                &gt;<br>
                &gt; Cheers,<br>
                &gt; Niels<br>
                &gt;<br>
                &gt; &gt; Maybe an example is in order:<br>
                &gt; &gt;<br>
                &gt; &gt; We first set up a test directory with setgid
                bit so that our new<br>
                &gt; &gt; subdirectories inherit the group.<br>
                &gt; &gt; [root@gfs01a hpc_shared]# mkdir test; cd test;
                chown pglomski.users .;<br>
                &gt; &gt; chmod 2770 .; getfacl .<br>
                &gt; &gt; # file: .<br>
                &gt; &gt; # owner: pglomski<br>
                &gt; &gt; # group: users<br>
                &gt; &gt; # flags: -s-<br>
                &gt; &gt; user::rwx<br>
                &gt; &gt; group::rwx<br>
                &gt; &gt; other::---<br>
                &gt; &gt;<br>
                &gt; &gt; New subdirectories share the group, but the
                umask leads to them being group<br>
                &gt; &gt; read-only.<br>
                &gt; &gt; [root@gfs01a test]# mkdir a; getfacl a<br>
                &gt; &gt; # file: a<br>
                &gt; &gt; # owner: root<br>
                &gt; &gt; # group: users<br>
                &gt; &gt; # flags: -s-<br>
                &gt; &gt; user::rwx<br>
                &gt; &gt; group::r-x<br>
                &gt; &gt; other::r-x<br>
                &gt; &gt;<br>
                &gt; &gt; Setting default ACLs on the server allows
                group write to new directories<br>
                &gt; &gt; made on the server.<br>
                &gt; &gt; [root@gfs01a test]# setfacl -m d:g::rwX ./;
                mkdir b; getfacl b<br>
                &gt; &gt; # file: b<br>
                &gt; &gt; # owner: root<br>
                &gt; &gt; # group: users<br>
                &gt; &gt; # flags: -s-<br>
                &gt; &gt; user::rwx<br>
                &gt; &gt; group::rwx<br>
                &gt; &gt; other::---<br>
                &gt; &gt; default:user::rwx<br>
                &gt; &gt; default:group::rwx<br>
                &gt; &gt; default:other::---<br>
                &gt; &gt;<br>
                &gt; &gt; The respect for ACLs is (correctly) shared
                across bricks.<br>
                &gt; &gt; [root@gfs02a test]# getfacl b<br>
                &gt; &gt; # file: b<br>
                &gt; &gt; # owner: root<br>
                &gt; &gt; # group: users<br>
                &gt; &gt; # flags: -s-<br>
                &gt; &gt; user::rwx<br>
                &gt; &gt; group::rwx<br>
                &gt; &gt; other::---<br>
                &gt; &gt; default:user::rwx<br>
                &gt; &gt; default:group::rwx<br>
                &gt; &gt; default:other::---<br>
                &gt; &gt;<br>
                &gt; &gt; [root@gfs02a test]# mkdir c; getfacl c<br>
                &gt; &gt; # file: c<br>
                &gt; &gt; # owner: root<br>
                &gt; &gt; # group: users<br>
                &gt; &gt; # flags: -s-<br>
                &gt; &gt; user::rwx<br>
                &gt; &gt; group::rwx<br>
                &gt; &gt; other::---<br>
                &gt; &gt; default:user::rwx<br>
                &gt; &gt; default:group::rwx<br>
                &gt; &gt; default:other::---<br>
                &gt; &gt;<br>
                &gt; &gt; However, when folders are created client-side,
                the default ACLs appear on<br>
                &gt; &gt; the server, but don't seem to be correctly
                applied.<br>
                &gt; &gt; [root@client test]# mkdir d; getfacl d<br>
                &gt; &gt; # file: d<br>
                &gt; &gt; # owner: root<br>
                &gt; &gt; # group: users<br>
                &gt; &gt; # flags: -s-<br>
                &gt; &gt; user::rwx<br>
                &gt; &gt; group::r-x<br>
                &gt; &gt; other::---<br>
                &gt; &gt;<br>
                &gt; &gt; [root@gfs01a test]# getfacl d<br>
                &gt; &gt; # file: d<br>
                &gt; &gt; # owner: root<br>
                &gt; &gt; # group: users<br>
                &gt; &gt; # flags: -s-<br>
                &gt; &gt; user::rwx<br>
                &gt; &gt; group::r-x<br>
                &gt; &gt; other::---<br>
                &gt; &gt; default:user::rwx<br>
                &gt; &gt; default:group::rwx<br>
                &gt; &gt; default:other::---<br>
                &gt; &gt;<br>
                &gt; &gt; As no groups or users were specified, I
                shouldn't need to specify a mask<br>
                &gt; &gt; for the ACL and, indeed, specifying a mask
                doesn't help.<br>
                &gt; &gt;<br>
                &gt; &gt; If it helps diagnose the problem, the volume
                options are as follows:<br>
                &gt; &gt; Options Reconfigured:<br>
                &gt; &gt; performance.io-thread-count: 32<br>
                &gt; &gt; performance.cache-size: 128MB<br>
                &gt; &gt; performance.write-behind-window-size: 128MB<br>
                &gt; &gt; server.allow-insecure: on<br>
                &gt; &gt; network.ping-timeout: 10<br>
                &gt; &gt; storage.owner-gid: 100<br>
                &gt; &gt; geo-replication.indexing: off<br>
                &gt; &gt; geo-replication.ignore-pid-check: on<br>
                &gt; &gt; changelog.changelog: on<br>
                &gt; &gt; changelog.fsync-interval: 3<br>
                &gt; &gt; changelog.rollover-time: 15<br>
                &gt; &gt; server.manage-gids: on<br>
                &gt; &gt;<br>
                &gt; &gt; This approach to server-side ACLs worked
                properly with previous versions of<br>
                &gt; &gt; gluster. Can anyone assess the situation for
                me, confirm/deny that<br>
                &gt; &gt; something changed, and possibly suggest how I
                can achieve inherited groups<br>
                &gt; &gt; with write permission for new subdirectories
                in a &gt;32-group environment?<br>
                &gt; &gt;<br>
                &gt; &gt; Thanks for your time,<br>
                &gt; &gt;<br>
                &gt; &gt; Patrick<br>
                &gt;<br>
                &gt; &gt;
                _______________________________________________<br>
                &gt; &gt; Gluster-devel mailing list<br>
                &gt; &gt; <a moz-do-not-send="true"
                  href="mailto:Gluster-devel@gluster.org">Gluster-devel@gluster.org</a><br>
                &gt; &gt; <a moz-do-not-send="true"
                  href="http://www.gluster.org/mailman/listinfo/gluster-devel"
                  rel="noreferrer" target="_blank">http://www.gluster.org/mailman/listinfo/gluster-devel</a><br>
                &gt;<br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Gluster-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Gluster-devel@gluster.org">Gluster-devel@gluster.org</a>
<a class="moz-txt-link-freetext" href="http://www.gluster.org/mailman/listinfo/gluster-devel">http://www.gluster.org/mailman/listinfo/gluster-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>