On Mon, Sep 10, 2012 at 5:59 PM, Wouter Verhelst <[email protected]> wrote:
> Hi,
>
> Sorry, looks like I forgot to reply to this one:
>
>>
>> Bug report on openSUSE bugzilla: https://bugzilla.novell.com/776027
>>
>> Please let me know if you need any more information.
>
> If you run nbd-server with those arguments from a command line, what
> does that give you? It *should* say "NBDSERVER" followed by some binary
> data; if it says more, that'd be a bug.

Running nbd-server 0 /srv/kiwi-ltsp/i386.img -r -C /dev/null returns
nothing, no nbd-server is started.

 #nbd-server 0 /srv/kiwi-ltsp/i386.img -r -C /dev/null
 # echo $?
1

nbd-server 20000 /srv/kiwi-ltsp/i386.img -r -C /dev/null starts
nbd-server normally with a warning "Specifying an export on the
command line is deprecated."

>
> --
https://bugzilla.novell.com/776027 has some more details added by
Thomas Abraham:

 Thomas Abraham 2012-08-20 19:04:47 UTC

I've taken a quick look. I was able to readily reproduce it.

It appears to be caused by a read() that returned 0 -- no data to read.

12499 open("/srv/test/test.img", O_RDONLY) = 4
12499 ioctl(4, BLKGETSIZE64, 0x7fff9e1ed118) = -1 ENOTTY (Inappropriate ioctl
for device)
12499 fstat(4, {st_mode=S_IFREG|0644, st_size=1048576000, ...}) = 0
12499 sendto(3, "<14>Aug 19 22:45:52 nbd-server: Size of exported file/device
is 1048576000", 74, MSG_NOSIGNAL, NULL, 0) = 74
12499 setsockopt(0, SOL_TCP, TCP_NODELAY, [1], 4) = 0
12499 write(0, "NBDMAGIC", 8)           = 8
12499 write(0, "\0\0B\2\201\206\22S", 8) = 8
12499 write(0, "\0\0\0\0>\200\0\0", 8)  = 8
12499 write(0, "\0\0\0\3", 4)           = 4
12499 write(0,
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
124) = 124
12499 read(0,
"%`\225\23\0\0\0\0Xl|\36\0\210\377\377\0\0\0\0>\177\0\0\0\0\20\0", 28) = 28
12499 write(0, "gDf\230\0\0\0\0Xl|\36\0\210\377\377", 16) = 16
12499 lseek(4, 1048510464, SEEK_SET)    = 1048510464
12499 read(4,
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096) = 4096
12499 write(0,
"gDf\230\0\0\0\0Xl|\36\0\210\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4112) = 4112
12499 read(0, "", 28)                   = 0
12499 write(2, "Error: Read failed: Inappropriate ioctl for
device\nExiting.\n", 60) = 60
12499 exit_group(1)                     = ?

The only difference I see offhand is, when run standalone or when run
on 12.1 through xinetd, this read() returns data -- another NBD_CMD_READ
from the client.

I haven't yet discovered the reason there is no data for this read.

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Nbd-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nbd-general

Reply via email to