Skip to content

Commit

Permalink
Delay injection can cause indefinitely hung zios
Browse files Browse the repository at this point in the history
If we hit the (NSEC_TO_TICK(diff) == 0) condition in
zio_delay_interrupt, zio_interrupt is never called and the
zio does not progress.

Signed-off-by: sara hartse <[email protected]>
  • Loading branch information
sara hartse committed Feb 14, 2019
1 parent 65282ee commit 7fe33b5
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions module/zfs/zio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1833,6 +1833,7 @@ zio_delay_interrupt(zio_t *zio)
if (NSEC_TO_TICK(diff) == 0) {
/* Our delay is less than a jiffy - just spin */
zfs_sleep_until(zio->io_target_timestamp);
zio_interrupt(zio);
} else {
/*
* Use taskq_dispatch_delay() in the place of
Expand Down

0 comments on commit 7fe33b5

Please sign in to comment.