[ENBD] Linux kernel 2.6.4-rc3: ENBD: DVD: Help?

Brad Allen Ulmo-ENBD at UseNet.Q.Net
Wed Mar 10 19:58:49 MST 2004


" Did Someone ever try to remote play a DVD or SVCD with some Programm
" (mplayer xine ore something ) with enbd??

I'm trying that now, and it's not working.  According to what ENBD and
MPlayer are described to do, this should work, but I don't know what's
missing, and the debug output is rather copious, and I don't even know
if I'm getting the output of the actual errors that are stopping me.

I'd like someone to walk me slowly through the process, step by step.
While I'm not dumb, I also don't have a lot of time for this.  I do
need >2^32 byte device sizes (DVDs are usually bigger than that).  The
filesystem type is UDF, however, I don't necessarily need to mount it,
because most DVD playing libraries in Linux prefer to use the device
seeking and reading directly.  Mplayer can do it directly from a
device file (even if it's one big file dump of the device, or the
device node itself), or from a mounted directory tree of the UDF
device (DVD libraries actually virtually create the device file from
the mounted filesystem for further processing as normal, and works
well!  (they do this because they need physical sector numbers for
DVD's indices, instead of file seek offsets like in most normal
filesystem access methods)), or from some combinations of some
individual files from the filesystem (doesn't always work).
Unfortunately, mplayer will not do a streamed DVD device past the
first few opening screens.  Since I currently have the DVD but don't
have space to dump it to disk (which I already know works across NFS),
and for some reason I can't export a mounted UDF filesytem in NFSv3 in
Linux 2.6 (it worked in 2.4), I am trying NBD & ENBD.  The first
problem I had with NBD which caused me to stop trying it is that NBD
doesn't allow device sizes greater than or equal to 2^32, and DVDs are
definitely usually larger than 2^32-1.  So, I tried ENBD since it
mentioned it can support 64bit device sizes (more than enough for me).
I don't have any small DVDs (<2^32 bytes) to try.  I rent DVDs from
Netflix, and don't use copies after returning them (however I have no
restraint about how many times I use any copy of the content for my
family while I actually have their DVD in my possession, which makes
it legal), so my test range is limited to whatever I have at the
moment, which is less than or equal to 3 discs at once, plus one other
disc we own.  I have no intention of obtaining any additional DVDs,
however, if there is a test DVD that you know works that you want me
to try from Netflix, I'd be glad to rent it from them for testing
purposes.

Questions:  block size OK with UDF, DVDs, and DVD devices, and ENBD?

I have successfully:

1.  Patched both machine's kernel (2.6.4-rc3 on each) with
    enbd-2.6.1.pat from nbd-2.4.32pre.tgz.  Yes, I run latest
    2.6.4-rc3 kernel on both machines, and have no intention
    of going back to 2.4 (far too hard!!!).
2.  Recompiled client kernel with enbd and enbd-ioctl modules:
    CONFIG_ENBD=y
    CONFIG_BLK_DEV_ENBD=m
    CONFIG_BLK_DEV_ENBD_IOCTL=m
    Also rebooted into that newly compiled kernel, just for certainty.
