[ENBD] kernel message "non existant block device"
Peter T. Breuer
ptb@it.uc3m.es
Mon, 23 Oct 2000 17:31:36 +0200 (MET DST)
"A month of sundays ago pbmonday@imation.com wrote:"
> On the command: dd if=/dev/zero of=/dev/nda bs=1024 count=1000
>
> I start receiving messages in the xconsole:
> kernel: ll_rw_block: Trying to read non-existant block-device 2b:00
This is a clear message! You don't have any such device, the module is
not loaded or is inactive or disabled, the kernel is talking to the wall.
It is complaining.
> The mke2fs fails in the same way. I browsed the source and the RCVTIMEO fail does not appear
> to be a critical failure...is this true? If not, do you know how to eliminate that warning?
Sure. Implement the protocol or comment the source line that attempts to
invoke it (and presumably edit the manual page for socket to match).
SO_RCVTIMEO and SO_SNDTIMEO
Specify the sending or receiving timeouts until
reporting an error. They are fixed to a protocol
specific setting in Linux and cannot be read or
written. Their functionality can be emulated using
alarm(2) or setitimer(2).
And may I say that it is extremely hard to emulate. Maybe I ought to
try setitimer again.
DESCRIPTION
The system provides each process with three interval
timers, each decrementing in a distinct time domain. When
any timer expires, a signal is sent to the process, and
the timer (potentially) restarts.
I'm not convinced it mixes with alarm, sleep or select, however.
> The SuSE kernel version I'm compiling against is 2.2.14.
> us688274b:/tmp # ./nbd-server 1077 /tmp/remote
> us688274b:/tmp # nbd-server: notice: setsockopt RCVTIMEO failed with Protocol not available
>
> us688274b:/tmp # insmod /tmp/nbd.o
And did it succeed? The kernel tells us that it didn't or that it
succeeded but subsequently never was opened.
> us688274b:/tmp # ls -l /dev/nda
> brw-r--r-- 1 root root 43, 0 Oct 12 04:44 /dev/nda
> us688274b:/tmp # ./nbd-client localhost 1077 /dev/nda
Incorrect command line for a 2.4.* nbd version. You named no channels.
> nbd-client: client received no connections named on cmdline!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> us688274b:/tmp # nbd-client: client (-1) starts introduction sequence on port 1077
> nbd-server: server (-1) opened port #1077 on socket 1
> nbd-server: server (-1) read passwd ok
> nbd-server: server (-1) got cliserv magic ok
> nbd-server: server (-1) sent size 16384000 ok
> nbd-server: server (-1) sent sig ok
> nbd-server: server (-1) suggested ro flags 0 ok
> nbd-server: server (-1) received blksize 1024 ok
> nbd-server: server (-1) sent/negotiated blksize 1024 ok
> nbd-server: server (-1) agreed 0 channels ok
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
confirm.
> nbd-server: server (-1) selected free port at 1078
> nbd-server: server (-1) posted port 1078 ok
> nbd-server: server (-1) manager started new process group 7613
> nbd-server: server (-1) manager set CHLD USR1 USR2 HUP TERM signal handlers
> nbd-client: client (-1) got port 1078 ok
> nbd-client: client (-1) introduction sequence ends ok
>
> us688274b:/tmp # dd if=/dev/zero of=/dev/nda bs=1024 count=1000
> 1000+0 records in
> 1000+0 records out
I hope it will fail! Missing hard disks are usually fatal.
Output from /proc/nbdinfo will confirm.
Peter