Your message dated Thu, 25 Aug 2011 18:35:05 +0000
with message-id <[email protected]>
and subject line Bug#633033: fixed in piuparts 0.41
has caused the Debian Bug report #633033,
regarding piuparts: libeatmydata alternative
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
633033: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633033
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: piuparts
Version: 0.40
Severity: wishlist
Tags: patch

Attached patch addresses TODO item re libeatmydata ..

"- use libeatmydata - either install it in all chroots or find a
better way to use it."

With Squeeze release, the version of dpkg in stable has had an option
"--force-unsafe-io" which, while it certainly does not disable ALL
fsync() calls, does disable some of them (sorry, that is extent of
my knowledge).

So, while installing libeatmydata into chroot would be superior,
the attached patch provides for running dpkg with the ”force-unsafe-io”
option (whether directly or via apt) in the chroot.

I added a command-line option to allow the user to DISABLE
this behavior; i.e. the default is to use force-unsafe-io. If
the user specifies "--dpkg-noforce-unsafe-io" on piuparts
command line, dpkg runs as normal (safe, but slower).

Hopefully, the text of the option in piuparts --help, and in man
page is clear.

diff --git a/piuparts.1.txt b/piuparts.1.txt
--- a/piuparts.1.txt
+++ b/piuparts.1.txt
@@ -62,6 +62,9 @@
 *--dpkg-force-confdef*::
   Make dpkg use --force-confdef, which lets dpkg always choose the default action when a modified conffile is found. This option will make piuparts ignore errors it was designed to report and therefore should only be used to hide problems in depending packages. 'This option shall normally not be used.' (See #466118.)
 
+*--dpkg-noforce-unsafe-io*::
+  Prevent running dpkg with --force-unsafe-io.  --force-unsafe-io causes dpkg to skip certain file system syncs known to cause substantial performance degradation on some filesystems.  Thus, including this option reverts to safe but slower behavior.
+
 *-i* 'filename', *--ignore*='filename'::
   Add a filename to the list of filenames to be ignored when comparing changes before and after installation. By default, piuparts ignores files that always change during a package installation and uninstallation, such as *dpkg* status files. The filename should be relative to the root of the chroot (e.g., _var/lib/dpkg/status_). This option can be used as many times as necessary.
 
diff --git a/piuparts.py b/piuparts.py
--- a/piuparts.py
+++ b/piuparts.py
@@ -698,6 +698,8 @@
                         proxy = m.group(1)
         if proxy:
             lines.append('Acquire::http::Proxy "%s";\n' % proxy)
+        if settings.dpkg_force_unsafe_io:
+            lines.append('Dpkg::Options {"--force-unsafe-io";};\n')
         if settings.dpkg_force_confdef:
             lines.append('Dpkg::Options {"--force-confdef";};\n')
 
@@ -706,10 +708,15 @@
 
     def create_dpkg_conf(self):
         """Create /etc/dpkg/dpkg.cfg.d/piuparts inside the chroot."""
+        lines = []
+        if settings.dpkg_force_unsafe_io:
+            lines.append('force-unsafe-io\n')
         if settings.dpkg_force_confdef:
+            lines.append('force-confdef\n')
+            logging.info("Warning: dpkg has been configured to use the force-confdef option. This will hide problems, see #466118.")
+        if lines:
           create_file(self.relative("etc/dpkg/dpkg.cfg.d/piuparts"),
-                    'force-confdef\n')
-          logging.info("Warning: dpkg has been configured to use the force-confdef option. This will hide problems, see #466118.")
+            "".join(lines))
 
     def create_policy_rc_d(self):
         """Create a policy-rc.d that prevents daemons from running."""
@@ -1953,6 +1960,11 @@
                       default="-o MaxPriority=required -o UseRecommends=no -f -n apt debfoster",
 		      help="Run debfoster with different parameters (default: -o MaxPriority=required -o UseRecommends=no -f -n apt debfoster).")
 
