Package: nbd-server Version: 1:2.9.15-3 Severity: normal The synopsis suggests that a port is mandatory, but a config file optional. Neither of this is true.
If I do not specify a config file (and /etc/nbd-server/config does
not exist), the command fails with the same error as when I try to
silence it with /dev/null:
sergei:~/pulse-backup% nbd-server 12345 $PWD/nbd-disk -C /dev/null -l
./access
#3100
** (process:16914): WARNING **: Could not parse config file: Could not open
config file.
If I do use a config file, but do not specify a port value for the
export, it also fails gloriously, this time with a segfault:
sergei:~/pulse-backup% cat config
#3108
[generic]
[pulse-backup]
exportname = /home/scratch/krafft/pulse-backup/nbd-disk
authfile = /home/scratch/krafft/pulse-backup/access
sergei:~/pulse-backup% nbd-server 12345 $PWD/nbd-disk -C ./config -l ./access
#3109
** (process:18685): WARNING **: Could not parse config file: Could not find
required value port in group pulse-backup: Key file does not have key 'port'
zsh: segmentation fault nbd-server 12345 $PWD/nbd-disk -C ./config -l
./access
So I add the port and start nbd-server again (with the same port on the command
line), it sometimes starts, but not always. If I kill it and try to start
again, it'll fail. The reason is that it attempts to bind the port *twice* and
fails:
% nbd-server 12345 $PWD/nbd-disk -C ./config -l ./access·
% tail -1 /var/log/syslog
Jun 17 10:10:25 sergei nbd_server[32273]: bind: Address already in use
% strace -f !!-2
[…]
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
bind(3, {sa_family=AF_INET, sin_port=htons(12345),
sin_addr=inet_addr("0.0.0.0")}, 16) = 0
listen(3, 1) = 0
rt_sigaction(SIGCHLD, {0x402840, [], SA_RESTORER|SA_RESTART, 0x7f9e1c193f60},
NULL, 8) = 0
rt_sigaction(SIGTERM, {0x4027d0, [], SA_RESTORER|SA_RESTART, 0x7f9e1c193f60},
NULL, 8) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 4
setsockopt(4, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(4, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
fcntl(4, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
bind(4, {sa_family=AF_INET, sin_port=htons(12345),
sin_addr=inet_addr("0.0.0.0")}, 16) = -1 EADDRINUSE (Address already in use)
[…]
% netstat -plant | grep -c :12345
0
Changing the port on the command line (but not in the config file)
confirms this.
So in the end, I have to leave out the port on the command-line,
which is okay, but which is contrary to the manpage, and only then
it starts.
Sorry for the single bug report, but I could not figure out how to
slice the problems. ;)
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-amd64 (SMP w/1 CPU core)
Locale: LANG=en_GB, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages nbd-server depends on:
ii adduser 3.112 add and remove users and groups
ii debconf [debconf-2.0] 1.5.32 Debian configuration management sy
ii libc6 2.11.2-1 Embedded GNU C Library: Shared lib
ii libglib2.0-0 2.24.1-1 The GLib library of C routines
ii ucf 3.0025 Update Configuration File: preserv
nbd-server recommends no packages.
nbd-server suggests no packages.
-- debconf-show failed
--
.''`. martin f. krafft <[email protected]> Related projects:
: :' : proud Debian developer http://debiansystem.info
`. `'` http://people.debian.org/~madduck http://vcs-pkg.org
`- Debian - when you have better things to do than fixing systems
digital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/)

