From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 652B61384B4 for ; Mon, 4 Jan 2016 21:49:53 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id C7F05E088C; Mon, 4 Jan 2016 21:49:39 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 8B897E07D5 for ; Mon, 4 Jan 2016 21:49:38 +0000 (UTC) Received: from [IPv6:2001:470:8840::2] (unknown [IPv6:2001:470:8840::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: ryao) by smtp.gentoo.org (Postfix) with ESMTPSA id EB22C340754; Mon, 4 Jan 2016 21:49:36 +0000 (UTC) To: "zfs-discuss@zfsonlinux.org" From: Richard Yao Subject: [gentoo-dev] Change in Gentoo ZFS packaging policy X-Enigmail-Draft-Status: N1110 Cc: "zfs-devel@zfsonlinux.org" , "gentoo-dev@lists.gentoo.org" Message-ID: <568AE8E2.8040502@gentoo.org> Date: Mon, 4 Jan 2016 16:49:22 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="NxG3U3eiMbafXeNDfe2KOkdtapOSBcHG0" X-Archives-Salt: 4d7ce784-892f-499c-a499-28f5fcd17d33 X-Archives-Hash: a9b6686e66a4a22530f12133f9a4bae2 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --NxG3U3eiMbafXeNDfe2KOkdtapOSBcHG0 Content-Type: multipart/mixed; boundary="------------020107040402010408050706" This is a multi-part message in MIME format. --------------020107040402010408050706 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable I have had ClusterHQ's partial stable ABI in Gentoo's packaging since December (which helped to shake out bugs) and have just done another update of it with various bug fixes, including many from HEAD. Some might notice that merging a pull request that isn't fully reviewed is a fairly big departure from the rigorous vetting that I did on patches to ensure that every update was absolutely bug free. I had a good span of about 3 years without Gentoo specific regressions that I can recall. While I did my best to avoid introducing regressions in Gentoo's ZoL packaging, the /dev/zfs ABI has been unstable. That allowed for potential upgrade pains such as 0.6.2 -> 0.6.3 where those with mismatched modules and userspace code had problems. All ZoL packaging in Gentoo has been marked as "testing" because of it. The partial stable ABI presents offers an opportunity to change this such that users will have the option of either stable packages (well tested and vetted) or testing packages (vetted by me and pushed out for the community to vet further). In specific, the partial stable ABI should allow the following functions to work whenever mismatches occur, provided that both the userland and kernel code are mismatched using versions after the transition has taken place: - zpool import - zpool iostat - zpool tryimport - zpool export - zpool list - zpool get - zpool status - zfs mount - zfs umount - zfs clone - zfs snapshot - zfs rollback - zfs destroy - zfs create - zfs list - zfs get - zfs set - zfs inherit - zfs send - zfs recv (part of stable API, but not ABI in the current code, plan to resolve in the future) - zfs bookmark - zfs hold - zfs release It also provides convenient functions to control these operations through libzfs_core. The man pages are a draft from a few months ago, but include all of the non-zpool commands. This will be rectified in the near future so that all functions are thoroughly documented. After consulting with a few others, I decided in December to transition Gentoo to this now in the belief that the long term benefits outweigh the short term pain of the transition. Specifically, I want to exchange all of the pain the /dev/zfs ABI being unstable will cause over years for a brief period of pain now. Having any pain at all is not ideal, but this is the first time we have had a plan to ensure that this will be the last time (for the subset I mentioned, things outside of it will likely be added in the future based on need/importance). Doing an update today to fix the regressions that were reported has given me the opportunity to reflect on how I have handled things since the December update. At present, I am working on multiple things and while it is hard to keep track of every issue, I would like to minimize the amount of pain that occurs during this transition. My plan is to complete the transition by marking things stable 2 weeks after I stop hearing reports of regressions. If there are any regressions I have missed, I would like to hear about them. Please contact me in #zfsonlinux on the freenode IRC network so that I can resolve it ASAP. That way the regression can cut in line in my queue and be handled faster than the regressions I missed prior to the December code push. Having said that, those on other distributions are welcome to the code and to contact me about issues (please ping through freenode for the fastest response). It can be found on github: https://github.com/ryao/zfs/commits/gentoo-zfs-0.6.5.3-release https://github.com/ryao/spl/commits/gentoo-spl-0.6.5.3-release Tarballs of patches can be found here: http://dev.gentoo.org/~ryao/dist/zfs-0.6.5.3-patches-p1.tar.xz SHA256: 765a66adf67d0a3ae6a699561b98a5158d464e3b6ed413a72bdbbe6e6252ba66 SHA1: 56079ecd2543c44191cd747ce28a28a2bab8c064 MD5: 0a92dae487f507616e0850ee9760932f http://dev.gentoo.org/~ryao/dist/spl-0.6.5.3-patches-p0.tar.xz SHA256: 8e652d41eba421720bcecee99077d3f3c375153809426011f04a2c64aa181ca7 SHA1: 50cf449d7ba1772b967446bad7c12ac29fee7b6c MD5: 6d3c2fe3bfff26f575120aac623f8dda The ZFS shortlog: AndCycle (1): Obey arc_meta_limit default size when changing arc_max Benjamin Albrecht (1): Activate LVM volume groups before looking for zpools. Brian Behlendorf (15): Fix maybe uninitialized Follow 0/-E convention for module load errors Fix --enable-linux-builtin Use large stacks when available Either _ILP32 or _LP64 must be defined Fix zfsctl_lookup_objset() deadlock Change zfs_snapshot_lock from mutex to rw lock Set 'zfs_expire_snapshot=3D0' to disable auto-unmount Hold the zfs_snapentry_t before dispatch Handle block pointers with a corrupt logical size Handle damaged blk_birth in dsl_deadlist_insert() Fix vdev_queue_aggregate() deadlock Fix zfs_vdev_aggregation_limit bounds checking Fix ztest truncated cache file Fix z_xattr_lock/z_teardown_lock inversion Chunwei Chen (11): Fix fail path in zfs_znode_alloc Fix snapshot automount behavior when concurrent or fail Linux 4.4 compat: make_request_fn returns blk_qc_t Linux 4.4 compat: xattr operations takes xattr_handler Fix zdb calling behavior in ztest Fix zdb_dump_block on little endian systems Use spa as key besides objsetid for snapentry Fix snapshot automount race cause EREMOTE Fix uio_prefaultpages for 0 length iovec Fix empty xattr dir causing lockup Make xattr dir truncate and remove in one tx DHE (1): libzfs: handle EDOM errors Jason Zaman (1): sysmacros: Make P2ROUNDUP not trigger int overflow Kamil Doma=C5=84ski (1): Skip GPL-only symbols test when cross-compiling Ned Bass (1): Prevent SA length overflow Olaf Faaland (1): Remove "index" column from dbufstat.py Richard Yao (5): ClusterHQ Proposed API extensions Only trigger SET_ERROR tracepoint event on error Unconditionally build zdb and ztest with -DDEBUG Revert "Switch ztest mmap(2) ASSERTs to VERIFYs" Refresh ClusterHQ Proposed API extensions against ZoL PR Turbo Fredriksson (1): Unmount is part of the shutdown process, not the boot process. tuxoko (3): Fix null pointer in arc_kmem_reap_now on 32-bit Fix zfs_dirty_data_max overflow on 32-bit Prevent rm modules.* when make install The SPL shortlog: Brian Behlendorf (1): Fix --enable-linux-builtin Chunwei Chen (1): Don't call kmem_cache_shrink from shrinker Dimitri John Ledkov (1): spl-kmem-cache: include linux/prefetch.h for prefetchw() Jason Zaman (1): sysmacros: Make P2ROUNDUP not trigger int overflow Richard Yao (2): Fix race between getf() and areleasef() Make taskq_member() use ->journal_info tuxoko (2): Fix taskq dynamic spawning Prevent rm modules.* when make install --------------020107040402010408050706 Content-Type: application/pgp-keys; name="0xBEE84C64.asc" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0xBEE84C64.asc" -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2 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3D =3DMaRA -----END PGP PUBLIC KEY BLOCK----- --------------020107040402010408050706-- --NxG3U3eiMbafXeNDfe2KOkdtapOSBcHG0 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWiujsAAoJECDuEZm+6ExkWT8P/Rls7rxci0VXknr5Ssfr5eHD RYoGhh/5u52o3Kc3cls6uLqSoX/cPkYsZDCXUds4qAFZ9A0BZYmw9k98wJeh10ib wFCpqvXE6tS4D96R/vA5JRfl2mlh2YruW2ltPZKX3YbxyHtklGsrtRlZdsCQ+97p +V/GixrWWT0WRn9oK4AMX5qyr25k2oqNwSAwS5s0UNSHk5U42gZ+YLkXY2KIotqK ms0DATx78nT+lXNs82hvmuTEEGAjAg44zZCzOmfvbTEI1s19RPl+E2Q0Jh7bK13n eonEwYW+OxO7a/CNLHHBTMC3zFCFuIcx8dhqMKC1MyOXWw4cTWIXfLRe38BmASkz RiGjMEvBG9anrG/sLeXWf4LJ3JNOzZMLz15QazDnR/eILuRdmS1oYl7BjZ+VXmXk xskeiZEunnaQXoGcG+RBnoeLdyNCkthWFRHC5KgPuU04KKPIHeKPkBhO4wnKdFy0 UeFvxvjEX4JbhNtm+KHVC1WAe4kGJ3Bm7orVj8rTM8OQxwrozTeRCfY/j25xf6OO ZFbKeld2qzJiY/9sjMQl4qJbZlu8m9OX88RQr3mjhJbzPDjhgF3CO+3hCasgFUip AWAtTkdYWW8kTgqCK73ZQlRzTd93bCriGWwHCb8RC1q64JTTgyYnKyOmzji7auSj cOplCviu1kzlV2w7j9l1 =hdJY -----END PGP SIGNATURE----- --NxG3U3eiMbafXeNDfe2KOkdtapOSBcHG0--