If triggers are used and are fatal to the fio backend (killing power,
etc), then we don't have time to process the stop/quit commands. We
expect the client to go away, but the backend can't let us know.
If the last thing we saw was a trigger command, don't exit in error
if the client times out and goes away.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
dprint(FD_NET, "client: got cmd op %s from %s (pdu=%u)\n",
fio_server_op(cmd->opcode), client->hostname, cmd->pdu_len);
+ client->last_cmd = cmd->opcode;
+
switch (cmd->opcode) {
case FIO_NET_CMD_QUIT:
if (ops->quit)
else
log_err("fio: client %s timed out\n", client->hostname);
- client->error = ETIMEDOUT;
+ if (client->last_cmd != FIO_NET_CMD_VTRIGGER)
+ client->error = ETIMEDOUT;
+ else
+ log_info("fio: ignoring timeout due to vtrigger\n");
remove_client(client);
ret = 1;
}
int port;
int fd;
unsigned int refs;
+ unsigned int last_cmd;
char *name;