NAME

libnbd-release-notes-1.6 - release notes for libnbd 1.6

DESCRIPTION

These are the release notes for libnbd stable release 1.6. This describes the major changes since 1.4.

libnbd 1.6.0 was released on 7 January 2021.

Security

There were no security issues found in this release.

If you find a security issue, please read SECURITY in the source (online here: https://gitlab.com/nbdkit/libnbd/blob/master/SECURITY). To find out about previous security issues in libnbd, see libnbd-security(3).

New APIs

nbd_set_strict_mode(3)
nbd_get_strict_mode(3)

This API allows you to control how libnbd handles requests from the program that it thinks would trigger undefined behaviour in the server (such as sending unknown commands, zero-sized or out-of-bounds requests, etc). Normally libnbd is very strict and will prevent you from sending such requests, but you can use this API to relax these restrictions, leaving it up to the server to handle or reject them. Some servers may crash if you do this.

nbd_get_nr_meta_contexts(3)
nbd_get_meta_context(3)
nbd_clear_meta_contexts(3)

These APIs allow you to review or clear the requested metadata contexts.

nbd_opt_list_meta_context(3)
nbd_aio_opt_list_meta_context(3)

Request that the server lists available metadata contexts. You can only use this in opt mode.

Thanks: Eric Blake for all of the new APIs.

Enhancements to existing APIs

nbd_shutdown(3) new flag LIBNBD_SHUTDOWN_ABANDON_PENDING drops any commands in flight which have not been sent to the server yet (Eric Blake).

All APIs which have flag (bitmask) parameters now define a LIBNBD_*_MASK constant allowing you to tell which bits represent valid flags at compilation time (Eric Blake).

New features

The performance of the nbdcopy(1) tool has been greatly improved. Also it supports numerous new features.

New nbdinfo(1) --map option showing the allocated and sparse extents of an NBD server. This can also show other information such as dirty bitmaps.

Tools

nbdfuse(1) can now mount the NBD export on top of any regular file, it does not have to mount over a directory.

nbdsh(1) now produces a nice error message if the URI in the -u option or the command in the -c option is wrong (Eric Blake).

New nbdsh(1) --opt-mode option which requests opt mode on the handle before connecting.

nbdinfo(1) --list option now shows the supported metadata contexts of the server (Eric Blake).

The output of nbdinfo(1) is now usually printed atomically, ie. it will either print the complete output or an error message, but not partial output followed by an error.

nbdinfo(1) can now decode qemu:allocation-depth metacontext (Eric Blake).

Other improvements and bug fixes

Multiple improvements to handling of NBD protocol (Eric Blake).

Fix handling of booleans in Python bindings (Eric Blake).

Fix handling of flags parameters in OCaml bindings (Eric Blake).

Python style fixes (Eric Blake).

Fix multiple memory leaks (Eric Blake).

OCaml bindings now include ocamldoc-generated documentation, if ocamldoc is installed at build time.

The "vector" library from nbdkit is now used by libnbd, simplifying places where we used to use realloc(3).

SEE ALSO

libnbd(3).

AUTHORS

Eric Blake

Richard W.M. Jones

COPYRIGHT

Copyright (C) 2020-2021 Red Hat Inc.

LICENSE

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA