1nbdkit-release-notes-1.18(1) NBDKIT nbdkit-release-notes-1.18(1)
2
3
4
6 nbdkit-release-notes-1.18 - release notes for nbdkit 1.18
7
9 These are the release notes for nbdkit stable release 1.18. This
10 describes the major changes since 1.16.
11
12 nbdkit 1.18.0 was released on 27th February 2020.
13
14 Security
15 There were no security issues found. All past security issues and
16 information about how to report new ones can be found in
17 nbdkit-security(1).
18
19 Plugins
20 New nbdkit-eval-plugin(1) lets you write a plugin entirely on a single
21 command line. It is similar to nbdkit-sh-plugin(3).
22
23 nbdkit-ext2-plugin is deprecated and will be removed in the next
24 release after this one (nbdkit 1.20). As a replacement use
25 nbdkit-ext2-filter(1) like this:
26
27 nbdkit --filter=ext2 file fs.img ext2file=/disks/disk.raw
28
29 nbdkit-python-plugin(3) now offers a version 2 API which avoids copying
30 the data buffer, improving performance. The original protocol (now
31 retrospectively called version 1) is still supported for backwards
32 compatibility. The version 1 protocol was also enhanced to support the
33 buffer protocol for the pread method, and memoryview for pwrite,
34 improving performance by reducing copies (Nir Soffer).
35
36 The Python plugin now prints readable stack traces when an exception is
37 thrown (Nir Soffer).
38
39 New methods implemented in the Python plugin: cache, can_cache,
40 can_zero, can_fast_zero, can_multi_conn, can_fua.
41
42 In nbdkit-curl-plugin(1), new options "cainfo" and "capath" (Wiktor
43 Gołgowski).
44
45 nbdkit-split-plugin(1) now supports extents (Eric Blake).
46
47 In nbdkit-vddk-plugin(1), "file=" is now a magic config key, meaning it
48 can be omitted in most circumstances (Eric Blake).
49
50 The VDDK plugin now no longer needs $LD_LIBRARY_PATH to be set. The
51 correct library load path is automatically inferred from the "libdir"
52 parameter (Eric Blake).
53
54 Verbose messages about calls to VDDK functions Read and Write can now
55 be suppressed by setting -D vddk.datapath=0.
56
57 Filters
58 New nbdkit-ext2-filter(1), which replaces the deprecated
59 nbdkit-ext2-plugin. This filter allows you to read and write files
60 inside ext2, ext3 or ext4 filesystems. The new filter has the same
61 features as the plugin, and one enhancement: optionally the name of the
62 file to serve can be picked from the client-supplied exportname. The
63 old plugin will be removed in nbdkit 1.20 (Eric Blake).
64
65 New nbdkit-extentlist-filter(1) lets you specify a static list of
66 extents from a file which can be placed on top of plugins which don't
67 export extent information.
68
69 New nbdkit-ip-filter(1) lets you allow and deny incoming connections by
70 client IP address, similar to TCP wrappers or a firewall.
71
72 New nbdkit-nofilter-filter(1) is a null filter, used for testing.
73
74 The stats filter now collects time elapsed per operation, per operation
75 and total rates, and adds stats for the flush method. The output is
76 shown in human sizes making it easier to understand. (Nir Soffer).
77
78 Server
79 New --swap option which allows nbdkit to be safely used to serve swap
80 space to the same machine.
81
82 Debug flags (-D) can now be applied to the server core (using
83 -D nbdkit.*). Underscores in debug flags can now be replaced by dots,
84 allowing a kind of namespacing. Debug flags which are not consumed now
85 no longer give an error, so you can use them without needing to detect
86 if the plugin supports them. New server debug flags
87 -D nbdkit.backend.controlpath=0 and -D nbdkit.backend.datapath=0 were
88 added to suppress some very verbose messages when verbose mode is
89 enabled.
90
91 API
92 There is a new ".get_ready" method which is called after
93 ".config_complete" and before the server forks or changes directory.
94 It is the last chance to do any global preparation that is needed to
95 serve connections. Plugins have previously done this work in
96 ".config_complete", but by splitting this into a new method it makes
97 the API clearer. (Note that existing plugins may continue to use
98 ".config_complete" for this work if they prefer.)
99
100 There is a new ".preconnect" method available which is called just
101 after the client makes a connection but before any NBD negotiation or
102 TLS authentication is done. It can be used for early whitelisting or
103 rate limiting of connections, and in particular is used by the new
104 nbdkit-ip-filter(1).
105
106 Bug fixes
107 In nbdkit-curl-plugin(1), "CURLINFO_CONTENT_LENGTH_DOWNLOAD_T" is used
108 (if available) so that file sizes up to 63 bits should now work on all
109 platforms (Pino Toscano and Adrian Ambrożewicz).
110
111 nbdkit is now compatible with OCaml 4.10.
112
113 nbdkit-memory-plugin(1) now supports "size=0" (Eric Blake).
114
115 Documentation
116 Plugins which were actually added in nbdkit 1.0.0 are now documented as
117 such properly.
118
119 Improved methods for probing plugins and filters are documented in
120 nbdkit-probing(1).
121
122 Tests
123 Old plugins from nbdkit 1.0, 1.2, 1.8 and 1.12 are now bundled with the
124 nbdkit sources and tested to try to ensure that they do not
125 accidentally regress. Note these are included as binary blobs. See
126 tests/old-plugins/README for more information about this, including how
127 to delete these tests.
128
129 Various tests, especially ones which rely on timeouts, have been made
130 more stable so they should not fail on slow or overloaded machines.
131
132 Many tests now use libnbd and nbdsh (instead of libguestfs and
133 guestfish) as the test client. This should improve the performance of
134 the tests for most people.
135
136 The --vsock option (added in nbdkit 1.16) can now be tested if the host
137 is running Linux ≥ 5.6 (Stefano Garzarella).
138
139 Build
140 You can use "./configure --disable-nbd-plugin" to completely disable
141 the NBD plugin.
142
143 The automake feature "subdir-objects" is no longer used, which may
144 improve compatibility on platforms with ancient and buggy automake
145 (RHEL 7 being one such platform).
146
147 Internals
148 The explicit connection parameter passed around many functions in the
149 server is now fetched from thread-local storage.
150
151 The server no longer calls the finalize method if prepare fails. Also
152 failing to reopen the plugin from nbdkit-retry-filter(1) no longer
153 hangs (Eric Blake).
154
155 "git.orderfile" was enhanced to make patches easier to read (Eric
156 Blake).
157
158 Internal calls to methods like get_size, can_write will now no longer
159 produce debug messages if the data is simply being returned from the
160 internal cache (but calls into the plugin are still logged).
161
163 nbdkit(1).
164
166 Authors of nbdkit 1.18:
167
168 Adrian Ambrożewicz
169 (1 commit)
170
171 Eric Blake
172 (30 commits)
173
174 Wiktor Gołgowski
175 (1 commit)
176
177 Richard W.M. Jones
178 (130 commits)
179
180 Nir Soffer
181 (11 commits)
182
183 Pino Toscano
184 (1 commit)
185
187 Copyright (C) 2020 Red Hat Inc.
188
190 Redistribution and use in source and binary forms, with or without
191 modification, are permitted provided that the following conditions are
192 met:
193
194 • Redistributions of source code must retain the above copyright
195 notice, this list of conditions and the following disclaimer.
196
197 • Redistributions in binary form must reproduce the above copyright
198 notice, this list of conditions and the following disclaimer in the
199 documentation and/or other materials provided with the
200 distribution.
201
202 • Neither the name of Red Hat nor the names of its contributors may
203 be used to endorse or promote products derived from this software
204 without specific prior written permission.
205
206 THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ANY
207 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
208 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
209 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE
210 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
211 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
212 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
213 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
214 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
215 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
216 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
217
218
219
220nbdkit-1.28.2 2021-11-09 nbdkit-release-notes-1.18(1)