Displaying 9 results from an estimated 9 matches for "nbd_set_debug".
2023 Jul 16
2
[libnbd PATCH] api: Fix block status assertion under set_strict bypass
On Sat, Jul 15, 2023 at 08:49:51PM -0500, Eric Blake wrote:
> A compliant server should not send NBD_REPLY_TYPE_BLOCK_STATUS unless
> we successfully negotiated a meta context. And our default strictness
> settings refuse to let us send NBD_CMD_BLOCK_STATUS unless we
> negotiated a meta context. But when you mix non-default settings
> (using nbd_set_strict to disable
2019 Aug 14
3
[libnbd PATCH 0/2] Drop generated file from git
Rich recently patched things to generate one man page per function
rather than libnbd-api.3 (nice), but in doing so got stumped by a
problem with a fresh git clone (automake fails for any 'include'
directive that does not already exist). I've figured out how to hack
around it, but the hack requires GNU make. We already use GNU make
constructs elsewhere (such as $(wildcard)), but
2019 Aug 14
0
[libnbd PATCH 2/2] docs: Drop docs/Makefile.inc from git
...he 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
-
-api_built += \
- nbd_set_debug \
- nbd_get_debug \
- nbd_set_debug_callback \
- nbd_clear_debug_callback \
- nbd_set_handle_name \
- nbd_get_handle_name \
- nbd_set_export_name \
- nbd_get_export_name \
- nbd_set_tls \
- nbd_get_tls \
- nbd_set_tls_certificates \
- nbd_set_tls_verify_peer \
- nbd_get_tls_verify_peer \
- nbd_set_...
2019 Aug 15
1
[PATCH libnbd] docs: Change docs/Makefile.inc back to a regular include, readd to git.
...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
+
+api_built = \
+ nbd_set_debug \
+ nbd_get_debug \
+ nbd_set_debug_callback \
+ nbd_clear_debug_callback \
+ nbd_set_handle_name \
+ nbd_get_handle_name \
+ nbd_set_export_name \
+ nbd_get_export_name \
+ nbd_set_tls \
+ nbd_get_tls \
+ nbd_set_tls_certificates \
+ nbd_set_tls_verify_peer \
+ nbd_get_tls_verify_peer \
+ nbd_set_...
2019 May 21
0
[libnbd] tmp patch adding deadlock test
...*arg)
+{
+ struct pollfd fds[1];
+ struct nbd_connection *conn;
+ char buf[512];
+ size_t i, j;
+ int64_t handles[2];
+ size_t in_flight; /* counts number of requests in flight */
+ int dir, r, cmd;
+ bool want_to_send;
+
+ /* The single thread "owns" the connection. */
+ nbd_set_debug (nbd, true);
+ conn = nbd_get_connection (nbd, 0);
+
+ /* Issue commands. */
+ in_flight = 0;
+ fprintf (stderr, " * before aio_pread\n");
+ handles[0] = nbd_aio_pread (conn, in, packetsize, 0);
+ if (handles[0] == -1) {
+ fprintf (stderr, "%s\n", nbd_get_error ());
+...
2019 Aug 03
1
[PATCH libnbd] generator: Generate typedefs automatically for Closure arguments.
For example nbd_set_debug takes a callback function. Previously this
was defined explicitly inside the function parameters. This commit
defines a new public typedef:
typedef int (*nbd_debug_callback) (unsigned valid_flag, void *user_data,
const char *context, const char *msg);
and...
2019 May 21
9
[libnbd PATCH 0/3] Avoid deadlock with in-flight commands
This might not be the final solution, but it certainly seems to solve
a deadlock for me that I could trigger by using 'nbdkit
--filter=noparallel memory 512k' and calling nbd_aio_pread for a
request larger than 256k (enough for the Linux kernel to block the
server until libnbd read()s), immediately followed by nbd_aio_pwrite
for a request larger than 256k (enough to block libnbd until the
2019 Jul 25
4
Re: [PATCH libnbd v3 1/2] lib: Implement closure lifetimes.
...)
> +{
> + struct nbd_handle *nbd;
> + int64_t cookie;
> + char buf[512];
> +
> + /* Check debug functions are freed when a new debug function is
> + * registered, and when the handle is closed.
> + */
> + nbd = nbd_create ();
> + assert (nbd);
> +
> + nbd_set_debug_callback (nbd, debug_fn, NULL);
> + assert (debug_fn_free == 0);
> +
> + nbd_set_debug_callback (nbd, debug_fn, NULL);
> + assert (debug_fn_free == 1);
If you add asserts against use-after-free above, you'd also need to
reset debug_fn_free back to 0 here.
> +
> + nbd_clo...
2019 Jul 25
4
[PATCH libnbd v3 0/2] lib: Implement closure lifetimes.
I think I've addressed everything that was raised in review.
Some of the highlights:
- Callbacks should be freed reliably along all exit paths.
- There's a simple test of closure lifetimes.
- I've tried to use VALID|FREE in all the places where I'm confident
that it's safe and correct to do. There may be more places. Note
this is an optimization and shouldn't