3.  Patched a source tree of linux-2.4.24 laying around in case I
    needed it for something (I'm glad I saved it!) with
    enbd-2.4.22.pat, also from nbd-2.4.32pre.tgz, just so that I can
    set "LINUXDIR" to something that will compile:
    
    Server:
    
    --- /usr/src/server/nbd/enbd/nbd-2.4.32/Makefile.~1~       2004-03-03 12:23:23.000000000 -0800
    +++ /usr/src/server/nbd/enbd/nbd-2.4.32/Makefile   2004-03-10 16:11:57.647880478 -0800
    @@ -19,13 +19,15 @@
     # turn on to enable SSL channels
     USING_SSL    = 0
     # debug level
    -DEBUG        = 0
    +DEBUG        = 1
     # root of build
    -BUILD        = /tmp
    +# BUILD = /tmp
    +BUILD        = /usr/src/server/nbd/enbd/nbd-2.4.32/tmp
     # will module be on an SMP machine
    -SMP          = 0
    +SMP          = 1   # since server has P4 & thus SMP
     # where the kernel sources are
    -LINUXDIR     = /usr/src/linux
    +#LINUXDIR     = /usr/src/linux
    +LINUXDIR     = /usr/src/server/linux-2.4.24-gcc-ulmo
     # which compiler to use (KCC is for the kernel modules)
     CC           = gcc
     KCC          = gcc
    
    Client:
    
    --- /usr/src/client/nbd/enbd/nbd-2.4.32/Makefile.~1~       2004-03-03 12:23:23.000000000 -0800
    +++ /usr/src/client/nbd/enbd/nbd-2.4.32/Makefile   2004-03-10 16:18:44.738035464 -0800
    @@ -19,13 +19,15 @@
     # turn on to enable SSL channels
     USING_SSL    = 0
     # debug level
    -DEBUG        = 0
    +DEBUG        = 1
     # root of build
    -BUILD        = /tmp
    +# BUILD = /tmp
    +BUILD        = /usr/src/client/nbd/enbd/nbd-2.4.32/tmp
     # will module be on an SMP machine
     SMP          = 0  # no SMP in client kerenl
     # where the kernel sources are
    -LINUXDIR     = /usr/src/linux
    +#LINUXDIR     = /usr/src/linux
    +LINUXDIR     = /usr/src/server/linux-2.4.24-gcc-ulmo
     # which compiler to use (KCC is for the kernel modules)
     CC           = gcc
     KCC          = gcc

4.  make&&sudo make install on both
5.  Run /usr/src/server/nbd/enbd/nbd-2.4.32/nbd/scripts/MAKEDEV on both
6.  My dvd is at /dev/dvd.  So, I test with:

    server# enbd-server 3228 /dev/dvd -r
    client# for m in enbd enbd_ioctl; do modprobe $m; done
    client# enbd-client server:3228 /dev/nda
    client$ dd if=/dev/nda of=/tmp/test

    I should get a big ~7GB /tmp/test file.  I get 0.

    Here's output, mixed together:

Script started on Wed Mar 10 18:13:32 2004
server# netstat -an|egrep 3228[\n]
server# enbd-server 3228 /dev/dvd -r &[\n]
[1] 25172[\n]
server# enbd-server 25172: <#4174> main gave 4 args, received 4 treated[\n]
enbd-server 25173: <#4113> settitle copying arg 1/4 : 3228 for port 3228, space 2525 left[\n]
enbd-server 25173: <#4113> settitle copying arg 2/4 : /dev/dvd for port 3228, space 2520 left[\n]
enbd-server 25173: <#4113> settitle copying arg 3/4 : -r for port 3228, space 2511 left[\n]
enbd-server 25173: server: will open resources in mode 0[\n]
file 25173: <# 828> openfile entered[\n]
file 25173: set device ro because component /dev/dvd is ro[\n]
file 25173: <# 884> openfile opened /dev/dvd fd 4[\n]
file 25173: <# 905> openfile Successfully read sector 0-7 of file /dev/dvd fd 4[\n]
file 25173: <#  69> seek seek to sector 0 type SET[\n]
file 25173: <# 927> openfile opened file 8074d28 for 1th time[\n]
file 25173: <# 934> openfile exited 0[\n]
file 25173: <# 299> getsize1 looking for export size with seek SEEK_END[\n]
file 25173: <#  69> seek seek to sector 0 type CUR[\n]
file 25173: <#  69> seek seek to sector 0 type SEEK_END[\n]
file 25173: <# 246> closefile entered[\n]
file 25173: <# 271> closefile closed /dev/dvd[\n]
file 25173: <# 282> closefile exited 0 and fully closed[\n]
file 25173: <# 828> openfile entered[\n]
file 25173: <# 884> openfile opened /dev/dvd fd 4[\n]
file 25173: <# 899> openfile Could not read sector 0-255 of file /dev/dvd fd 4: Bad address[\n]
file 25173: <# 934> openfile exited -1[\n]
enbd-server 25173: server: Could not open all resources immediately: Bad address[\n]
file 25173: <# 246> closefile entered[\n]
file 25173: <# 252> closefile exited 0[\n]
enbd-server 25173: server: set default blksize to 131072.[\n]
enbd-server 25173: <#3661> master Completed open resources size 7845838848[\n]
enbd-server 25173: size of exported file/device is 7845838848enbd-server 25174: server (-2) locked /var/state/nbd/server-IvSyBu.client_ips[\n]
enbd-server 25174: server (-2) unlocked /var/state/nbd/server-IvSyBu.client_ips[\n]
enbd-server 25174: server (-2) set new signal handlers[\n]
enbd-server 25174: <# 834> connectme Server (-2) opens primary socket 1[\n]
enbd-server 25174: <# 864> connectme (-2) server set socket 1 nonblocking[\n]
enbd-server 25174: <# 871> connectme bind, enbd-server 25174: <# 883> connectme Server (-2) waiting for connections from port 3228 on socket 1[\n]
enbd-server 25174: <# 885> connectme listen, enbd-server 25174: <# 894> connectme accept, [\n]
[1]+  Done                    enbd-server 3228 /dev/dvd -r[\n]
server# enbd-server 25174: <# 894> connectme accept, [\n]
server# enbd-server 25174: <# 894> connectme accept, [\n]
server# ssh client[\n]
client# [\n]
client# enbd-client server:3228 /dev/nda
enbd-client  7630: client says target 0 is SERVERIP#:3228[\n]
enbd-client  7630: <# 490> set_servername client says host name 0 is /dev/nda[\n]
enbd-client  7630: <# 829> cmdline client says device name is /dev/nda[\n]
enbd-client  7630: <# 840> cmdline client specified no route nor number of channels! Try -n 2. Assuming 2.[\n]
enbd-client  7630: <# 445> set_channels client sees target 0 is SERVERIP#:3228[\n]
enbd-client  7630: <# 445> set_channels client sees target 1 is SERVERIP#:3228[\n]
stream  7630: <# 676> initstream initialized stream bfffe2d4[\n]
enbd-client  7630: <#3785> main Created NBD ioctl buffer size 263144[\n]
enbd-client  7630: client (-1) opens device /dev/nda[\n]
enbd-client  7630: client (-1) manager opened NBD device /dev/nda (2b00)[\n]
enbd-client  7630: client (-1) left kernel bdflush sync boundary at 1075159264%[\n]
enbd-client  7630: client (-1) set kernel bdflush async boundary to 25% from 1074319278%[\n]
enbd-client  7630: <#3832> main No pid file set[\n]
enbd-client  7630: client (-1) manager detaches from shell[\n]
enbd-client  7631: <#3872> main client (-1) manager started new process group 7631[\n]
enbd-client  7631: <#3898> main client (-1) manager sees target 0 is SERVERIP#:3228(3228)[\n]
enbd-client  7631: <#3898> main client (-1) manager sees target 1 is SERVERIP#:3228(3228)[\n]
enbd-client  7631: <#3911> main client (-1) manager sees 1 distinct targets[\n]
enbd-client  7631: <#3929> main client (-1) manager tries target SERVERIP#:3228[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
enbd-client  7631: client (-1) starts introduction sequence on SERVERIP#:3228[\n]
enbd-client  7631: <#2497> introduction client (-1) joins inits pgrp [\n]
enbd-client  7631: <#2502> introduction client (-1) resets sighandlers[\n]
enbd-client  7631: <#2508> introduction client (-1) has initial socket -1[\n]
stream  7631: <# 482> connect_sock client opened socket 5[\n]
enbd-server 25174: server (-2) opened port 3228 (socket 4) for client CLIENTIP#
enbd-server 25174: <# 960> connectme server set socket 4 nonblocking
stream 25174: <# 676> initstream initialized stream 80753ec
enbd-server 25174: <#3822> master server (-2) got client addr 0xa090909
enbd-client  7630: <#3837> main client manager parent 7630 tries to die[\n]
nbd-shmem 25191: shmem area total size 139264
nbd-shmem 25191: shmem hash area starts at offset 4096
nbd-shmem 25191: shmem hash area size 135168
nbd/hash 25191: hash area total size 135168
nbd/hash 25191: hash buckets 256
nbd/hash 25191: reduce hash area effective size to 134992
nbd/hash 25191: hash size 4096 header + 130896 data = 134992
nbd/hash 25191: hash entries initial lo/hi limits set at 2198/2443 entries
nbd/hash 25191: pre-seeding hash heap with unit size 65536
nbd/hash 25191: pre-seeding hash heap with unit size 32768
nbd/hash 25191: pre-seeding hash heap with unit size 16384
nbd/hash 25191: pre-seeding hash heap with unit size 8192
nbd/hash 25191: pre-seeding hash heap with unit size 4096
client# nbd/hash 25191: pre-seeding hash heap with unit size 2048
nbd/hash 25191: pre-seeding hash heap with unit size 1024
nbd/hash 25191: pre-seeding hash heap with unit size 512
nbd/hash 25191: pre-seeding hash heap with unit size 256
nbd/hash 25191: pre-seeding hash heap with unit size 64
nbd/hash 25191: pre-seeding hash heap with unit size 16
enbd-server 25191: <#2524> introduction Server begins introduction on port 3228
stream  7631: <# 498> connect_sock client stream bfffe2d4 connected on socket 5 to port 3228[\n]
enbd-client  7631: <#2541> introduction client (-1) opened socket 5 to SERVERIP#:3228[\n]
enbd-server 25191: server (-1) set default signal handlers
enbd-server 25191: <#2528> introduction Server sets timer for introduction
nbd/alarm 25191: <# 206> catch_ualarm set alarm 120000000
enbd-server 25191: <#2177> talk_hello hello...
enbd-server 25191: <# 256> writenet write 5 bytes on socket 4
stream 25191: <# 589> write_sock stream 0x80753ec writes 5B (0x6f6c6568..) from buf 0x8069f17
nbd/alarm 25191: <# 206> catch_ualarm set alarm 30000000
nbd/alarm 25191: <# 156> unhook unset alarm -
enbd-server 25191: <# 258> writenet write 5 on socket 4 reurned 5
enbd-server 25191: <# 256> writenet write 10 bytes on socket 4
stream 25191: <# 589> write_sock stream 0x80753ec writes 10B (0x2d64626e..) from buf 0x8069f01
nbd/alarm 25191: <# 206> catch_ualarm set alarm 30000000
nbd/alarm 25191: <# 156> unhook unset alarm -
enbd-server 25191: <# 258> writenet write 10 on socket 4 reurned 10
enbd-server 25191: <# 256> writenet write 1 bytes on socket 4
stream 25191: <# 589> write_sock stream 0x80753ec writes 1B (0x6567000a..) from buf 0x806f28f
nbd/alarm 25191: <# 156> unhook unset alarm -
enbd-server 25191: <# 258> writenet write 1 on socket 4 reurned 1
enbd-server 25191: server (-1) sent hello ok
enbd-server 25191: <#2207> talk_passwd OK!, passwd...
enbd-server 25191: server (-1) sent passwd ok
enbd-server 25191: <#2224> talk_magic OK!, cliserv_magic...
enbd-server 25191: server (-1) got cliserv magic ok
enbd-server 25191: <#2246> talk_device OK!, device ...
enbd-server 25191: <# 270> readnet read 5 on socket 4
enbd-client  7631: <#2307> expect client (-1) starts expect sequence intro[\n]
enbd-client  7631: <#2333> expect try looking for read command Helo[\n]
enbd-client  7631: <#2195> command Search for key Helo[\n]
enbd-client  7631: <#2200> command Fetch 11 more bytes from net to total 11[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 11B (0x6f6c6568..) to buf 0x8078e60[\n]
enbd-client  7631: <#2211> command buffer [helo][\n]
enbd-client  7631: <#2228> command found Helo[\n]
enbd-client  7631: <#2243> command Fetch 5 more bytes from net to total 16[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 5B (0x746e6569..) to buf 0x8078e6b[\n]
enbd-client  7631: <#2354> expect command Helo received[\n]
enbd-client  7631: <#2379> expect mark Helo as actioned[\n]
enbd-client  7631: <#2280> drop shift buff 5 left to total 11[\n]
enbd-client  7631: <#2387> expect client (-1) returns with Helo from expect[\n]
enbd-client  7631: <#2619> introduction client (-1) introduction begins[\n]
enbd-client  7631: <#2280> drop shift buff 11 left to total 0[\n]
enbd-client  7631: <#2333> expect try looking for read command pass[\n]
enbd-client  7631: <#2195> command Search for key pass[\n]
enbd-client  7631: <#2200> command Fetch 9 more bytes from net to total 9[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 9B (0x73736170..) to buf 0x8078e60[\n]
enbd-client  7631: <#2211> command buffer [pass][\n]
enbd-client  7631: <#2228> command found pass[\n]
enbd-client  7631: <#2243> command Fetch 5 more bytes from net to total 14[\n]
enbd-client  7631: <#2354> expect command pass received[\n]
enbd-client  7631: <#2379> expect mark pass as actioned[\n]
enbd-client  7631: <#2280> drop shift buff 5 left to total 9[\n]
enbd-client  7631: <#2387> expect client (-1) returns with pass from expect[\n]
enbd-client  7631: <#2631> introduction client (-1) read passwd [NBDMAGIC] ok from SERVERIP#:3228[\n]
enbd-client  7631: <#2333> expect try looking for read command mgck[\n]
enbd-client  7631: <#2195> command Search for key mgck[\n]
enbd-client  7631: <#2200> command Fetch 19 more bytes from net to total 19[\n]
enbd-client  7631: <#2211> command buffer [mgck][\n]
enbd-client  7631: <#2228> command found mgck[\n]
enbd-client  7631: <#2243> command Fetch 5 more bytes from net to total 24[\n]
enbd-client  7631: <#2354> expect command mgck received[\n]
enbd-client  7631: <#2379> expect mark mgck as actioned[\n]
enbd-client  7631: <#2387> expect client (-1) returns with mgck from expect[\n]
enbd-client  7631: <#2652> introduction client (-1) got cliserv magic ok[\n]
enbd-client  7631: <#2338> expect try looking for write command rdev[\n]
enbd-client  7631: <#2342> expect result from looking for write command rdev is 4[\n]
enbd-client  7631: <#2357> expect writing data for command rdev[\n]
stream  7631: <# 589> write_sock stream 0xbfffe2d4 writes 5B (0x30306232..) from buf 0x8078d80[\n]
stream 25191: <# 575> read_sock stream 0x80753ec reads 5B (0x30306232..) to buf 0xbfffe750
enbd-server 25191: <# 272> readnet read 5 on socket 4 reurned 5
enbd-client  7631: <#2364> expect client (-1) suggested rdev 2b00[\n]
 to server[\n]
enbd-server 25191: server (-1) received id device 2b00 ok
enbd-server 25191: <#2274> talk_size OK!, size (7845838848)...
enbd-client  7631: <#2367> expect have 0 after offset 4, need 5 more in buf[\n]
enbd-server 25191: server (-1) sent size 7845838848 ok
enbd-server 25191: <#2294> talk_sign OK!, signature...
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 5[\n]
enbd-server 25191: server (-1) sent sig [IvSyBu] ok
enbd-server 25191: <#2318> talk_ro OK!, ro/rw... enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 6[\n]
enbd-server 25191: server (-1) suggested ro flags 1 ok
enbd-server 25191: <#2337> talk_blksize OK!, blksize...
enbd-server 25191: <# 270> readnet read 5 on socket 4
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 7[\n]
enbd-client  7631: <#2657> introduction client (-1) got rdev 0x2b00 ok[\n]
enbd-client  7631: client (-1) got size 7845838848[\n]
enbd-client  7631: client (-1) got signature [IvSyBu], had [][\n]
enbd-client  7631: <#2746> introduction client (-1) received remote resource ro flags 1[\n]
enbd-client  7631: <#2753> introduction client (-1) sets server ro flag[\n]
enbd-client  7631: <#2758> introduction client (-1) sets local ro flag[\n]
enbd-client  7631: <#2763> introduction client (-1) negotiated device ro flags 1[\n]
enbd-client  7631: <#2338> expect try looking for write command bksz[\n]
enbd-client  7631: <#2342> expect result from looking for write command bksz is 4[\n]
enbd-client  7631: <#2357> expect writing data for command bksz[\n]
stream  7631: <# 589> write_sock stream 0xbfffe2d4 writes 5B (0x34323031..) from buf 0x8078d8a[\n]
stream 25191: <# 575> read_sock stream 0x80753ec reads 5B (0x34323031..) to buf 0xbfffe750
enbd-server 25191: <# 272> readnet read 5 on socket 4 reurned 5
enbd-server 25191: server (-1) received blksize 1024 ok
enbd-server 25191: server (-1) sent/negotiated blksize 131072 ok
enbd-server 25191: <#2371> talk_pulse_intvl (131072) OK!, pulse_intvl...
enbd-server 25191: <# 270> readnet read 5 on socket 4
enbd-client  7631: <#2364> expect client (-1) suggested bksz 1024[\n]
 to server[\n]
enbd-client  7631: <#2367> expect have 0 after offset 4, need 5 more in buf[\n]
[\n]
client# enbd-server 25174: <# 975> disconnectme server (-2) closing socket on port #3228
enbd-server 25174: <# 823> connectme Server (-2) reuses primary socket 1
stream 25191: <# 575> read_sock stream 0x80753ec reads 5B (0x30313331..) to buf 0xbfffe750
enbd-server 25191: <# 272> readnet read 5 on socket 4 reurned 0
enbd-server 25191: server (-1) received pulse_intvl 131072 ok
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8078eb4[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8078eb5[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8078eb6[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 99[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 100[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 101[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8078f18[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8078f19[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8078f1a[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 199[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 200[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 201[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8078f7c[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8078f7d[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8078f7e[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 299[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 300[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 301[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8078fe0[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0x1000000..) to buf 0x8078fe1[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0x10000..) to buf 0x8078fe2[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 399[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 400[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 401[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8079044[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8079045[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8079046[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 499[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 500[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 501[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x80790a8[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x80790a9[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x80790aa[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 599[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 600[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 601[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x807910c[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x807910d[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x807910e[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 699[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 700[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 701[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8079170[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8079171[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8079172[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 799[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 800[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 801[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x80791d4[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x80791d5[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x80791d6[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 899[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 900[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 901[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8079238[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8079239[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x807923a[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 999[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1000[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1001[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x807929c[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x807929d[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x807929e[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1099[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1100[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1101[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8079300[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8079301[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x8079302[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1199[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1200[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1201[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0x40162300..) to buf 0x8079364[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0xec401600..) to buf 0x8079365[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0xf9ec4000..) to buf 0x8079366[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1299[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1300[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1301[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x80793c8[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x80793c9[\n]
stream  7631: <# 575> read_sock stream 0xbfffe2d4 reads 1B (0..) to buf 0x80793ca[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1399[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1400[\n]
enbd-client  7631: <#2292> fill Fetch 1 more bytes from net to total 1401[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 156> unhook unset alarm -[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 206> catch_ualarm set alarm 30000000[\n]
nbd/alarm  7631: <# 151> unhook signalling ALRM for late (-1828.274658s) alarm 0x8078d00[\n]
[\n]
client# [\n]
client# dd if=/dev/nda of=/tmp/test[\n]
dd: reading `/dev/nda': Input/output error[\n]
0+0 records in[\n]
0+0 records out[\n]
0 bytes transferred in 0.018381 seconds (0 bytes/sec)[\n]
client# [\n]
client# dmesg|tail[\n]
Buffer I/O error on device nda, logical block 13[\n]
device not enabled.[\n]
NBD #2422[31]: do_enbd_request ending req c6017c00 with prejudice[\n]
Buffer I/O error on device nda, logical block 14[\n]
device not enabled.[\n]
NBD #2422[32]: do_enbd_request ending req c60178e0 with prejudice[\n]
Buffer I/O error on device nda, logical block 15[\n]
device not enabled.[\n]
NBD #2422[33]: do_enbd_request ending req c60178e0 with prejudice[\n]
Buffer I/O error on device nda, logical block 0[\n]
client# exit[\n]
server# ps xf |egrep server[\n]
25209 pts/90   S      0:00  \_ grep -E server[\n]
25174 pts/90   S      0:00 enbd-server 3228 /dev/dvd -r[\n]
25191 pts/90   SL     0:00  \_ enbd-server 3228 /dev/dvd -r[\n]
server# kill 251enbd-server 25191: <#2393> talk_pulse_intvl Introduction failed: Invalid argument[\n]
nbd/alarm 25191: <# 159> unhook unset alarm -[\n]
enbd-server 25191: <#2595> introduction Introduction failed, sock descriptor is 4[\n]
enbd-server 25191: <# 975> disconnectme server (-1) closing socket on port #3228[\n]
enbd-server 25191: <#2597> introduction Introduction failed, disabling timer and return[\n]
enbd-server 25191: <#3877> master Server: initial server/client communication failed Transport endpoint is not connected[\n]
enbd-server 25191: <# 975> disconnectme server (-1) closing socket on port #3228[\n]
enbd-server 25174: server (-2) sighandler acks SIGCHLD[\n]
enbd-server 25174: <#2913> nullsigchldhandler child with pid 25191 died, remove from DB?[\n]
74[\n]
enbd-server 25174: server (-2) sighandler propagates signal 15[\n]
server# enbd-server 25174: server (-2) sighandler terminates safely on signal 15[\n]
kill 25174[\n]server# ps xf |egrep server[\n]
25211 pts/90   S      0:00  \_ grep -E server[\n]
server# sync[\n]
server# exit[\n]
Script done on Wed Mar 10 18:15:30 2004



One debugging idea I've had is trying to get ENBD to work with some
other device, to see if the problem has something to do with the
device I've chosen to serve.  However, when I tried that by using
/dev/evms/o (an old filesystem I have laying around on my disk), it
didn't work.  Note that EVMS is like LVM/DM, and that I don't have
extra disk devices (I only have one 120x10^9 byte disk in my server,
and one dinky ~4GB one in my client), so I'm not certain if ENBD is
supposed to be able to do that.  Is it safe to do a read-only ENBD
serving of something the kernel is doing lots of RW activity in in
subpartitions, LVMs, DMs, EVMSs, etc.?  (I've standardized on ReiserFS
since around 2000 or so, in case that matters; I pretty much depend on
some of its unique features.  Since that layer is above ENBD, I doubt
that matters.  I haven't yet gotten a seperate journal disk, which I
would love to do when I get more disks, so I keep journals in the
device nodes (default action), for simplicity, so that's not an issue,
either, I think.)


More information about the ENBD mailing list