Date: Mon, 6 May 2002 16:53:21 +0200 From: Andre Albsmeier <andre.albsmeier@mchp.siemens.de> To: freebsd-stable@freebsd.org Subject: panic: ffs_vfree: freeing free inode Message-ID: <20020506165321.A98931@curry.mchp.siemens.de>
next in thread | raw e-mail | index | archive | help
One of my 4.5-STABLE servers crashed today with this msg: panic: ffs_vfree: freeing free inode I have the kernel.debug and the dump. I don't know how to debug ffs stuff but I I am happy if someone instructs me what to do. Since the filesystems are mounted with softupdates it might be a bug in the softupdates code. The kernel (and userland) where compiled Thu Mar 28 14:37:35 CET 2002. I can't remember any=20 commits to the fs code so I assume the problem is in 4.6-PRERELEASE as well. This is what I got so far: root@server:/var/crash>gdb -k /usr/obj/src/src-4/sys/server/kernel.debug vm= core.10 GNU gdb 4.18 Copyright 1998 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain condition= s. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-unknown-freebsd"... IdlePTD at phsyical address 0x00303000 initial pcb at physical address 0x00282ee0 panicstr: ffs_vfree: freeing free inode panic messages: --- panic: ffs_vfree: freeing free inode syncing disks... 31 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1=20 giving up on 1 buffers Uptime: 18d6h24m37s dumping to dev #da/9, offset 276456 dump 511 510 509 508 507 506 505 504 503 502 501 500 499 498 497 496 495 49= 4 493 492 491 490 489 488 487 486 485 484 483 482 481 480 479 478 477 476 4= 75 474 473 472 471 470 469 468 467 466 465 464 463 462 461 460 459 458 457 = 456 455 454 453 452 451 450 449 448 447 446 445 444 443 442 441 440 439 438= 437 436 435 434 433 432 431 430 429 428 427 426 425 424 423 422 421 420 41= 9 418 417 416 415 414 413 412 411 410 409 408 407 406 405 404 403 402 401 4= 00 399 398 397 396 395 394 393 392 391 390 389 388 387 386 385 384 383 382 = 381 380 379 378 377 376 375 374 373 372 371 370 369 368 367 366 365 364 363= 362 361 360 359 358 357 356 355 354 353 352 351 350 349 348 347 346 345 34= 4 343 342 341 340 339 338 337 336 335 334 333 332 331 330 329 328 327 326 3= 25 324 323 322 321 320 319 318 317 316 315 314 313 312 311 310 309 308 307 = 306 305 304 303 302 301 300 299 298 297 296 295 294 293 292 291 290 289 288= 287 286 285 284 283 282 281 280 279 278 277 276 275 274 273 272 271 270 26= 9 268 267 266 265 264 263 262 261 260 259 258 257 256 255 254 253 252 251 2= 50 249 248 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 = 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213= 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 19= 4 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 1= 75 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 = 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138= 137 136 135 134 133 132 131 130 129 128 127 126 125 124 123 122 121 120 11= 9 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 1= 00 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 = 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 = 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 = 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 [CTRL-C to = abort] [CTRL-C to abort] [CTRL-C to abort] 1 0 [CTRL-C to abort] [CTRL-C to= abort] [CTRL-C to abor --- #0 dumpsys () at /src/src-4/sys/kern/kern_shutdown.c:487 487 if (dumping++) { (kgdb) where #0 dumpsys () at /src/src-4/sys/kern/kern_shutdown.c:487 #1 0xc0161443 in boot (howto=3D256) at /src/src-4/sys/kern/kern_shutdown.c= :316 #2 0xc0161868 in poweroff_wait (junk=3D0xc0255591, howto=3D0) at /src/src-4/sys/kern/kern_shutdown.c:595 #3 0xc01f0781 in ffs_freefile (pvp=3D0xd5321e64, ino=3D3, mode=3D17407) at /src/src-4/sys/ufs/ffs/ffs_alloc.c:1611 #4 0xc01f58a4 in handle_workitem_freefile (freefile=3D0xc49793a0) at /src/src-4/sys/ufs/ffs/ffs_softdep.c:2913 #5 0xc01f2e43 in process_worklist_item (matchmnt=3D0x0, flags=3D0) at /src/src-4/sys/ufs/ffs/ffs_softdep.c:737 #6 0xc01f2cae in softdep_process_worklist (matchmnt=3D0x0) at /src/src-4/sys/ufs/ffs/ffs_softdep.c:622 #7 0xc018e72f in sched_sync () at /src/src-4/sys/kern/vfs_subr.c:1177 (kgdb) up 3 #3 0xc01f0781 in ffs_freefile (pvp=3D0xd5321e64, ino=3D3, mode=3D17407) at /src/src-4/sys/ufs/ffs/ffs_alloc.c:1611 1611 panic("ffs_vfree: freeing free inode"); (kgdb)=20 Now I wanted to look at fs->fs_fsmnt and found strange stuff in there. Here is the complete fs struct: (kgdb) print *fs $1 =3D {fs_firstfield =3D 1601398374, fs_unused_1 =3D 1701996150, fs_sblkno= =3D 1713388133,=20 fs_cblkno =3D 1768252786, fs_iblkno =3D 1713399662, fs_dblkno =3D 5435160= 18, fs_cgoffset =3D 1685024361,=20 fs_cgmask =3D 101, fs_time =3D 0, fs_size =3D 0, fs_dsize =3D 0, fs_ncg = =3D 1929379840,=20 fs_bsize =3D 1953653108, fs_fsize =3D 622869792, fs_frag =3D 1814047844, = fs_minfree =3D 1025535589,=20 fs_rotdelay =3D 744760608, fs_rps =3D 544433696, fs_bmask =3D 1931812925,= fs_fmask =3D 1717960714,=20 fs_bshift =3D 1818320755, fs_fshift =3D 1667460972, fs_maxcontig =3D 1830= 828647,=20 fs_maxbpg =3D 1663070305, fs_fragshift =3D 1970434671, fs_fsbtodb =3D 168= 4370544,=20 fs_sbsize =3D 1869505024, fs_csmask =3D 622869792, fs_csshift =3D 5397845= 56, fs_nindir =3D 1025536870,=20 fs_inopb =3D 175318304, fs_nspf =3D 1936090624, fs_optim =3D 1819042143, = fs_npsect =3D 1734566767,=20 fs_interleave =3D 1818370106, fs_trackskew =3D 543908719, fs_id =3D {5445= 01614, 1830841961},=20 fs_csaddr =3D 755003489, fs_cssize =3D 0, fs_cgsize =3D 0, fs_ntrak =3D 0= , fs_nsect =3D 0,=20 fs_spc =3D 1879048192, fs_ncyl =3D 622879849, fs_cpg =3D 623386724, fs_ip= g =3D 539765107,=20 fs_fpg =3D 543451509, fs_cstotal =3D {cs_ndir =3D 1864393765, cs_nbfree = =3D 1931812974,=20 cs_nifree =3D 1931812922, cs_nffree =3D 1711276042}, fs_fmod =3D 102 'f= ', fs_clean =3D 115 's',=20 fs_ronly =3D 95 '_', fs_flags =3D 98 'b',=20 fs_fsmnt =3D "alloc: blk too big\000\000\000\000\000\000\000\000\000Could= not unwind indirect block, error %d", '\000' <repeats 23 times>, "ffs_upda= te: bad link cnt\000\000\000\000\000\000\000\000ffs_truncate: read-only fil= esystem\000ffs_truncate: newspace\000\000\000\000\000\000\000ffs_indirtrunc= : bad buffer"..., fs_cgrotor =3D 1952870259, fs_ocsp =3D {0x5f706564, 0x6b6= 36f6c, 0x6f6c203a,=20 0x68206b63, 0x20646c65, 0x25207962, 0x6f730064, 0x65647466, 0x6e755f70,= 0x6b636f6c,=20 0x6f6c203a, 0x6e206b63, 0x6820746f, 0x646c65, 0x0, 0x0, 0x0, 0x0, 0x0, = 0x0, 0x0, 0x69000000,=20 0x7265746e, 0x6b636f6c, 0x735f6465, 0x7065656c, 0x6f6c203a, 0x6e206b63,= 0x6820746f},=20 fs_contigdirs =3D 0x646c65 <Address 0x646c65 out of bounds>, fs_csp =3D 0= x0, fs_maxcluster =3D 0x0,=20 fs_cpc =3D 0, fs_opostbl =3D {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 26880, 29806,= 29285, 28524, 27491,=20 25701, 29535}, {25964, 28773, 8250, 28277, 28267, 30575, 8302, 28783}= , {29285, 29793, 28521,=20 110, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 26880, 29806, 29285, = 28524, 27491, 25701,=20 29535}, {25964, 28773, 8250, 28524, 27491, 28265, 8295, 26465}, {2697= 7, 29550, 8308, 25971,=20 26220, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 26880, 29806, 29285, 2= 8524, 27491, 25701,=20 29535}, {25964, 28773, 8250, 28524, 27491, 26656, 27749, 8292}, {3107= 4, 9504, 100, 25971,=20 24941, 29279, 27749, 24933}, {25971, 8250, 28526, 8308, 25960, 25708,= 0, 0}, {0, 30464,=20 29295, 27755, 29545, 24436, 28265, 25971}, {29810, 8250, 28524, 27491= , 28192, 29807, 26656,=20 27749}, {100, 30464, 29295, 27755, 29545, 24436, 28265, 25971}}, fs_s= napinum =3D {540701810,=20 1701997665, 544826465, 1814064751, 7631721, 0, 0, 0, 0, 0, 0, 0, 199648= 8704, 1818980975,=20 1601467241, 1869440370, 540697974, 1801678700, 1953459744, 1818585120},= =20 fs_avgfilesize =3D 1870069860, fs_avgfpdir =3D 1768713074, fs_sparecon = =3D {1918858355, 1987013989,=20 1847605861, 1864397935, 1768693870, 1996518515, 1768649327, 1601004916,= 1701147238,=20 1953701946, 543976553, 1814064751, 7631721, 1802661751, 1835365481, 170= 1996127, 1948269157,=20 543518841, 1836280173, 1751348321, 1828735232, 1935636577, 1685349999, = 7565413, -2147483648,=20 1958750074}, fs_pendingblocks =3D 1684759401, fs_pendinginodes =3D 2036= 427877,=20 fs_contigsumsize =3D -1073741824, fs_maxsymlinklen =3D 2009081722, fs_ino= defmt =3D 1818980975,=20 fs_maxfilesize =3D 7526488527764484969, fs_qbmask =3D 7115730820479844352= ,=20 fs_qfmask =3D 8388356080511445868, fs_state =3D 1937076319, fs_postblform= at =3D 1073741928,=20 fs_nrpos =3D 1774200699, fs_postbloff =3D 1818193774, fs_rotbloff =3D 195= 3066345,=20 fs_magic =3D 1937076319, fs_space =3D "h"} I think fs_fsmnt is somehow not correct. Please notice the data of fs_contigdirs as well. If somebody think it makes sense, I can file a PR and keep kernel and dump for debugging. Thanks, -Andre To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020506165321.A98931>