{
  "slug": "io-timeout",
  "term": "I/O timeout",
  "aliases": [
    "I/O command timeout"
  ],
  "definition": "An I/O timeout is expiration of a layer's waiting limit for an input/output operation, which may initiate recovery without proving that the operation never executed.",
  "note": "Linux SCSI timeout handling can extend waiting or initiate abort and recovery. A timed-out command can still be active in lower layers. Distinguish application deadlines, command completion, cancellation and durable completion; inspect the actual driver and protocol contract.",
  "related": [
    "scsi",
    "multipath-io",
    "no-path-retry",
    "retry-deduplication"
  ],
  "citations": [
    {
      "id": "scsi-eh",
      "title": "Linux kernel documentation: SCSI EH, sections 1.2-1.4 and 2.1.",
      "url": "https://docs.kernel.org/scsi/scsi_eh.html",
      "accessed": "2026-10-11"
    },
    {
      "id": "hesela-timeouts",
      "title": "Storage timeouts: an expired timer is not a cancelled write",
      "url": "https://hesela.com/analyses/storage-timeouts-uncertain-completion/",
      "accessed": "2026-10-11"
    }
  ],
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-11"
}
