Package: dpkg
Version: 1.17.26
Severity: important
Dear Maintainer,
* What led up to the situation?
Installation of a system takes an extreme long time. The systems have
RAID controllers included:
- Serial Attached SCSI controller: LSI Logic / Symbios Logic SAS2008
PCI-Express Fusion-MPT SAS-2
- Serial Attached SCSI controller: Intel Corporation C606 chipset Dual
4-Port SATA/SAS Storage Control Unit
Classic SATA harddisks are connected to the IO controllers.
Normally an install takes 10 minutes. On these systems it takes 50
minutes.
Machine informations:
Base Board Information
Manufacturer: Supermicro
Product Name: X9DR3-F
Version: 1.11A
Serial Number: VM2BS00000
Asset Tag: To be filled by O.E.M.
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: To be filled by O.E.M.
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
Base Board Information
Manufacturer: Supermicro
Product Name: X8DTH
Version: 11A
Serial Number: M0IS00000
Asset Tag: To Be Filled By O.E.M.
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: To Be Filled By O.E.M.
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
* What exactly did you do (or not do) that was effective (or
ineffective)?
Perform a normal install process.
* Analysis
By bisecting the source code of "dpkg" package with git showed that
commit 87b0b20b86407baf1deb4e91b3fd839e01228ac8
commit 87b0b20b86407baf1deb4e91b3fd839e01228ac8
Author: Guillem Jover <[email protected]>
Date: Tue Jul 15 21:00:52 2014 +0200
dpkg: Try to preallocate the disk size for extracted files
This might help in avoiding filesystem fragmentation, and possibly
improve performance on some filesystems.
We use the system specific methods if available, and only use
posix_fallocate() if nothing else is available, because on some
systems
its semantics are counter to what we want to obtain here, as the
libc
library will fallback to manually writing '\0' to each block to
force
the preallocation, instead of just failing and leaving the
application
to do so if desired.
introduced the massive slow down of the install process.
After "git revert" of this commit the installation behaved as expected.
So the problematic system call on these systems is "fallocate".
-- System Information:
Debian Release: 8.4
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages dpkg depends on:
ii libbz2-1.0 1.0.6-7+b3
ii libc6 2.19-18+deb8u4
ii liblzma5 5.1.1alpha+20120614-2+b3
ii libselinux1 2.3-2
ii tar 1.27.1-2+b1
ii zlib1g 1:1.2.8.dfsg-2+b1
dpkg recommends no packages.
Versions of packages dpkg suggests:
ii apt 1.0.9.8.3
-- no debconf information