[Tarantool-patches] [PATCH v8 5/9] qsync: direct write of CONFIRM/ROLLBACK into a journal
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Mon Aug 17 23:49:19 MSK 2020
> diff --git a/src/box/txn_limbo.c b/src/box/txn_limbo.c
> index ed8c10419..447630d23 100644
> --- a/src/box/txn_limbo.c
> +++ b/src/box/txn_limbo.c
> @@ -272,6 +273,17 @@ txn_limbo_wait_complete(struct txn_limbo *limbo, struct txn_limbo_entry *entry)
> @@ -284,46 +296,34 @@ txn_limbo_write_synchro(struct txn_limbo *limbo, uint32_t type, int64_t lsn)
> -rollback:
> - /*
> - * XXX: the stub is supposed to be removed once it is defined what to do
> - * when a synchro request WAL write fails. One of the possible
> - * solutions: log the error, keep the limbo queue as is and probably put
> - * in rollback mode. Then provide a hook to call manually when WAL
> - * problems are fixed. Or retry automatically with some period.
> - */
> - panic("Could not write a synchro request to WAL: lsn = %lld, type = "
> - "%s\n", lsn, iproto_type_name(type));
> + if (journal_write(entry) != 0 || entry->res < 0) {
> + diag_set(ClientError, ER_WAL_IO);
> + diag_log();
> + /*
> + * XXX: the stub is supposed to be removed once it is defined what to do
> + * when a synchro request WAL write fails. One of the possible
> + * solutions: log the error, keep the limbo queue as is and probably put
> + * in rollback mode. Then provide a hook to call manually when WAL
> + * problems are fixed. Or retry automatically with some period.
Still out of 80 symbols.
> + */
> + panic("Could not write a synchro request to WAL: lsn = %lld, type = "
> + "%s\n", lsn, type == IPROTO_CONFIRM ? "CONFIRM" : "ROLLBACK");
> + }
> }
>
> /**
>
More information about the Tarantool-patches
mailing list