DF-4349 / fix_run.log
login: df43xx: rig loaded (bounce zone pre-created; set kern.df43xx.* from nm, then kern.df43xx.go=N) df43xx: softc=0xfffff8004f271be0 regpage=0xfffff8004f0a2a30 ccb_infos=0xfffff80089796e00 (sz 512) nactive=0 nallocated=0 groom=0 sz(adv_ccb_info)=32 sz(adv_softc)=240 off(csio.resid)=276 off(ccb_info.ccb)=16 df43xx[0]: read_lram_16(0x300)=0xabcd (want abcd) df43xx[0]: read_lram_8(0x301)=0xab (want ab) df43xx[0]: after write_lram_16(0x304,0x5a5a): lram16(0x304)=0x5a5a (want 5a5a) df43xx[0]: after write_lram_8(0x305,0x11): lram16(0x304)=0x115a (want 115a: read-modify-write byte lane) df43xx[0]: copy_lram_doneq sgcnt=0 ccb_index=0x0000002a (want 0000002a) q_status=80 (want 80) q_no=6 (want 6) cntl=00 sense_len=00 done_stat=01 (want 01) host_stat=00 scsi_stat=00 remain=0x13579bdf (want 13579bdf) df43xx[0]: EMULATOR SELF-TEST PASS - production accessors read the crafted LRAM exactly df43xx: softc=0xfffff80118697310 regpage=0xfffff8008d5e1250 ccb_infos=0xfffff801179a0400 (sz 512) nactive=1 nallocated=1 groom=0 sz(adv_ccb_info)=32 sz(adv_softc)=240 off(csio.resid)=276 off(ccb_info.ccb)=16 df43xx[1]: dispatching production adv_intr: legit done entry q6 ccb_index=0 (ACTIVE) fwd=0xff df43xx[1]: wps on, dispatching adv_intr df43xx[1]: adv_intr RETURNED (guest alive) df43xx[1]: post-state: slot0.state=0x00 (ACCB_FREE=00) free_ccb_infos.slh_first=0xfffff801179a0400 (==&slot0: YES) ccb_cinfo_ptr=0 (nulled: YES) ccb_h.status=0x00000001 (CAM_REQ_CMP=0x01) csio.resid=0x41424344 (want 41424344) df43xx[1]: pending_ccbs: df43xx[1]: LRAM: entry6.status=0x80 (marked-free write-back, want 80) doneq_tail=0x0006 (want 0006) df43xx: softc=0xfffff80118697310 regpage=0xfffff8008d5e1250 ccb_infos=0xfffff801179a0400 (sz 512) nactive=1 nallocated=1 groom=0 sz(adv_ccb_info)=32 sz(adv_softc)=240 off(csio.resid)=276 off(ccb_info.ccb)=16 df43xx[2]: DF-4349 facet A: done entries q6,q7 BOTH name ccb_index=0; first completes the ACTIVE ccb, second re-completes the now-ACCB_FREE slot through production adv_run_doneq/adv_done - expect: 1 clean completion, then stale LIST_REMOVE (:1127) + NULL-cinfo adv_free_ccb_info (:1261) page fault at 0x0 df43xx[2]: wps on, dispatching adv_intr adv9: done queue ccb_index 0 not active, dropping completion df43xx[2]: adv_intr RETURNED - no double completion (patched kernel?) df43xx: softc=0xfffff8004f271be0 regpage=0xfffff8004f0a2a30 ccb_infos=0xfffff80089796e00 (sz 512) nactive=1 nallocated=1 groom=1 sz(adv_ccb_info)=32 sz(adv_softc)=240 off(csio.resid)=276 off(ccb_info.ccb)=16 df43xx: unallocated slot 10 ccb = 0x000041df41df41df (poison present: YES) - expect resid write at 0x000041df41df42f3 df43xx[3]: DF-4349 facet B: done entry q6 names ccb_index=10 (in bounds, never allocated, ccb=poison) - expect ccb->csio.resid write (advansys.c:1108) to fault at 0x000041df41df42f3 df43xx[3]: wps on, dispatching adv_intr adv9: done queue ccb_index 10 not active, dropping completion df43xx[3]: adv_intr RETURNED - no wild write (patched kernel?) df43xx: softc=0xfffff8004f271be0 regpage=0xfffff8004f0a2a30 ccb_infos=0xfffff80089796e00 (sz 512) nactive=2 nallocated=2 groom=0 sz(adv_ccb_info)=32 sz(adv_softc)=240 off(csio.resid)=276 off(ccb_info.ccb)=16 df43xx[4]: DF-4350: cyclic FWD chain 6->7->6 (slots 0,1 ACTIVE). Shipped kernel: revisit double-completes slot 0 -> panic. DF-4349-fixed kernel: entries dropped, walk NEVER terminates (livelock). Both-fixed: budget break. adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue ccb_index 0 not active, dropping completion adv9: done queue ccb_index 1 not active, dropping completion adv9: done queue walk exceeded 276 entries, stopping (corrupt LRAM?) df43xx[4]: adv_intr RETURNED after 4273 data-port services (walk terminated - budget fix present?)