[regression] dpkg's fsync causes massive regression in Ubuntu Server and Alternate installation times
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Linux |
Invalid
|
Medium
|
|||
Release Notes for Ubuntu |
Fix Released
|
Undecided
|
Colin Watson | ||
dpkg (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Lucid |
Fix Released
|
High
|
Colin Watson | ||
dpkg (Unity Linux) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: dpkg
dpkg (1.15.5.6ubuntu4) causes a massive regression in the installation of the Ubuntu Server.
Specifically, this from the changelog, addressing Bug #559915:
- Restore fsync during package unpack (LP: #559915). This is now done
by deferring the fsync and rename for normal files in tar extraction
so that it's done in one pass afterwards, to avoid massive I/O
degradation due to the serialization from each write + fsync. When
creating hard links to normal files on extraction use the .dpkg-new
filename for source as the file is not yet in place due to the rename
deferral.
I just installed the same hardware, from the same USB stick, in an identical configuration, one on ext4 and the other on ext3.
On ext4, this took 19 minutes, 20 seconds. On ext3, this took 9 minutes, 8 seconds.
This is a 100% performance hit on Server installs. It takes now takes over twice as long to install Ubuntu servers.
While I can understand that the fsyncs() are necessary for power loss situations on apt-get upgrade/dpkg operations *after* the system has been installed, it should not be necessary at Server install time. If you lose power during a d-i installation, you will clearly need to start from scratch anyway.
The desktop installer does not suffer from this since ubiquity installations simply transfer the live image.
DEVELOPMENT BRANCH: Addressed in a merge from Debian by using one large sync before embarking on renames, rather than lots of little fsyncs.
PATCH: http://
TEST CASE: Install Ubuntu Server; measure time taken in "Select and install software" step. Compare 10.04 as released to the 10.04.1 candidate CD images which should be available for testing in the near future.
Changed in dpkg (Ubuntu): | |
importance: | Undecided → High |
status: | New → Triaged |
assignee: | nobody → Thierry Carrez (ttx) |
tags: | added: regression-potential |
tags: | added: iso-testing |
summary: |
- [regression] dpkg fsync cause massive regression in Ubuntu Server and + [regression] dpkg's fsync causes massive regression in Ubuntu Server and Alternate installation times |
Changed in dpkg (Ubuntu Lucid): | |
assignee: | nobody → Colin Watson (cjwatson) |
status: | Triaged → In Progress |
description: | updated |
Changed in linux: | |
status: | Unknown → Confirmed |
security vulnerability: | no → yes |
security vulnerability: | yes → no |
Changed in linux: | |
importance: | Unknown → Medium |
Changed in dpkg (Unity Linux): | |
status: | New → Invalid |
Changed in linux: | |
status: | Confirmed → Invalid |
tags: | added: testcase |
This would need to be workarounded in dpkg, to make it support a without-fdisk mode that would be triggered on new installs only.
I talked to the release team about it, their decision is to releasenote this issue and work to get it fixed for 10.04.1.