From 05d12810ed20a2d1271410b953e1f2b5a8595b71 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 21 Jun 2017 13:10:19 +0300 Subject: [PATCH] fs-randomfail: Set errno=EIO when random failure is triggered Previously the errno wasn't set at all. It was especially bad if it happened to be EAGAIN, because that potentially caused hangs. --- src/lib-fs/fs-randomfail.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib-fs/fs-randomfail.c b/src/lib-fs/fs-randomfail.c index 862783eddd..563e8603d5 100644 --- a/src/lib-fs/fs-randomfail.c +++ b/src/lib-fs/fs-randomfail.c @@ -238,6 +238,7 @@ static bool fs_random_fail(struct fs *_fs, int divider, enum fs_op op) if (fs->op_probability[op] == 0) return FALSE; if ((unsigned int)(rand() % (100*divider)) <= fs->op_probability[op]) { + errno = EIO; fs_set_error(_fs, RANDOMFAIL_ERROR); return TRUE; }