Description of problem: Diskdump doesn't check a SCSI command return value. Please see send_command in drivers/scsi/scsi_dump.c. spin_lock(host->host_lock); host->hostt->queuecommand(scmd, rw_intr); <<< here >>> spin_unlock(host->host_lock); while (scmd->done != NULL) { host->hostt->dump_poll(scmd->device); udelay(100); diskdump_update(); } Diskdump waits for completion of the command invoked previously regardless of a return value of queuecommand. SCSI driver might return busy because of a temporary failure of SCSI driver. If SCSI driver returns busy, diskdump waits for completion of the command permanently. So diskdump will hang up. I think diskdump should check a return value of queuecommand. When SCSI drive is busy, a command should be invoked again. Version-Release number : kernel-2.6.9-5.0.3.EL How reproducible: sometimes Steps to Reproduce: This problem happens because of external factor. For example, temporary trouble of device. Actual results: dump fail Expected results: dump succeed Additional info: none
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2005-514.html