Hello community,

here is the log from the commit of package squashfs for openSUSE:Factory 
checked in at 2016-07-01 09:54:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/squashfs (Old)
 and      /work/SRC/openSUSE:Factory/.squashfs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "squashfs"

Changes:
--------
--- /work/SRC/openSUSE:Factory/squashfs/squashfs.changes        2016-02-09 
13:30:13.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.squashfs.new/squashfs.changes   2016-07-01 
09:54:37.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Jun 16 15:18:06 UTC 2016 - d...@suse.com
+
+- Machines with 1024 processors or more reach the limit of maximum
+  file descriptors (bsc#984136). Other limits apply that may be
+  hit for no good reason. Simply limit the number of used threads
+  to an arbitrary number, squashfs-thread-limit.
+
+-------------------------------------------------------------------

New:
----
  squashfs-thread-limit

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ squashfs.spec ++++++
--- /var/tmp/diff_new_pack.oFFXrH/_old  2016-07-01 09:54:38.000000000 +0200
+++ /var/tmp/diff_new_pack.oFFXrH/_new  2016-07-01 09:54:38.000000000 +0200
@@ -29,6 +29,7 @@
 Patch1:         0001-mksquashfs-fix-rare-race-in-fragment-waiting-in-file.patch
 # PATCH-FIX-UPSTREAM 0002-Fix-2GB-limit-of-the-is_fragment-.-function.patch 
boo#953723
 Patch2:         0002-Fix-2GB-limit-of-the-is_fragment-.-function.patch
+Patch3:         squashfs-thread-limit
 %if %{?suse_version} > 1315
 BuildRequires:  liblz4-devel
 %endif
@@ -47,6 +48,7 @@
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
 
 %build
 sed -i -e "s,-O2,%{optflags}," squashfs-tools/Makefile

++++++ squashfs-thread-limit ++++++
--- squashfs4.3/squashfs-tools/mksquashfs.c.orig        2014-05-13 
00:18:20.000000000 +0200
+++ squashfs4.3/squashfs-tools/mksquashfs.c     2016-06-16 17:06:56.347792650 
+0200
@@ -4126,6 +4126,15 @@ void initialise_threads(int readq, int f
                processors = sysconf(_SC_NPROCESSORS_ONLN);
 #endif
        }
+       /* Every frag_thrd will:
+        * * occupy a slot in the process table (_SC_CHILD_MAX), and will
+        * * allocate SQUASHFS_FILE_MAX_SIZE (currently 1MiB), which is
+        *   accounted towards the per-process datasize limit, and will
+        * * open 1 file descriptor (_SC_OPEN_MAX).
+        * Before we hit any of those limits on big irons, limit
+        * ourselves to an impressive but sane arbitrary maximum.
+        */
+       if (processors > 64) processors = 64;
 
        if(multiply_overflow(processors, 3) ||
                        multiply_overflow(processors * 3, sizeof(pthread_t)))

Reply via email to