On Tue, Apr 22, 2025 at 03:41:43PM -0500, Eric Blake via Libguestfs wrote:
> On Tue, Apr 22, 2025 at 10:08:01PM +0300, Nikolay Ivanets wrote:
> > nbdkit crashes when the client is trying to get extents with len=2^32-1.
> > Here is client code (nbdsh):
> > 
> > h.add_meta_context("base:allocation")
> > h.connect_uri("nbd://localhost:10809/disk0-flat.vmdk")
> 
> Can you post the disk0-flag.vmdk image (or better, instructions for
> how to create it?)
> 
> > 
> > def f(metacontext, offset, e, status):
> >   print(e)
> > 
> > h.block_status(2**32-2, 0, f)
> > [4294967295, 0]  <--- OK

At any rate, it looks like you have an export that is all data up to this 
length...

> > Server prints:
> > 
> > nbdkit: file.8: debug: file: extents count=4294967295 offset=0 req_one=0

...and that you were using the file plugin to read it.  So let's see
what happens if I create a file larger than 4G to try and reproduce:

$ dd if=/dev/urandom of=myfile bs=1G count=5
5+0 records in
5+0 records out
5368709120 bytes (5.4 GB, 5.0 GiB) copied, 15.5435 s, 345 MB/s
$ ./nbdkit -fv file myfile &
$ nbdsh --base-allocation --uri nbd://localhost
<nbd> def f(m, o, e, s):
...    print(e)
...
<nbd> h.block_status(2**32-2, 0, f)
[4294967295, 0]
<nbd> h.block_status(2**32-1, 0, f)
server crashed

Okay, I can reproduce it with the file plugin, but not with the memory
plugin.  Now working on root cause.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization:  qemu.org | libguestfs.org
_______________________________________________
Libguestfs mailing list -- guestfs@lists.libguestfs.org
To unsubscribe send an email to guestfs-le...@lists.libguestfs.org

Reply via email to