struct vsctl_command *c;
int64_t next_cfg = 0;
char *comment;
+ char *error;
txn = the_idl_txn = ovsdb_idl_txn_create(idl);
if (dry_run) {
vsctl_context_done(&ctx, c);
}
}
+ error = xstrdup(ovsdb_idl_txn_get_error(txn));
ovsdb_idl_txn_destroy(txn);
the_idl_txn = NULL;
for (c = commands; c < &commands[n_commands]; c++) {
ds_destroy(&c->output);
}
+ free(error);
return;
case TXN_ERROR:
- vsctl_fatal("transaction error");
+ vsctl_fatal("transaction error: %s", error);
default:
NOT_REACHED();
}
+ free(error);
for (c = commands; c < &commands[n_commands]; c++) {
struct ds *ds = &c->output;