[Libguestfs] [libnbd PATCH v2 1/5] python: tests: Fix error handling
Eric Blake
eblake at redhat.com
Thu Feb 3 23:12:53 UTC 2022
On Fri, Feb 04, 2022 at 12:49:27AM +0200, Nir Soffer wrote:
> On Thu, Feb 3, 2022 at 10:26 PM Eric Blake <eblake at redhat.com> wrote:
> >
> > Like a lot of the C examples, the aio copy test ignores read and write
> > errors in the completion callback, which can cause silent data
> > corruption. The failure in the test is not critical, but this is a bad
> > example that may be copied by developers to a real application.
> >
> > @@ -36,6 +36,7 @@ def asynch_copy(src, dst):
> > # This callback is called when any pread from the source
> > # has completed.
> > def read_completed(buf, offset, error):
> > + assert not error
>
> This works for the test, since the test is not compiled
> to pyc file, which removes the asserts (like C -DNODBUG)
> by default when building rpms.
>
> If someone will copy this to a real application they will have no
> error checking.
>
> I would use:
>
> if error != 0:
> raise RuntimeError(f"read: {os.strerror(error)}")
>
> Which also teaches the reader that error is an errno value.
Will do (I trust your python expertise more than my own ;)
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
More information about the Libguestfs
mailing list