** Description changed:

- Placeholder for new MIR attempt for glusterfs. Old MIR is bug #1274247
+ Old MIR is bug #1274247
+ 
+ (launchpad will definitely wrap these lines and break the formatting: if
+ you want, I can post this content elsewhere, like a git repo)
+ 
+ [Availability]
+ The package glusterfs is already in Ubuntu universe.
+ The package glusterfs build for the architectures it is designed to work on.
+ It currently builds and works for architetcures: amd64 arm64 armhf ppc64el 
riscv64 s390x
+ 
+ Link to package https://launchpad.net/ubuntu/+source/glusterfs
+ 
+ [Rationale]
+ The package glusterfs is required in Ubuntu main for:
+ - The package glusterfs will generally be useful for a large part of
+   our user base
+ - Additionally new use-cases enabled by this are:
+   - samba clustering support (we carry a packaging delta to disable it in 
Ubuntu)
+   - qemu native glusterfs support (bug #1246924)
+ 
+ [Security]
+ For the security review, consider the points raised last time this was done, 
in 2014, when the first MIR was rejected:
+ 
+ https://bugs.launchpad.net/ubuntu/+source/glusterfs/+bug/1274247/comments/14
+ 
+ cppcheck issues were fixed:
+ https://bugs.launchpad.net/ubuntu/+source/glusterfs/+bug/1274247/comments/19
+ https://bugzilla.redhat.com/show_bug.cgi?id=1086460
+ 
+ 
+ There are some strncat warnings during build, like these:
+ In file included from /usr/include/string.h:519,
+                  from ../../../../libglusterfs/src/glusterfs/glusterfs.h:15,
+                  from trash.h:13,
+                  from trash.c:10:
+ In function ‘strncat’,
+     inlined from ‘trash_truncate_mkdir_cbk’ at trash.c:1730:13:
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h:135:10: warning: 
‘__strncat_chk’ output may be truncated copying between 0 and 4095 bytes from a 
string of length 4095 [-Wstringop-truncation]
+   135 |   return __builtin___strncat_chk (__dest, __src, __len,
+       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   136 |                                   __glibc_objsize (__dest));
+       |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~
+ 
+ 
+ and
+ 
+ In file included from /usr/include/string.h:519,
+                  from ../../../../libglusterfs/src/glusterfs/glusterfs.h:15,
+                  from glusterd-utils.c:23:
+ In function ‘strncat’,
+     inlined from ‘glusterd_add_peers_to_auth_list’ at 
glusterd-utils.c:14997:27:
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h:135:10: warning: 
‘strncat’ specified bound depends on the length of the source argument 
[-Wstringop-overflow=]
+   135 |   return __builtin___strncat_chk (__dest, __src, __len,
+       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   136 |                                   __glibc_objsize (__dest));
+       |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~
+ 
+ 
+ - http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=glusterfs
+ Plenty of vulnerabilities, but the most recent affected version is 4.1.4. 
Bionic ships 3.13.2, and focal has 7.2 already. Jammy is on 10.0 (proposed)
+ 
+ - site:www.openwall.com/lists/oss-security glusterfs
+ Previously mentioned CVEs
+ No hits more recent than 2018. One from 2020, but about 
kube-controller-manager, which can affect storage volume types and glusterfs is 
in the list.
+ 
+ - 
https://ubuntu.com/security/cve?q=glusterfs&package=&priority=&version=&status=
+ Plenty of CVEs, but note that from Focal onwards we are not affected
+ 
+ - https://github.com/gluster/glusterdocs/security
+ Unclear if this is used. The advisories tab is empty.
+ 
+ In general, it looks like that was a good shift to having a more secure
+ product, when compared to older versions, at least in terms of CVEs and
+ advisories.
+ 
+ 
+ - no `suid` or `sgid` binaries
+ - plenty of executables in `/sbin` and `/usr/sbin`
+ - Package installs services:
+ -rw-r--r--   1 root root   604 Nov 25 13:38 
/lib/systemd/system/glusterd.service
+ -rw-r--r--   1 root root   416 Nov 25 13:38 
/lib/systemd/system/glustereventsd.service
+ 
+ glusterd runs as root and opens port 24007/tcp:
+ root         650  0.0  0.8 463484 16948 ?        SLsl 13:07   0:00 
/usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO
+ 
+ glusterfsd runs as root, and has port 51886/tcp open in the port list further 
below, but no dedicated service file for it. It must be spawned on demand:
+ root         879  0.0  0.9 678344 18976 ?        SLsl 13:07   0:00 
/usr/sbin/glusterfsd -s j3-gluster --volfile-id gv0.j3-gluster.data-brick1-gv0 
-p /var/run/gluster/vols/gv0/j3-gluster-data-brick1-gv0.pid -S 
/var/run/gluster/151590e8a4cfce4e.socket --brick-name /data/brick1/gv0 -l 
/var/log/glusterfs/bricks/data-brick1-gv0.log --xlator-option 
*-posix.glusterd-uuid=039bb0cb-e8ae-4109-80c4-1680c0900046 --process-name brick 
--brick-port 51886 --xlator-option gv0-server.listen-port=51886
+ 
+ glusterfs runs as root.
+ On the server:
+ root         890  0.0  0.6 597576 13564 ?        SLsl 13:07   0:00 
/usr/sbin/glusterfs -s localhost --volfile-id shd/gv0 -p 
/var/run/gluster/shd/gv0/gv0-shd.pid -l /var/log/glusterfs/glustershd.log -S 
/var/run/gluster/ee6b53133c702918.socket --xlator-option 
*replicate*.node-uuid=039bb0cb-e8ae-4109-80c4-1680c0900046 --process-name 
glustershd --client-pid=-6
+ 
+ On a client with a volume mounted:
+ root       47453  0.0  0.9 649100 18400 ?        SLsl 12:58   0:00 
/usr/sbin/glusterfs --process-name fuse --volfile-server=j1-gluster 
--volfile-id=/gv0 /mnt
+ 
+ 
+ - Package does not open privileged ports (ports < 1024)
+ On a server peered with two other servers, and one connected client:
+ $ sudo netstat -anp|grep gluster|grep -v ^unix
+ tcp        0      0 0.0.0.0:24007           0.0.0.0:*               LISTEN    
  650/glusterd
+ tcp        0      0 0.0.0.0:51886           0.0.0.0:*               LISTEN    
  879/glusterfsd
+ tcp        0      0 192.168.122.32:49150    192.168.122.156:24007   
ESTABLISHED 650/glusterd
+ tcp        0      0 192.168.122.32:51886    192.168.122.157:49147   
ESTABLISHED 879/glusterfsd
+ tcp        0      0 192.168.122.32:49145    192.168.122.156:54119   
ESTABLISHED 890/glusterfs
+ tcp        0      0 192.168.122.32:24007    192.168.122.211:49147   
ESTABLISHED 650/glusterd
+ tcp        0      0 127.0.0.1:24007         127.0.0.1:49148         
ESTABLISHED 650/glusterd
+ tcp        0      0 192.168.122.32:24007    192.168.122.156:49150   
ESTABLISHED 650/glusterd
+ tcp        0      0 127.0.0.1:49148         127.0.0.1:24007         
ESTABLISHED 890/glusterfs
+ tcp        0      0 192.168.122.32:24007    192.168.122.32:49149    
ESTABLISHED 650/glusterd
+ tcp        0      0 192.168.122.32:49148    192.168.122.211:55591   
ESTABLISHED 890/glusterfs
+ tcp        0      0 192.168.122.32:49142    192.168.122.32:51886    
ESTABLISHED 890/glusterfs
+ tcp        0      0 192.168.122.32:51886    192.168.122.32:49142    
ESTABLISHED 879/glusterfsd
+ tcp        0      0 192.168.122.32:49149    192.168.122.32:24007    
ESTABLISHED 879/glusterfsd
+ tcp        0      0 192.168.122.32:51886    192.168.122.156:49145   
ESTABLISHED 879/glusterfsd
+ tcp        0      0 192.168.122.32:51886    192.168.122.211:49145   
ESTABLISHED 879/glusterfsd
+ tcp        0      0 192.168.122.32:49151    192.168.122.211:24007   
ESTABLISHED 650/glusterd
+ 
+ There are no listening ports on a client, just the ones opened by the
+ connection(s) established to the server.
+ 
+ 
+ - Packages does not contain extensions to security-sensitive software
+   (filters, scanners, plugins, UI skins, ...)
+ This is a networked filesystem, I'd say it's security sensitive.
+ There are integration points with other packages, like samba 
(https://wiki.samba.org/index.php/GlusterFS) and libvirt 
(https://libvirt.org/storage.html#StorageBackendGluster), and of course qemu 
itself.
+ 
+ 
+ [Quality assurance - function/usage]
+ - After installing the package it must be possible to make it working with
+   a reasonable effort of configuration and documentation reading.
+ The package needs post install configuration or reading of documentation, 
there isn't a safe default because you need to configure how you want your 
storage to be used.
+ There is an easy quickstart page provided by upstream at 
https://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/ that works 
very well and is an excellent starting point. The instructions use `yum` to 
install the package, but it's the same package name in Ubuntu and `apt` can be 
used interchangeably. Same for the systemd service units.
+ 
+ [Quality assurance - maintenance]
+ The package is maintained well in Debian/Ubuntu and has not too many and long 
term critical bugs open
+ 
+ Ubuntu bugs:
+ https://bugs.launchpad.net/ubuntu/+source/glusterfs
+ - memory leak claims on older versions (3.13.x, 2.20)
+ - remaining bugs against much older versions of both the package and ubuntu
+ These bugs should be triaged, and the ones against EOL releases should be 
closed
+ 
+ Debian bugs:
+ https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=glusterfs
+ Just some that we (Canonical) filed recently, I'm a bit surprised.
+ 
+ Upstream issues:
+ https://github.com/gluster/glusterfs/issues
+ - very active, and many bugs to improve the code, like replacing of functions 
or getting rid of warnings
+ - Many open pull requests: https://github.com/gluster/glusterfs/pulls , many 
with test failures showing good CI/CD practice
+ 
+ Release cadence:
+ Good documented release cadence: https://www.gluster.org/release-schedule/
+ 
+ 
+ - The package does not deal with exotic hardware we cannot support
+ 
+ 
+ [Quality assurance - testing]
+ The package does not run a test at build time because who knows.
+ I found remnants of unit test infrastructure, and there is a makefile target 
"make check-TESTS", but there are zero tests to run.
+ I asked about this in the upstream slack channel: 
https://gluster.slack.com/archives/CHVRH5D50/p1638906018050000
+ """
+ hi everyone, quick (I hope) question, I'm going over requirements to bring 
the gluster package into ubuntu main (it's in universe), and one of the 
questions that I have to answer is if there are build-time tests. I've seen the 
"make check" target, and it prints some output, but always with a zero test 
count. It's like the test infrastructure is there, but there are no tests. Is 
that accurate?
+ 1 reply
+ Amar Tumballi (kadalu.io)  1 day ago
+ We don't run any tests when making the build (ie, no make test or make check 
like infra). All tests are run as part of PR review part, and nightly.
+ """
+ 
+ They have a collection of jeknins jobs defined here:
+ https://github.com/gluster/build-jobs
+ 
+ They have system tests, but I didn't get them to run out of the box yet. 
Maybe once working, these could be used as DEP8 tests, if they prove to be 
reliable enough.
+ Other than that, without upstream's help, I don't think we can add build-time 
tests.
+ 
+ Upstream does have tests that run on each branch before it's merged:
+ https://github.com/gluster/glusterfs/pulls
+ 
+ 
+ The package does not run an autopkgtest.
+ It shouldn't be hard to add some simple yet good enough DEP8 tests, as the 
server and client portions can be on the same machine. Maybe even a container, 
since it's a FUSE filesystem (TBD).
+ 
+ [Quality assurance - packaging]
+ debian/watch is present and works
+ 
+ This package does not yield massive lintian Warnings, Errors
+ $ lintian --pedantic -I 2>&1 | tee ../lintian.log
+ E: glusterfs changes: bad-distribution-in-changes-file jammy
+ W: glusterfs source: newer-standards-version 4.6.0 (current is 4.5.1)
+ I: glusterfs source: unused-override very-long-line-length-in-source-file 
configure *
+ I: glusterfs source: unused-override very-long-line-length-in-source-file 
doc/gluster.8 *
+ I: glusterfs source: unused-override very-long-line-length-in-source-file 
extras/glusterfs-mode.el *
+ I: glusterfs source: unused-override very-long-line-length-in-source-file 
xlators/features/changelog/lib/src/Makefile.in *
+ I: glusterfs-common: unused-override library-not-linked-against-libc 
usr/lib/*/glusterfs/*/xlator/mount/api.so
+ N: 15 hints overridden (1 warning, 14 info); 5 unused overrides
+ 
+ Debian report: https://lintian.debian.org/sources/glusterfs
+ 
+ Lintian overrides are present. Notable ones are:
+ - executable-in-usr-lib 
(https://lintian.debian.org/tags/executable-in-usr-lib?version=2.113.26) for 
lots of scripts and other executables. The override file has no explanation. 
d/changelog is full of the generic expression "adjust lintian overrides" in 
many uploads.
+ - no-symbols-control-file 
(https://lintian.debian.org/tags/no-symbols-control-file). My guess is these 
shared libraries are not used externally, and just by glusterfs itself. That 
being said, there is no symbol file at all in this package, and we do have 
external packages using gluster. I checked the rdeps of libglusterd0 and 
libglusterfs0, and found one external package linking to libglusterfs0: 
nfs-ganesha-gluster (in Ubuntu: debian might have more).
+ 
+ This package does not rely on obsolete or about to be demoted packages.
+ This package has no python2 or GTK2 dependencies
+ The package will not be installed by default
+ 
+ Packaging and build is easy, link to d/rules:
+ https://git.launchpad.net/ubuntu/+source/glusterfs/tree/debian/rules
+ 
+ [UI standards]
+ The server itself is not necessarily end-user facing, but client tools are. 
That being said, administrators would use them, and not really an end-user, if 
I understand this point correctly.
+ In cany case, there are no translations for this package.
+ 
+ [Dependencies]
+ No further depends or recommends dependencies that are not yet in main
+ Note that firewalld (universe) is a build-dep, and enabled in ./configure, 
but all that does is install a firewalld xml file defining the glusterfs 
services. It does NOT pull in firewalld.
+ 
+ [Standards compliance]
+ This package correctly follows FHS and Debian Policy.
+ Maybe the biggest violation is executables in usr/lib, instead of 
/usr/libexec, but even that is flagged as "pedantic" by lintian.
+ 
+ The security team might want to know why this one was overriden:
+ O: glusterfs-common: hardening-no-fortify-functions 
usr/lib/x86_64-linux-gnu/glusterfs/10.0/xlator/features/cloudsync.so
+ d/changelog has this entry about it, from 2016:
+   * Adjust false positive lintian overrides for 
hardening-no-fortify-functions.
+ 
+ 
+ [Maintenance/Owner]
+ Owning Team will be ubuntu-server
+ Team is not yet subscribed, but will subscribe to the package before promotion
+ 
+ This does not use static builds
+ 
+ [Background information]
+ The Package description explains the package well
+ Upstream Name is glusterfs
+ Link to upstream project https://www.gluster.org/ and 
https://github.com/gluster/glusterfs

** Changed in: glusterfs (Ubuntu)
       Status: Triaged => New

** Changed in: glusterfs (Ubuntu)
     Assignee: Andreas Hasenack (ahasenack) => (unassigned)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1950321

Title:
  [MIR] glusterfs

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glusterfs/+bug/1950321/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to