From: Richard Yao <ryao@gentoo.org>
To: "zfs-discuss@zfsonlinux.org" <zfs-discuss@zfsonlinux.org>
Cc: "zfs-devel@zfsonlinux.org" <zfs-devel@zfsonlinux.org>,
"gentoo-dev@lists.gentoo.org" <gentoo-dev@lists.gentoo.org>
Subject: [gentoo-dev] Change in Gentoo ZFS packaging policy
Date: Mon, 4 Jan 2016 16:49:22 -0500 [thread overview]
Message-ID: <568AE8E2.8040502@gentoo.org> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 7055 bytes --]
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=0' 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ński (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
[-- Attachment #1.2: 0xBEE84C64.asc --]
[-- Type: application/pgp-keys, Size: 7210 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
reply other threads:[~2016-01-04 21:49 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=568AE8E2.8040502@gentoo.org \
--to=ryao@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
--cc=zfs-devel@zfsonlinux.org \
--cc=zfs-discuss@zfsonlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox