Hi all,
When nbd-server with the "multifile = true" option is fed with
more files than the current system's limit, it silently opens
files up to the limit and then proceeds with no error message
thrown, even in debugging mode "-d". As a result, not the entire
expected file size shows in /dev/nbdX, which can be confusing.
I propose adding at least an "err_nonfatal" warning when in debug mode.
1885,1886c1885,1888
< if(multifile && i>0)
< break;
---
> if(multifile && i>0) {
err_nonfatal(strerror(errno));
break;
> }
Greetings
Vladimir
Subject: | Is there a limit on the count of the exported devices? |
---|---|
Date: | Sat, 4 Jan 2020 21:20:40 +0100 |
From: | Vladimir Zhelezarov <jelezarov.vladimir@gmail.com> |
To: | nbd@other.debian.org |
Hi,
independent of the size of the combined block device, I am unable to use more than 1018 devices with the "-m" option in nbd-server. So for example:
for i in {0..1999}; do truncate -s 1M mm.$i; done
sudo nbd-server -C /dev/null localhost@33333 -m /home/user/nbd/mm
sudo nbd-client localhost 33333 /dev/nbd0
Then it says:
Negotiation: ..size = 1018MB
bs=1024, sz=1067450368 bytes
which can also be confirmed by mounting /dev/nbd0.
Another example with 5000 files of 500K gives:
Negotiation: ..size = 497MB
bs=1024, sz=521216000 bytes
which gives the same 521216000/1024/500 = 1018 used files.
The same happens when using different sizes or combinations of
sizes and file-counts. I am using nbd 3.20 on x64 Ubuntu 18.04.
Using a configuration file makes no difference. Different
hardware with the same OS and nbd version neither.
Can someone give me some pointers?
Vladimir
1885,1886c1885,1888 < if(multifile && i>0) < break; --- > if(multifile && i>0) { err_nonfatal(strerror(errno)); break; > }