arm/188933: lock order reversal: backtrace while writing to SD/eMMC

Winston Smith smith.winston.101 at gmail.com
Thu Apr 24 12:50:01 UTC 2014


The following reply was made to PR arm/188933; it has been noted by GNATS.

From: Winston Smith <smith.winston.101 at gmail.com>
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: arm/188933: lock order reversal: backtrace while writing to SD/eMMC
Date: Thu, 24 Apr 2014 08:47:59 -0400

 I found the exact same issue testing on FreeBSD-CURRENT on the BBB;
 this was removing a directory tree with `rm -rf` on the eMMC:
 
 
 FreeBSD beaglebone 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r264670: Fri
 Apr 18 18:55:02 EDT 2014
 root at freebsd:/root/Work/crochet-freebsd/work/obj/arm.armv6/usr/src/FreeBSD-CURRENT/sys/BEAGLEBONE
  arm
 
 
 
 lock order reversal:
  1st 0xcd25b0f8 bufwait (bufwait) @
 /usr/src/FreeBSD-CURRENT/sys/kern/vfs_bio.c:3081
  2nd 0xc3260600 dirhash (dirhash) @
 /usr/src/FreeBSD-CURRENT/sys/ufs/ufs/ufs_dirhash.c:284
 KDB: stack backtrace:
 db_trace_self() at db_trace_self
      pc = 0xc0542258  lr = 0xc02324bc (db_trace_self_wrapper+0x30)
      sp = 0xde6c89e0  fp = 0xde6c8af8
     r10 = 0xc3260600
 db_trace_self_wrapper() at db_trace_self_wrapper+0x30
      pc = 0xc02324bc  lr = 0xc039b358 (kdb_backtrace+0x38)
      sp = 0xde6c8b00  fp = 0xde6c8b08
      r4 = 0xc0689484  r5 = 0xc059401b
      r6 = 0xc05c7b91  r7 = 0xc05b16e0
 kdb_backtrace() at kdb_backtrace+0x38
      pc = 0xc039b358  lr = 0xc03b5c78 (witness_checkorder+0xe50)
      sp = 0xde6c8b10  fp = 0xde6c8b60
      r4 = 0xc05c7f53
 witness_checkorder() at witness_checkorder+0xe50
      pc = 0xc03b5c78  lr = 0xc036c1bc (_sx_xlock+0x7c)
      sp = 0xde6c8b68  fp = 0xde6c8b90
      r4 = 0x0000011c  r5 = 0xc05c7b8e
      r6 = 0xc3260610  r7 = 0xc3260600
      r8 = 0x00000000  r9 = 0xc31a3280
     r10 = 0x00000000
 _sx_xlock() at _sx_xlock+0x7c
      pc = 0xc036c1bc  lr = 0xc04fe408 (ufsdirhash_remove+0x38)
      sp = 0xde6c8b98  fp = 0xde6c8bb0
      r4 = 0xc3260600  r5 = 0xc31a024c
      r6 = 0xce430018  r7 = 0xc31a3280
      r8 = 0x00000018
 ufsdirhash_remove() at ufsdirhash_remove+0x38
      pc = 0xc04fe408  lr = 0xc0501260 (ufs_dirremove+0x14c)
      sp = 0xde6c8bb8  fp = 0xde6c8be8
      r4 = 0xc3048c00  r5 = 0xc31a024c
      r6 = 0xc31a0240  r7 = 0xce430018
      r8 = 0x00000000
 ufs_dirremove() at ufs_dirremove+0x14c
      pc = 0xc0501260  lr = 0xc05076e8 (ufs_remove+0x64)
      sp = 0xde6c8bf0  fp = 0xde6c8c18
      r4 = 0xc3041d80  r5 = 0x00000001
      r6 = 0xc31a0240  r7 = 0xc3048c00
      r8 = 0xc2e05000  r9 = 0xc3041d80
     r10 = 0x00000000
 ufs_remove() at ufs_remove+0x64
      pc = 0xc05076e8  lr = 0xc056bd5c (VOP_REMOVE_APV+0xd0)
      sp = 0xde6c8c20  fp = 0xde6c8c30
      r4 = 0xde6c8d78  r5 = 0xc066acd0
      r6 = 0x00000000  r7 = 0xffffff9c
      r8 = 0x00000000
 VOP_REMOVE_APV() at VOP_REMOVE_APV+0xd0
      pc = 0xc056bd5c  lr = 0xc04126dc (kern_unlinkat+0x1b4)
      sp = 0xde6c8c38  fp = 0xde6c8da8
      r4 = 0xde6c8cd8  r5 = 0xc2e05000
      r6 = 0x2081b358
 kern_unlinkat() at kern_unlinkat+0x1b4
      pc = 0xc04126dc  lr = 0xc04122fc (sys_unlink+0x24)
      sp = 0xde6c8db0  fp = 0xde6c8db8
      r4 = 0xc2e05000  r5 = 0xc2dfb640
      r6 = 0x00000000  r7 = 0x00000000
      r8 = 0x00000001  r9 = 0xde6c8e10
     r10 = 0x00012790
 sys_unlink() at sys_unlink+0x24
      pc = 0xc04122fc  lr = 0xc0557878 (swi_handler+0x284)
      sp = 0xde6c8dc0  fp = 0xde6c8e58
 swi_handler() at swi_handler+0x284
      pc = 0xc0557878  lr = 0xc0543d74 (swi_exit)
      sp = 0xde6c8e60  fp = 0xbffffce0
      r4 = 0x20803080  r5 = 0x0000a4ce
      r6 = 0x00000000  r7 = 0x0000000a
      r8 = 0x00000001  r9 = 0x00000000
 swi_exit() at swi_exit
      pc = 0xc0543d74  lr = 0xc0543d74 (swi_exit)
      sp = 0xde6c8e60  fp = 0xbffffce0
 Unable to unwind further


More information about the freebsd-arm mailing list