[Fedora-livecd-list] [patch 00/20] Fix error handling and misc. cleanups
David Zeuthen
davidz at redhat.com
Mon Apr 2 04:51:12 UTC 2007
Hey Mark,
Sorry for the lag - been busy trying to get a new HAL release out,
On Tue, 2007-03-27 at 15:14 +0100, Mark McLoughlin wrote:
> Hi,
> Apologies for spamming the list with 20 mails, but hopefully
> it'll make it easier to review the patches.
Yeah, it did make it easier although I'm always slighty scared when
seeing a bunch of patches ;-) - would you happen to have a git repo
handy that I can pull from?
> The background to this is that I was suprised to see that
> livecd-creator had rather poor error handling (e.g. not unmounting
> stuff after certain errors, obscure error messages etc.) since
> I thought that was the main reason to re-write pilgrim in python :-)
>
> It's understandable, though. Because Python has exceptions,
> it's easy to be fooled into thinking you have error conditions
> under control, but in reality, exceptions probably makes it easier
> to screw up error handling.
>
> So, here's an attempt to fix it based on the following
> guidelines:
>
> - don't intercept an exception if you can't do something useful
> with it. Corollary: intercept an exception if you can do something
> useful with it.
>
> - anticipate user errors or user-fixable system errors in a user
> friendly manner. Corollary: allow other types of exceptions
> to be passed to the toplevel.
>
> - i.e. there are 3 types of errors/exceptions, and 3 different
> strategies for handling them:
>
> 1) errors which we can handle ourselves without ever telling
> the user - e.g. a directory which we wish to create already
> exists
>
> 2) user errors, or predictable system errors, which we
> should do our best to help the user out with - e.g.
> a busted kickstart file or running out of loop devices
>
> 3) pathological system errors or programmer errors, all
> of which can be just allowed to propogate up to the
> toplevel where an ugly traceback will be printed -
> e.g creating a dir under the temporary build dir
> fails or an unmount fails because we didn't close
> the rpmdb
>
> - whatever the error, we should do our best to clean up files,
> directories, mounts, etc. which we created
>
> - bear in mind that e.g. Ctrl-C can happen at any time
>
> Also, I've cleanup up various parts of the code as I
> worked on the error handling. Those patches come first.
This is really good stuff, thanks a bunch for working on it. I just read
through all the patches and from a cursory look they look good to me;
tomorrow I'm going to try and actually apply them to the code [1].
I'd also like for Jeremy to sign them off as he was the last one before
you to fix up my, uh, rough bash->python conversion of the pilgrim shell
script plus he's the main guy working on this stuff these days.
Thanks again, Cheers,
David
[1] : As a practical thing would you happen to have a git repo stashed
somewhere that I can pull form?
More information about the livecd
mailing list