Gentoo Archives: gentoo-dev

From: Richard Yao <ryao@g.o>
To: "zfs-discuss@××××××××××.org" <zfs-discuss@××××××××××.org>
Cc: "zfs-devel@××××××××××.org" <zfs-devel@××××××××××.org>, "gentoo-dev@l.g.o" <gentoo-dev@l.g.o>
Subject: [gentoo-dev] Change in Gentoo ZFS packaging policy
Date: Mon, 04 Jan 2016 21:49:53
Message-Id: 568AE8E2.8040502@gentoo.org
1 I have had ClusterHQ's partial stable ABI in Gentoo's packaging since
2 December (which helped to shake out bugs) and have just done another
3 update of it with various bug fixes, including many from HEAD.
4
5 Some might notice that merging a pull request that isn't fully reviewed
6 is a fairly big departure from the rigorous vetting that I did on
7 patches to ensure that every update was absolutely bug free. I had a
8 good span of about 3 years without Gentoo specific regressions that I
9 can recall.
10
11 While I did my best to avoid introducing regressions in Gentoo's ZoL
12 packaging, the /dev/zfs ABI has been unstable. That allowed for
13 potential upgrade pains such as 0.6.2 -> 0.6.3 where those with
14 mismatched modules and userspace code had problems. All ZoL packaging in
15 Gentoo has been marked as "testing" because of it. The partial stable
16 ABI presents offers an opportunity to change this such that users will
17 have the option of either stable packages (well tested and vetted) or
18 testing packages (vetted by me and pushed out for the community to vet
19 further).
20
21 In specific, the partial stable ABI should allow the following functions
22 to work whenever mismatches occur, provided that both the userland and
23 kernel code are mismatched using versions after the transition has taken
24 place:
25
26 - zpool import
27 - zpool iostat
28 - zpool tryimport
29 - zpool export
30 - zpool list
31 - zpool get
32 - zpool status
33 - zfs mount
34 - zfs umount
35 - zfs clone
36 - zfs snapshot
37 - zfs rollback
38 - zfs destroy
39 - zfs create
40 - zfs list
41 - zfs get
42 - zfs set
43 - zfs inherit
44 - zfs send
45 - zfs recv (part of stable API, but not ABI in the current code, plan to
46 resolve in the future)
47 - zfs bookmark
48 - zfs hold
49 - zfs release
50
51 It also provides convenient functions to control these operations
52 through libzfs_core. The man pages are a draft from a few months ago,
53 but include all of the non-zpool commands. This will be rectified in the
54 near future so that all functions are thoroughly documented.
55
56 After consulting with a few others, I decided in December to transition
57 Gentoo to this now in the belief that the long term benefits outweigh
58 the short term pain of the transition. Specifically, I want to exchange
59 all of the pain the /dev/zfs ABI being unstable will cause over years
60 for a brief period of pain now.
61
62 Having any pain at all is not ideal, but this is the first time we have
63 had a plan to ensure that this will be the last time (for the subset I
64 mentioned, things outside of it will likely be added in the future based
65 on need/importance).
66
67 Doing an update today to fix the regressions that were reported has
68 given me the opportunity to reflect on how I have handled things since
69 the December update. At present, I am working on multiple things and
70 while it is hard to keep track of every issue, I would like to minimize
71 the amount of pain that occurs during this transition. My plan is to
72 complete the transition by marking things stable 2 weeks after I stop
73 hearing reports of regressions.
74
75 If there are any regressions I have missed, I would like to hear about
76 them. Please contact me in #zfsonlinux on the freenode IRC network so
77 that I can resolve it ASAP. That way the regression can cut in line in
78 my queue and be handled faster than the regressions I missed prior to
79 the December code push.
80
81 Having said that, those on other distributions are welcome to the code
82 and to contact me about issues (please ping through freenode for the
83 fastest response). It can be found on github:
84
85 https://github.com/ryao/zfs/commits/gentoo-zfs-0.6.5.3-release
86 https://github.com/ryao/spl/commits/gentoo-spl-0.6.5.3-release
87
88 Tarballs of patches can be found here:
89
90 http://dev.gentoo.org/~ryao/dist/zfs-0.6.5.3-patches-p1.tar.xz
91 SHA256: 765a66adf67d0a3ae6a699561b98a5158d464e3b6ed413a72bdbbe6e6252ba66
92 SHA1: 56079ecd2543c44191cd747ce28a28a2bab8c064
93 MD5: 0a92dae487f507616e0850ee9760932f
94
95 http://dev.gentoo.org/~ryao/dist/spl-0.6.5.3-patches-p0.tar.xz
96 SHA256: 8e652d41eba421720bcecee99077d3f3c375153809426011f04a2c64aa181ca7
97 SHA1: 50cf449d7ba1772b967446bad7c12ac29fee7b6c
98 MD5: 6d3c2fe3bfff26f575120aac623f8dda
99
100 The ZFS shortlog:
101
102 AndCycle (1):
103 Obey arc_meta_limit default size when changing arc_max
104
105 Benjamin Albrecht (1):
106 Activate LVM volume groups before looking for zpools.
107
108 Brian Behlendorf (15):
109 Fix maybe uninitialized
110 Follow 0/-E convention for module load errors
111 Fix --enable-linux-builtin
112 Use large stacks when available
113 Either _ILP32 or _LP64 must be defined
114 Fix zfsctl_lookup_objset() deadlock
115 Change zfs_snapshot_lock from mutex to rw lock
116 Set 'zfs_expire_snapshot=0' to disable auto-unmount
117 Hold the zfs_snapentry_t before dispatch
118 Handle block pointers with a corrupt logical size
119 Handle damaged blk_birth in dsl_deadlist_insert()
120 Fix vdev_queue_aggregate() deadlock
121 Fix zfs_vdev_aggregation_limit bounds checking
122 Fix ztest truncated cache file
123 Fix z_xattr_lock/z_teardown_lock inversion
124
125 Chunwei Chen (11):
126 Fix fail path in zfs_znode_alloc
127 Fix snapshot automount behavior when concurrent or fail
128 Linux 4.4 compat: make_request_fn returns blk_qc_t
129 Linux 4.4 compat: xattr operations takes xattr_handler
130 Fix zdb calling behavior in ztest
131 Fix zdb_dump_block on little endian systems
132 Use spa as key besides objsetid for snapentry
133 Fix snapshot automount race cause EREMOTE
134 Fix uio_prefaultpages for 0 length iovec
135 Fix empty xattr dir causing lockup
136 Make xattr dir truncate and remove in one tx
137
138 DHE (1):
139 libzfs: handle EDOM errors
140
141 Jason Zaman (1):
142 sysmacros: Make P2ROUNDUP not trigger int overflow
143
144 Kamil Domański (1):
145 Skip GPL-only symbols test when cross-compiling
146
147 Ned Bass (1):
148 Prevent SA length overflow
149
150 Olaf Faaland (1):
151 Remove "index" column from dbufstat.py
152
153 Richard Yao (5):
154 ClusterHQ Proposed API extensions
155 Only trigger SET_ERROR tracepoint event on error
156 Unconditionally build zdb and ztest with -DDEBUG
157 Revert "Switch ztest mmap(2) ASSERTs to VERIFYs"
158 Refresh ClusterHQ Proposed API extensions against ZoL PR
159
160 Turbo Fredriksson (1):
161 Unmount is part of the shutdown process, not the boot process.
162
163 tuxoko (3):
164 Fix null pointer in arc_kmem_reap_now on 32-bit
165 Fix zfs_dirty_data_max overflow on 32-bit
166 Prevent rm modules.* when make install
167
168 The SPL shortlog:
169
170 Brian Behlendorf (1):
171 Fix --enable-linux-builtin
172
173 Chunwei Chen (1):
174 Don't call kmem_cache_shrink from shrinker
175
176 Dimitri John Ledkov (1):
177 spl-kmem-cache: include linux/prefetch.h for prefetchw()
178
179 Jason Zaman (1):
180 sysmacros: Make P2ROUNDUP not trigger int overflow
181
182 Richard Yao (2):
183 Fix race between getf() and areleasef()
184 Make taskq_member() use ->journal_info
185
186 tuxoko (2):
187 Fix taskq dynamic spawning
188 Prevent rm modules.* when make install

Attachments

File name MIME type
0xBEE84C64.asc application/pgp-keys
signature.asc application/pgp-signature