Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 04 Dec 2013 13:59:52 +0100
From:      Paolo Pinto <paolo.pinto@netasq.com>
To:        freebsd-geom@freebsd.org
Cc:        nicolas dumont <nicolas.dumont@netasq.com>
Subject:   geom_uzip, panic: bio_length in mdstart_vnode()
Message-ID:  <529F2748.2060900@netasq.com>

next in thread | raw e-mail | index | archive | help
This is a cryptographically signed message in MIME format.

--------------ms050800030600090900040207
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi list!

My kernel is compiled with option INVARIANTS and I get a reproducible
kernel panic when trying to read data from a GEOM based compressed
memory disk:

Unread portion of the kernel message buffer:
panic: bio_length 140288
cpuid =3D 3
KDB: stack backtrace:
#0 0xffffffff80909726 at kdb_backtrace+0x66
#1 0xffffffff808d0fa8 at panic+0x1d8
#2 0xffffffff80595949 at mdstart_vnode+0x619
#3 0xffffffff80594053 at md_kthread+0x143
#4 0xffffffff808a3145 at fork_exit+0x135
#5 0xffffffff80c6fabe at fork_trampoline+0xe
Uptime: 16m21s
Dumping 367 out of 6113 MB:..5%..14%..22%..31%..44%..53%..61%..74%..83%..=
92%

Loaded symbols for /boot/kernel/geom_uzip.ko
#0  doadump (textdump=3D<value optimized out>) at pcpu.h:234
234     pcpu.h: No such file or directory.
        in pcpu.h
(kgdb) #0  doadump (textdump=3D<value optimized out>) at pcpu.h:234
#1  0xffffffff808d1552 in kern_reboot (howto=3D260)
    at /data/usr/home/fabient/fabient-freebsd/sys/kern/kern_shutdown.c:44=
9
#2  0xffffffff808d0f79 in panic (fmt=3D0x1 <Address 0x1 out of bounds>)
    at /data/usr/home/fabient/fabient-freebsd/sys/kern/kern_shutdown.c:63=
7
#3  0xffffffff80595949 in mdstart_vnode (sc=3D0xfffffe00070e5000,
    bp=3D0xfffffe0059bf38b8)
    at /data/usr/home/fabient/fabient-freebsd/sys/dev/md/md.c:742
#4  0xffffffff80594053 in md_kthread (arg=3D<value optimized out>)
    at /data/usr/home/fabient/fabient-freebsd/sys/dev/md/md.c:945
#5  0xffffffff808a3145 in fork_exit (callout=3D0xffffffff80593f10
<md_kthread>,
    arg=3D0xfffffe00070e5000, frame=3D0xffffff81bdc34c40)
    at /data/usr/home/fabient/fabient-freebsd/sys/kern/kern_fork.c:992
#6  0xffffffff80c6fabe in fork_trampoline ()
    at
/data/usr/home/fabient/fabient-freebsd/sys/amd64/amd64/exception.S:606
#7  0x0000000000000000 in ?? ()
(kgdb)

Panic is coming from a KASSERT :

KASSERT(bp->bio_length <=3D MAXPHYS, ("bio_length %jd",
(uintmax_t)bp->bio_length));

with MAXPHYS =3D 128*1024 =3D 131072


Environment :

$ uname -a
FreeBSD refbench 9.2-RELEASE-p1 FreeBSD 9.2-RELEASE-p1 #75
r229873+c58f3c3-dirty: Wed Dec  4 11:22:54 CET 2013
fabient@refbench:/usr/obj/data/usr/home/fabient/fabient-freebsd/sys/GENER=
IC
 amd64


How-To-Repeat :

$ mkdir work && cd work

$ dd if=3D/dev/random of=3Ddata.img bs=3D256k count=3D1
1+0 records in
1+0 records out
262144 bytes transferred in 0.002899 secs (90427801 bytes/sec)

$ ls -lh
total 272
-rw-r--r-- 1 paolop devel 256k Dec 4 10:47:51 2013 data.img

$ cd -

