[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: rumpdisk status
From: |
Damien Zammit |
Subject: |
Re: rumpdisk status |
Date: |
Sat, 14 Nov 2020 12:27:58 +1100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
On 11/11/20 5:58 am, Samuel Thibault wrote:
> Damien Zammit, le mar. 10 nov. 2020 21:11:31 +1100, a ecrit:
>> I also printed inside rumpdisk to dump the offsets before calling
>> pread/pwrite,
>> these offsets are sometimes wider than 32 bits, sometimes not.
>
> Ok. Do pread/pwrite get called concurrently, or is pread/pwrite always
> finished before the next one starts?
Looks like all the pread/pwrites occur serially one-by-one with no overlap.
I tried booting off IDE and mounting 2x rumpdisks with gdb attached.
I tried to mount the second partition twice and got two failures,
root@zamhurd:~# mount /dev/wd0s3b /part3 -t ext2 -o ro
RUMP: OPEN: /dev/wd0d
ext2fs: /dev/wd0s3b: panic: get_hypermetadata: Cannot read hypermetadata
mount: cannot start translator /hurd/ext2fs: Translator died
root@zamhurd:~# mount /dev/wd0s3b /part3 -t ext2 -o ro
RUMP: OPEN: /dev/wd0d
ext2fs: /dev/wd0s3b: panic: get_hypermetadata: Cannot read hypermetadata
mount: cannot start translator /hurd/ext2fs: Translator died
then on the third time running the same command I got the following crash and
backtrace in rumpdisk.static:
root@zamhurd:~# mount /dev/wd0s3b /part3 -t ext2 -o ro
RUMP: OPEN: /dev/wd0d
/hurd/crash: /hurd/rumpdisk.static(777) crashed, signal {no:11, code:2, error:2}
, exception {1, code:2, subcode:16}, PCs: {0x804d77e, 0x81c0ecc, 0x81c0ecc, 0x81
c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0e
cc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc,
0x81c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc, 0x81c0ecc}, writing core
file.
ext2fs: /dev/wd0s3b: panic: get_hypermetadata: Cannot read hypermetadata
mount: cannot start translator /hurd/ext2fs: Translator died
```
(gdb) bt full
#0 0x0804d77e in ports_port_deref (portstruct=0x10040420) at
../../libports/port-deref.c:30
pi = 0x10040420
result = <optimized out>
#1 0x08049dd1 in device_open (reply_port=115, reply_port_type=18, mode=3,
name=0x1fffd5c "/dev/wd0",
devp=0x2001d64, devicePoly=0x1fffc7c) at ../../rumpdisk/block-rump.c:257
err = <optimized out>
bd = <optimized out>
dev_name = "/dev/wd0d\000\061\b(\327\004\b
\323\061\bc\000\000\000\001\000\000\000\001\000\000"
media_size = 2
block_size = 137446780
#2 0x0804a25a in ds_device_open (open_port=99, reply_port=115,
reply_port_type=18, mode=3,
name=0x1fffd5c "/dev/wd0", devp=0x2001d64, devicePoly=0x1fffc7c) at
../../libmachdev/ds_routines.c:112
i = 0
dev_master = 3
err = 2502
#3 0x0804b319 in _Xdevice_open (InHeadP=0x1fffd30, OutHeadP=0x2001d40) at
deviceServer.c:125
In0P = 0x1fffd30
OutP = 0x2001d40
msgh_simple = <optimized out>
modeCheck = {msgt_name = 2, msgt_size = 32, msgt_number = 1,
msgt_inline = 1, msgt_longform = 0,
msgt_deallocate = 0, msgt_unused = 0}
deviceType = <optimized out>
master_port = <optimized out>
reply_port = <optimized out>
devicePoly = 134525592
#4 0x0804a6d9 in demuxer (inp=0x1fffd30, outp=0x2001d40) at
../../libmachdev/trivfs_server.c:479
routine = <optimized out>
#5 0x0804da8d in internal_demuxer (inp=0x1fffd30, outheadp=<optimized out>)
at ../../libports/manage-one-thread.c:96
pi = 0x1003ef40
link = {thread = 4, next = 0x0, prevp = 0x1003ef5c, notifies = 0x0,
interrupted_next = 0x1fffd30}
status = <optimized out>
err = <optimized out>
outp = 0x2001d40
RetCodeType = <optimized out>
#6 0x0815fea0 in mach_msg_server_timeout ()
No symbol table info available.
#7 0x0804db65 in ports_manage_port_operations_one_thread (bucket=0x10002c50,
demuxer=0x804a6a0 <demuxer>,
timeout=0) at ../../libports/manage-one-thread.c:120
thread = {color = 1}
err = <optimized out>
#8 0x0804b132 in machdev_trivfs_server (bootstrap=9) at
../../libmachdev/trivfs_server.c:515
fsys = 0x10002d10
err = <optimized out>
#9 0x08048f2c in main (argc=1, argv=0x2003ef4) at ../../rumpdisk/main.c:126
bootstrap = 9
err = 0
t = 27
```
Something fishy is going on.
Damien
- Re: rumpdisk status, (continued)
- Re: rumpdisk status, Samuel Thibault, 2020/11/08
- Re: rumpdisk status, Damien Zammit, 2020/11/09
- Re: rumpdisk status, Samuel Thibault, 2020/11/09
- Re: rumpdisk status, Samuel Thibault, 2020/11/09
- Re: rumpdisk status, Damien Zammit, 2020/11/09
- Re: rumpdisk status, Samuel Thibault, 2020/11/09
- Re: rumpdisk status, Damien Zammit, 2020/11/09
- Re: rumpdisk status, Samuel Thibault, 2020/11/10
- Re: rumpdisk status, Damien Zammit, 2020/11/10
- Re: rumpdisk status, Samuel Thibault, 2020/11/10
- Re: rumpdisk status,
Damien Zammit <=
- Re: rumpdisk status, Samuel Thibault, 2020/11/23
- Re: rumpdisk status, Damien Zammit, 2020/11/23
- Re: rumpdisk status, Samuel Thibault, 2020/11/24
- Re: rumpdisk status, Almudena Garcia, 2020/11/24
- Re: rumpdisk status, Damien Zammit, 2020/11/09
- Re: rumpdisk status, Samuel Thibault, 2020/11/09