Advertise with Googlier.com pages tagged larch https://blog.liw.fi/tag/larch/ blog.liw.fi ikiwiki Sat, 30 Nov 2013 17:48:08 +0000 Obnam 1.6.1 (backup software) and larch 1.20131130 (B-tree) releases: serious bug fixes https://blog.liw.fi/posts/obnam-1.6/ https://blog.liw.fi/posts/obnam-1.6/ announcement larch obnam Sat, 30 Nov 2013 17:46:42 +0000 2013-11-30T17:48:08Z <p>Backups are fun and exciting! Restores are exciting, in a terrifying and stressful way. Fixing serious bugs is gratifying, in a depressing way.</p> <p>I am glad to announce two software releases: <a href="http://liw.fi/obnam/">Obnam</a> version 1.6.1 and <a href="http://liw.fi/larch/">larch</a> version 1.20131130. Obnam is my backup application, larch is a Python copy-on-write B-tree implementation that Obnam uses. I've uploaded the new versions to Debian unstable and to my own apt repository at [code.liw.fi] (also for wheezy). (I don't have the energy to upload to Debian backports: help is welcome there.)</p> <p>These are mainly bug fix releases, and minor improvements. The larch release fixes serious problems, and everyone should be upgrading.</p> <p>NEWS for larch:</p> <ul> <li><p>Serious bug fixed: the "KeyError" crash for reference counts. This was false memory use optimisation, which triggered a rare bug in related code. Repeatable test case by Rob Kendrick, and helpful analysis by Itamar Turing-Trauring.</p></li> <li><p>Serious bug fixed: another "node missing" bug. This crash was caused by a bug that overwrote on-disk reference count groups with zeroes. Repeatable test case by Rob Kendrick.</p></li> <li><p>Fixes to fsck from Antoine Brenner.</p></li> </ul> <p>NEWS for Obnam (combining versions 1.6 and 1.6.1, both released today):</p> <ul> <li><p>Fix Debian package dependencies correctly.</p></li> <li><p>Stop logging paramiko exceptions that get converted into another type of exception by the SFTP plugin in Obnam.</p></li> <li><p><code>obnam-benchmark</code> can now use an installed version of larch. Patch by Lars Kruse.</p></li> <li><p>Obnam has been ported to FreeBSD by Itamar Turner-Trauring of HybridCluster.</p></li> <li><p>Backup progress reporting now reports scanned file data, not just backed up file data. This will hopefully be less confusing to people.</p></li> <li><p>The <code>list-keys</code>, <code>client-keys</code>, and <code>list-toplevels</code> commands now obey a new option, <code>--key-details</code>, to show the usernames attached to each public key. Patch by Lars Kruse.</p></li> <li><p>New option <code>--ssh-command</code> to set the command Obnam runs when invoking ssh. patch by Lars Kruse.</p></li> <li><p><code>obnam clients</code> can now be used without being an existing client. Patch by Itamar Turner-Trauring.</p></li> <li><p>New option <code>--ssh-host-keys-check</code> to better specify how SSH host keys should be checked. Patch by Itamar Turner-Trauring.</p></li> </ul> <p>Bug fixes:</p> <ul> <li><p>Fix<code>"obnam list-toplevels</code> so it doesn't give an error when it's unable to read the per-client directory of another client, when encryption is used. Fix by Lars Kruse.</p></li> <li><p>Fix the encryption plugin to give a better error message when it looks for client directories but fails to find them. Fix by Lars Kruse.</p></li> <li><p><code>obnam list-toplevels</code> got confused when the repository contained extra files, such as "lock" (left there by a previous, crashed Obnam run). It no longer does. Fix by Lars Kruse.</p></li> <li><p>The SFTP plugin now handles another error code (EACCESS) when writing a file and the directory it should go into not existing. Patch by Armin Größlinger.</p></li> <li><p>Obnam's manual page now explains about breaking long logical lines into multiple physical ones.</p></li> <li><p>The <code>/~/</code> path prefix in SFTP URLs works again, at least with sufficiently new versions of Paramiko (1.7.7.1 in Debian wheezy is OK). Reported by Lars Kruse.</p></li> <li><p>The Nagios plugin to report errors in a way Nagios expects. Patch by Martijn Grendelman.</p></li> <li><p>The Nagios plugin for Obnam now correctly handles the case where a backup repository for a client exists, but does not have a backup yet. Patch by Lars Kruse.</p></li> <li><p><code>obnam ls</code> now handles trailing slashes in filename arguments. Reported by Biltong.</p></li> <li><p>When restoring a backup, Obnam will now continue past errors, instead of aborting with the first one. Patch by Itamar Turner-Trauring.</p></li> </ul> Obnam 1.5 (backup software) release https://blog.liw.fi/posts/obnam-1.5/ https://blog.liw.fi/posts/obnam-1.5/ announcement larch obnam Thu, 08 Aug 2013 22:38:57 +0000 2013-08-08T22:38:57Z <p>I've just pushed out the release files for <a href="http://liw.fi/obnam/">Obnam version 1.5</a>, my backup application, and <a href="http://liw.fi/larch/">Larch, my B-tree library</a>, which Obnam uses. They are available via my home page (http://liw.fi/). These versions have alos been uploaded to Debian unstable.</p> <p>NEWS for Obnam:</p> <ul> <li>Terminal progress reporting now updated only every 0.1 seconds, instead of 0.01 seconds, to reduce terminal emulator CPU usage. Reported by Neal Becker.</li> <li>Empty exclude patterns are ignored. Previously, a configuration file line such as "exclude = foo, bar," (note trailing comma) would result in an empty pattern, which would match everything, and therefore nothing would be backed up. Reported by Sharon Kimble.</li> <li>A FUSE plugin to access (read-only) data from the backup repository has been added. Written by Valery Yundin.</li> </ul> <p>NEWS for larch:</p> <ul> <li>Bug fix in how Larch handles partly-comitted B-tree journals in read-only mode. Previously, this would result in a crash if, say, a node had been removed, but the B-tree metadata hadn't been committed.</li> </ul> Obnam 1.4 (backup software) release https://blog.liw.fi/posts/obnam-1.4/ https://blog.liw.fi/posts/obnam-1.4/ announcement larch obnam Sat, 16 Mar 2013 19:26:54 +0000 2013-03-16T19:26:54Z <p>I've just pushed out the release files for <a href="http://liw.fi/obnam/">Obnam version 1.4</a>, my backup application, and <a href="http://liw.fi/larch/">Larch, my B-tree library</a>, which Obnam uses. They are available via my home page (http://liw.fi/). Since Debian is frozen, I am not uploading packages to Debian, but .deb files are available from my <a href="http://liw.fi/code/">personal apt repository</a> for intrepid explorers. (I will be uploading to Debian again after the freeze. I am afraid I'm too lazy to upload to experimental, or do backports. Help is welcome!)</p> <p>From the Obnam NEWS file:</p> <ul> <li>The<code>`ls</code> command now takes filenames as (optional) arguments, instead of a list of generations. Based on patch by Damien Couroussé.</li> <li>Even more detailed progress reporting during a backup.</li> <li>Add --fsck-skip-generations option to tell fsck to not check any generation metadata.</li> <li>The default log level is now INFO, instead of DEBUG. This is to be considered a quantum leap in the continuing rise of the maturity level of the software. (Actually, the change is there just to save some disk space and I/O for people who don't want to be involved in Obnam development and don't want to have massive log files.)</li> <li>The default sizes for the <code>lru-size</code> and <code>upload-queue-size</code> settings have been reduced, to reduce the memory impact of Obnam.</li> <li><code>obnam restore</code> now reports transfer statistics at the end, similarly to what <code>obnam backup</code> does. Suggested by "S. B.".</li> </ul> <p>Bug fixes:</p> <ul> <li>If listing extended attributes for a filesystem that does not support them, Obnam no longer crashes, just silently does not backup extended attributes. Which aren't there anyway.</li> <li>A bug in handling stat lookup errors was fixed. Reported by Peter Palfrader. Symptom: <code>AttributeError: 'exceptions.OSError' object has no attribute 'st_ino'</code> in an error message or log file.</li> <li>A bug in a restore crashing when failing to set extended attributes on the restored file was fixed. Reported by "S. B.".</li> <li>Made it clearer what is happening when unlocking the repository due to errors, and fixed it so that a failure to unlock is also an error. Reported by andrewsh.</li> <li>The dependency on Larch is now for 1.20121216 or newer, since that is needed for fsck to work.</li> <li>The manual page did not document the client name arguments to the <code>add-key</code> and <code>remove-key</code> subcommands. Reported by Lars Kruse.</li> <li>Restoring symlinks as root would fail. Reported and fixed by David Fries.</li> <li>Only set ssh user/port if explicitily requested, otherwise let ssh select them. Reported by Michael Goetze, fixed by David Fries.</li> <li>Fix problem with old version of paramiko and chdir. Fixed by Nick Altmann.</li> <li>Fix problems with signed vs unsigned values for struct stat fields. Reported by Henning Verbeek.</li> </ul> Obnam 1.3 (backup software) and other releases https://blog.liw.fi/posts/obnam-1.3/ https://blog.liw.fi/posts/obnam-1.3/ announcement cliapp larch obnam Mon, 17 Dec 2012 19:57:58 +0000 2012-12-17T19:57:58Z <p>I've just pushed out the release files for <a href="http://liw.fi/obnam/">Obnam version 1.3</a>, my backup application, as well as <a href="http://liw.fi/larch/">Larch, my B-tree library</a>, and <a href="http://liw.fi/cliapp/">cliapp, my Python framework for command line applications</a>. They are available via my home page (http://liw.fi/). Since Debian is frozen, I am not uploading packages to Debian, but .deb files are available from my <a href="http://liw.fi/code/">personal apt repository</a> for the intrepid. (I will be uploading to Debian again after the freeze. I am afraid I'm too lazy to upload to experimental, or do backports. Help is welcome!)</p> <p>From the Obnam NEWS file:</p> <ul> <li>When creating files in the backup repository, Obnam tries to avoid NFS synchronisation problems by first writing a temporary file and then creating a hardlink to the actual filename. This works badly on filesystems that do not allow hard links, such as VFAT. If creating the hardlink fails, Obnam now further tries to use the <code>open(2)</code> system call with the <code>O_EXCL</code> flag to create the target file. This should allow things to work with both NFS and VFAT.</li> <li>More detailed progress reporting during the backup.</li> <li>Manual page now covers the diff subcommand. Patch by Peter Valdemar Mørch.</li> <li>Speed optimisation patch for backing up files in inode numbering order, from Christophe Vu-Brugier.</li> <li>A setuid or setgid bit is now not restored if Obnam is not used by root or the same user as the owner of the restored file.</li> <li>Many new settings to control "obnam fsck", mainly to reduce the amount of checking being done in order to make it faster. However, fsck is has lost some features (checks), which will be added back in a future release.</li> <li>More frequent fsck progress reporting. Some speed optimisations to fsck.</li> </ul> <p>Bug fixes for Obnam:</p> <ul> <li>Empty values for extended attributes are now backed up correctly. Previously they would cause an infinite loop.</li> <li>Extended attributes without values are now ignored. This is different from attributes with empty values. Reported by Vladimir Elisseev.</li> <li>An empty port number in sftp URLs is now handled correctly. Found based on report by Anton Shevtsov.</li> <li>A bad performance bug when backing up full systems (starting from the filesystem root directory) has been fixed. At the beginning of each generation, Obnam removes any directories that are not part of the current backup roots. This is necessary so that if you change the backup roots, the old stuff doesn't hang around forever. However, when the backup root is the filesystem root, due to the now-fixed bug Obnam would first remove everything, and then back it up all over again. This "worked", but was quite slow. Thanks to Nix for reporting the problem.</li> <li>Obnam now runs GnuPG explicitly with the "no text mode" setting, to override a "text mode" setting in the user's configuration. The files Obnam encrypts need to be treated as binary, not text files. Reported by Robin Sheat.</li> <li>A shared B-tree concurrency bug has been fixed: If another instance of Obnam was modifying a shared B-tree, Obnam would crash and abort a backup, possibly leaving lock files lying around. Now a failure to look up a chunk via its checksum is ignored, and the backup continues.</li> <li>Bugs in how Python OSError exceptions were being raises have been fixed. Error messages should now be somewhat clearer.</li> <li>Unset or wrongly set variable "full" fixed in "obnam diff". Reported by ROGERIO DE CARVALHO BASTOS and patched by Peter Valdemar Mørch.</li> <li>Setuid and setgid bits are now restored correctly, when restore happens as root. Reported by Pavel Kokolemin.</li> <li>Obnam now complains if no backup roots have been specfied.</li> </ul> <p>NEWS for Larch:</p> <ul> <li>Make fsck progress reporting be a bit more fine grained.</li> </ul> <p>NEWS for cliapp:</p> <ul> <li>Options in option groups are now included in manual page SYNOPSIS and OPTIONS sections.</li> <li><code>--log=syslog</code> message format improvement by Daniel Silverstone. No longer includes a timestamp, since syslog adds it anyway. Also, the process name is now set on Linux.</li> <li>Make the default subcommand argument synopsis be an empty string, instead of None. Reported by Sam Thursfield.</li> <li>Meliae memory dumping support has been fixed. Reported by Joey Hess.</li> <li>Memory profiling reports can now be done at minimum intervals in seconds, rather than every time the code asks for them. This can reduce the overhead of memory profiling quite a lot.</li> <li>If there are any subcommands, cliapp now adds a subcommand called <code>help</code>, unless one already exists.</li> <li>For every boolean setting foo, there will no be a --no-foo option to be used on the command line.</li> </ul> Larch 1.20120527 (Python B-tree library) https://blog.liw.fi/posts/larch-1.20120527/ https://blog.liw.fi/posts/larch-1.20120527/ announcement larch Sun, 27 May 2012 10:04:04 +0000 2012-05-27T10:04:04Z <p>It has been a long time since I announced a version of <a href="http://liw.fi/larch/">Larch</a> on my blog: about 14 months. A fair bit has happened since then: see the <a href="http://liw.fi/larch/NEWS/">NEWS</a> file for details. Below is the snippet for today's release.</p> <p>This is an implementation of particular kind of B-tree, based on research by Ohad Rodeh. See "B-trees, Shadowing, and Clones" (copied here with permission of author) for details on the data structure. This is the same data structure that btrfs uses. Note that my implementation is independent from the btrfs one, and might differ from what the paper describes.</p> <p>The distinctive feature of this B-tree is that a node is never modified (sort-of). Instead, all updates are done by copy-on-write. Among other things, this makes it easy to clone a tree, and modify only the clone, while other processes access the original tree. This is utterly wonderful for my backup application, and that's the reason I wrote larch in the first place.</p> <p>See the <a href="http://liw.fi/larch/">home page</a> and <a href="http://liw.fi/larch/README/">README</a> for more information; the <a href="https://blog.liw.fi/tag/larch/code.liw.fi/larch/docs/">API docs</a> may be amusingly sparse.</p> <h2>Version 1.20120527, released 2012-05-27</h2> <ul> <li>New version scheme. Thank you, Joey Hess.</li> <li>The on-disk data structures and file formats are now declared frozen. An automatic test has been added to verify that things do not break.</li> </ul> Obnam version 0.15 and 0.15.1, and btree/larch 0.19 https://blog.liw.fi/posts/obnam-0.15.1/ https://blog.liw.fi/posts/obnam-0.15.1/ larch obnam Mon, 21 Mar 2011 08:53:42 +0000 2011-03-21T08:53:42Z <p>I've just made a couple of software releases:</p> <ul> <li>larch version 0.19. This used to be known as btree, but others are using that name, so I changed it. This is my copy-on-write B-tree library for Python. <ul> <li>see <a href="http://liw.fi/larch/">http://liw.fi/larch/</a> for more information</li> <li>see <a href="http://liw.fi/larch/NEWS/">http://liw.fi/larch/NEWS/</a> for changes</li> </ul> </li> <li>obnam version 0.15, and then the obligatory brown paper bag version 0.15.1 to fix a build issue under pbuilder. Obnam is my backup program. <ul> <li>see <a href="http://braawi.org/obnam/">http://braawi.org/obnam/</a> for more information</li> </ul> </li> </ul> <p>This is the first release of Obnam this year. Below is a summary of the changes.</p> <p>My <a href="http://liw.fi/code/">apt repository</a> has binary packages for amd64, i386, and armel. I've started mentoring someone to help me maintain the Debian packages, and hope to start uploading Obnam and its dependencies to Debian within a few weeks.</p> <p>Obnam is still in ALPHA, but the only missing thing for moving to BETA is <a href="http://braawi.org/obnam/encryption/">encryption</a> support. There's a bunch of bugs that need to be fixed, but I'm not going to block the BETA on them. I'd be very interested to hear any feedback on this version.</p> <p>Bugs fixed:</p> <ul> <li>Manual page GPL copyright blurb is now properly marked up as a comment. (Thanks, Joey Hess.)</li> <li>README now links to python-lru correctly. (Thanks, Erik Johansson.)</li> </ul> <p>Improvements and other changes:</p> <ul> <li>Filenames and directories are backed up in sorted order. This should make it easier to know how far obnam's gotten.</li> <li>The location where backups are stored is now called the repository, instead of the store. Suggested by Joey Hess.</li> <li>The repository and the target directory for restored data are now both created by Obnam, if they don't already exist. Suggested by Joey Hess.</li> <li>Better control of logging, using the new <code>--trace</code> option.</li> <li>Manual page now explains making backups a little better.</li> <li>Default value for <code>--lru-size</code> reduced to 500, for great improvement in memory used, without, it seems, much decrease in speed.</li> <li><code>obnam verify</code> now reports success explicitly. Based on question from Joey Hess.</li> <li><code>obnam verify</code> now accepts both non-option arguments and the <code>--root</code> option. Suggested by Joey Hess.</li> <li><code>obnam forget</code> now accepts "generation specifiers", not just numeric generation ids. This means that <code>obnam forget latest</code> works.</li> <li>I/O statistics are logged more systematically.</li> <li><code>obnam force-lock</code> introduced, to allow breaking a lock left behind if obnam crashes. But it never does, of course. (Well, except if there's a bug, like when a file changes at the wrong moment.)</li> <li><code>obnam genids</code> introduced, to list generation ids without any other data. The old command <code>obnam generations</code> still works, and lists other info about each generation as well, but that's sometimes bad for scripting.</li> <li>The <code>--dump-memory-profile</code> option now accepts the value <code>simple</code>, for reporting basic memory use. It has such a small impact that it's the default.</li> <li>Obnam now stores the version of the on-disk format in the repository. This should allow it to handle repositories created by a different version and act suitably (hopefully without wiping all your backups).</li> </ul>