$ makefs -t ffs -o optimization=3Dtime -o version=3D2 foo.img work/
Calculated size of `foo.img': 311296 bytes, 3 inodes
Extent size set to 8192
foo.img: 0.3MB (608 sectors) block size 8192, fragment size 1024
    using 1 cylinder groups of 0.30MB, 38 blks, 32 inodes.
super-block backups (for fsck -b #) at:
 32,
Populating `foo.img'
makefs: Writing inode 3 (work//./data.img), bytes 253952 + 8192: No
space left on device

First issue; why does this happen?
As workaround, I have to create another file/data :

$ python -c "print 'a'*300000" > work/bar.txt

$ ls -lh work/
total 592
-rw-r--r-- 1 paolop devel 293k Dec 4 10:49:22 2013 bar.txt
-rw-r--r-- 1 paolop devel 256k Dec 4 10:47:51 2013 data.img

$ makefs -t ffs -o optimization=3Dtime -o version=3D2 foo.img work/
Calculated size of `foo.img': 638976 bytes, 4 inodes
Extent size set to 8192
foo.img: 0.6MB (1248 sectors) block size 8192, fragment size 1024
    using 1 cylinder groups of 0.61MB, 78 blks, 32 inodes.
super-block backups (for fsck -b #) at:
 32,
Populating `foo.img'
Image `foo.img' complete

$ mkuzip foo.img; echo $?
0

$ ls -lh foo*
-rw-r--r-- 1 paolop devel 624k Dec 4 10:49:24 2013 foo.img
-rwxr-xr-x 1 paolop devel 259k Dec 4 10:49:36 2013 foo.img.uzip*

So, it's ok, I've my uzip file and I mount it :

$ sudo kldload geom_uzip

$ sudo mdconfig -a -t vnode -o readonly -f foo.img.uzip
md0

$ sudo mount -o ro,noatime /dev/md0.uzip /mnt

$ ls -al /mnt/
total 570
drwxr-xr-x 2 1023 1001 512 Dec 4 10:49 .
drwxr-xr-x 6 admin wheel 512 Dec 4 09:23 ..
-rw-r--r-- 1 1023 1001 300001 Dec 4 10:49 bar.txt
-rw-r--r-- 1 1023 1001 262144 Dec 4 10:47 data.img

$ cp /mnt/data.img /tmp/

And panic!
Is there anything I could do to help debugging this problem? I have the
core dump if that helps.

Thanks!


Regards,
--=20
Paolo Pinto
R&D System Engineer

NETASQ - We secure IT



--------------ms050800030600090900040207
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIEnTCC
BJkwggOBoAMCAQICCnDGsUgWa/KQbFgwDQYJKoZIhvcNAQEFBQAwgZExCzAJBgNVBAYTAkZS
MQ0wCwYDVQQIEwROb3JkMRowGAYDVQQHExFWaWxsZW5ldXZlIGQnQXNjcTEuMCwGA1UEChMl
TkVUQVNRIC0gU2VjdXJlIEludGVybmV0IENvbm5lY3Rpdml0eTEnMCUGA1UECxMeTkVUQVNR
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDgxMzE0NDUzM1oXDTE0MDgxMzE0NDUz
M1owgc4xCzAJBgNVBAYTAkZSMQ0wCwYDVQQIEwROb3JkMRowGAYDVQQHExFWaWxsZW5ldXZl
IGQnQXNjcTEuMCwGA1UEChMlTkVUQVNRIC0gU2VjdXJlIEludGVybmV0IENvbm5lY3Rpdml0
eTEnMCUGA1UECxMeTkVUQVNRIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRQwEgYDVQQDEwtQ
YW9sbyBQSU5UTzElMCMGCSqGSIb3DQEJARYWcGFvbG8ucGludG9AbmV0YXNxLmNvbTCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJfH5PlgbBG9sAsYW+VgBDysPWJOjsMJFaOq
iyCsBGgZUS6n0McSqWQMGaX+lGgiuVLkmxNxnLq8kZkARq4VbT25IaRdgbE0yPmFgYLd+9RK
RNUBfGD6S0++7pebb7CXDrplhofj8fL+oLjOU27MdG/ZkWqV6Y0kTH9XPPrMSdSNqUSAcy5O
iq7GwoTYwYlzhHILmXlVvjLZ1Ev9bJP053JomE1e7BuXjOETiPe1ymMvMNTCEjEXrmhpGmNV
GIpxOKbokkngGpECQpicXf+okbHFFyEiINaNFFYlpDGHl8XXADvcEyxC7SyrIxgwpSL95VXp
3WeBNzRB+XUlFXNLnSUCAwEAAaOBszCBsDAdBgNVHQ4EFgQUwDeJ4UTO9EshTMwEjMVUgs6Y
KcowHwYDVR0jBBgwFoAUJyrrHdlE2joXc2oJICDJJaj5f7IwCQYDVR0TBAIwADAOBgNVHQ8B
Af8EBAMCA+gwIQYDVR0RBBowGIEWcGFvbG8ucGludG9AbmV0YXNxLmNvbTARBglghkgBhvhC
AQEEBAMCBLAwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUA
A4IBAQCEKfnRno7B0wOD+ZpUhK24j5uuvPTP4ObfFqbK/yRPJZOZpMr9OgJg9g+uhgL268EX
MqMmE5GbhDQq2uD70dS3f7irlssd9zjRQwdtH10c7J/NxTek3oMK+jDHFJMtaLwYyG/bfFPN
TV/z3LBh+XHIYzpgtE8LCz8q1LyPay6acw364LmQRlUNRjVy9VYPQ8aFTMIterRSuy5kUP3w
kga4WFan0uyLfGiTm5p21lyTExooMKFerEEdGdB/ctLfWbBcOaS8xTNzuhlwfINETBfqrhOQ
56ozRyAF6mElm0FFi4au/NPTX5sD/XrMITugeEub180NtKIP8ZeoQabp/j7ZMYIEATCCA/0C
AQEwgaAwgZExCzAJBgNVBAYTAkZSMQ0wCwYDVQQIEwROb3JkMRowGAYDVQQHExFWaWxsZW5l
dXZlIGQnQXNjcTEuMCwGA1UEChMlTkVUQVNRIC0gU2VjdXJlIEludGVybmV0IENvbm5lY3Rp
dml0eTEnMCUGA1UECxMeTkVUQVNRIENlcnRpZmljYXRpb24gQXV0aG9yaXR5AgpwxrFIFmvy
kGxYMAkGBSsOAwIaBQCgggI1MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN
AQkFMQ8XDTEzMTIwNDEyNTk1MlowIwYJKoZIhvcNAQkEMRYEFC/cAu7pvlRJ+q7H45Xr+f3D
wLh1MGwGCSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG
9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcN
AwICASgwgbEGCSsGAQQBgjcQBDGBozCBoDCBkTELMAkGA1UEBhMCRlIxDTALBgNVBAgTBE5v
cmQxGjAYBgNVBAcTEVZpbGxlbmV1dmUgZCdBc2NxMS4wLAYDVQQKEyVORVRBU1EgLSBTZWN1
cmUgSW50ZXJuZXQgQ29ubmVjdGl2aXR5MScwJQYDVQQLEx5ORVRBU1EgQ2VydGlmaWNhdGlv
biBBdXRob3JpdHkCCnDGsUgWa/KQbFgwgbMGCyqGSIb3DQEJEAILMYGjoIGgMIGRMQswCQYD
VQQGEwJGUjENMAsGA1UECBMETm9yZDEaMBgGA1UEBxMRVmlsbGVuZXV2ZSBkJ0FzY3ExLjAs
BgNVBAoTJU5FVEFTUSAtIFNlY3VyZSBJbnRlcm5ldCBDb25uZWN0aXZpdHkxJzAlBgNVBAsT
Hk5FVEFTUSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQIKcMaxSBZr8pBsWDANBgkqhkiG9w0B
AQEFAASCAQBiUI91DKEx1ppfpTcJGQ/OCR/iL/MbD601nt+4W0SQk8uZEb4evgMsp8rr+dyh
P6/DkoTAWJ3arnSC951Pb2Nz/gMGe9xuUkAMqWSJ7aaHGc3sN46JrXlndhOiZvteqV54R8mz
UAfdodwQERwVrd/xYPHCXCRi20WGQcc/ZaDVYagxCnNXz6rXraOizT3VbIn+jCc783ti9ZSK
BNQL0OyDjj9ZrgB1hq0R6FOgge/Kwn6InENjFyeGC8zoSSAvsAQe0dkyWR+o//E9oWuOPu7/
stbJ3//pADLilb1NzemmjuG0aKQLmpFzAeY4UGfXetwDWyiZ1oUu7bBpRNaDZGZCAAAAAAAA

--------------ms050800030600090900040207--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?529F2748.2060900>