+    parser.add_option("--dpkg-noforce-unsafe-io",
+                      default=False,
+                      action='store_true',
+		      help="Default is to run dpkg with --force-unsafe-io option, which causes dpkg to skip certain file system syncs known to cause substantial performance degradation on some filesystems.  This option turns that off; i.e. dpkg WILL use safe-io")
+
     parser.add_option("--dpkg-force-confdef",
                       default=False,
                       action='store_true',
@@ -2142,6 +2154,7 @@
     settings.warn_on_others = opts.warn_on_others
     settings.warn_on_leftovers_after_purge = opts.warn_on_leftovers_after_purge
     settings.debfoster_options = opts.debfoster_options.split()
+    settings.dpkg_force_unsafe_io = not opts.dpkg_noforce_unsafe_io
     settings.dpkg_force_confdef = opts.dpkg_force_confdef
 
     if opts.adt_virt is None:

--- End Message ---
--- Begin Message ---
Source: piuparts
Source-Version: 0.41

We believe that the bug you reported is fixed in the latest version of
piuparts, which is due to be installed in the Debian FTP archive:

piuparts_0.41.dsc
  to main/p/piuparts/piuparts_0.41.dsc
piuparts_0.41.tar.gz
  to main/p/piuparts/piuparts_0.41.tar.gz
piuparts_0.41_all.deb
  to main/p/piuparts/piuparts_0.41_all.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Holger Levsen <[email protected]> (supplier of updated piuparts package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Wed, 24 Aug 2011 13:47:07 +0200
Source: piuparts
Binary: piuparts
Architecture: source all
Version: 0.41
Distribution: unstable
Urgency: low
Maintainer: piuparts developers team <[email protected]>
Changed-By: Holger Levsen <[email protected]>
Description: 
 piuparts   - .deb package installation, upgrading, and removal testing tool
Closes: 526045 588482 632046 632924 633033
Changes: 
 piuparts (0.41) unstable; urgency=low
 .
   * piupartslib/packagesdb.py: Apply patch by Scott Schaefer to also consider
     alternative depends: the algorithm used to select the "best" alternative
     is:
      1) Prefer first alternative in state "essential-required"
      2) If no "essential-required" alternatives, prefer first alternative
         in state "successfully-tested"
      3) Otherwise, prefer first alternative in state
         "waiting-to-be-tested" IF NO REMAINING alternatives are in one of the
         "unknown/fail" states
     For this two new states have been introduced:
      a) "unknown-preferred-alternative": equivalent of "unknown", this defers
         calculation of this package's state, since one or more of its
         alternative depends are "unknown" (or
         "unknown-preferred-alternative"), and no alternative is either
         "essential-required" or "successfully-tested".  The alternatives will
         be re-tested on subsequest pass.
      b) "no-dependency-from-alternatives-exists": if none of the alternatives
         can be found in the archive.
     (Closes: #526045)
   * piuparts-report.py:
     - correct a typo from the patch for #523950.
     - make_stats_graph: draw the two new states as well.
     - point to source code in git instead of svn.
   * piuparts.py:
     - use proxy settings either from apt configuration or http_proxy
       environment variable, the latter overwriting the former (if present)
       - Thanks to Scott Schaefer for the patch. (Closes: #632046)
     - new option "--no-install-purge-test" to only do upgrade tests
       - Thanks to Andreas Bergmann for the patch (Closes: #588482)
     - run dpkg with --force-unsafe-io by default and introduce new option
       "--dpkg-noforce-unsafe-io" to disable this feature. (Closes: #633033)
       Thanks to Scott once more!
     - new option: "--fail-on-broken-symlinks". Remove option "--warn-symlinks"
       as this is the default now.
   * piuparts-slave:
     - check if chroot-tgz is older than max-tgz-age (defaulting to 30 days)
       and recreate it, if it is. Keep backup and put in back in place when
       debootstrapping a new chroot-tgz fails. Retry after min-tgz-retry-delay
       seconds. Thanks to Scott Schaefer for the patch. (Closes: #632924)
     - document new configuration options max-tgz-age and min-tgz-retry-delay
       in README.txt.
     - fix bug in piuparts-slave which prevented running a single section by
       including section name as command-line argument - thanks again to Scott
       and see 632924 too.
   * debian/control:
     - require python >= 2.6.6-3~, get rid of python-support build-depends.
     - add X-Python-Version: pseudo-header
   * debian/rules: use dh_python2 instead of python-support to build the
     package
   * Makefile: build for python 2.6 and 2.7 instead of 2.5 and 2.6.
   * Source code is now stored in git.
     http://anonscm.debian.org/gitweb/?p=piuparts/piuparts.git
     git clone git+ssh://git.debian.org/git/piuparts/piuparts.git
     Thanks to Thomas Koch for setting those up and keeping history!
   * The configuration and scripts used on piatti.debian.org have also been
     moved to git, the URLs are the same, just s#piuparts#piatti#.
   * Add entry about git to NEWS.
   * Update Vcs-*-Headers in control to reflect move to git.
Checksums-Sha1: 
 c38f260e935a9d9e3d36ad55784206cf678b9462 986 piuparts_0.41.dsc
 71a3625ddf0abbb9aebe499aaf793e390b72d5b9 80650 piuparts_0.41.tar.gz
 9c75d7fd97984f652be01c47cb6a1ecc0405c782 93202 piuparts_0.41_all.deb
Checksums-Sha256: 
 c13746d26aa8f4a9a05ee6aa311bd7d3bc1c1b95b5ea3810576f68e4df90168b 986 
piuparts_0.41.dsc
 b086263f2ab231f3d8328a20563c0370a446b6e0882cdaed8abe559a9d304ad4 80650 
piuparts_0.41.tar.gz
 9e38774b9dbebe18f1911cc30bcf7fdb89933b214f51fc6916cfc56cc48146e9 93202 
piuparts_0.41_all.deb
Files: 
 a67496db2269b5cdf8ad2ad9ffc7efe0 986 devel extra piuparts_0.41.dsc
 eb13891471ea690f95230319849e8c93 80650 devel extra piuparts_0.41.tar.gz
 f753579e3100cfd853bae1df15db87ad 93202 devel extra piuparts_0.41_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iD8DBQFOVpE2UHLQNqxYNSARAg9uAKC3Z/keSG2Zh4q4ur4nOYQeM3RifQCggmjL
x592S2raqhL1kayhhku3a0k=
=zxk+
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to