[PATCH 2 of 2 STABLE] transaction: ignore I/O errors during abort logging (issue5658)

Yuya Nishihara yuya at tcha.org
Tue Aug 15 04:47:26 EDT 2017


On Mon, 14 Aug 2017 17:22:53 -0700, Gregory Szorc wrote:
> On Mon, Aug 14, 2017 at 4:40 PM, Jun Wu <quark at fb.com> wrote:
> Yes, wrapping report() is better than the current patch. But it still isn't
> sufficient because various callbacks can call e.g. ui.write() and run into
> the same trouble.

[...]

> > > The proper solution is to make some stdio I/O errors non-fatal
> > > during transaction abort. Individual call sites shouldn't have
> > > to know to catch and ignore errors during logging, IMO. This was
> > > the previous behavior before e9646ff34d55 and 1bfb9a63b98e.
> > > I'm not sure how to implement this in a manner appropriate for
> > > stable because the abort method and transaction object don't have
> > > an explicit handle on the ui instance. We could potentially
> > > revert e9646ff34d55 and 1bfb9a63b98e. But I'm not sure of the
> > > consequences.

I think it's okay to revert these changesets.

Perhaps this problem isn't just for the transaction. Maybe we can take
IOError of ui.status/warn/note/debug/write_err as non-fatal because they
won't carry the data requested by user.


More information about the Mercurial-devel mailing list