[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] load/startup time error handling

On 30 September 2016 at 17:13, Hannes Mehnert <hannes@xxxxxxxxxxx> wrote:
> Hey,
> There has been lots of threads about error reporting (both on this list
> and in several issues).  I want to focus in here only on _load time
> errors_ - which happen during startup (exactly when `connect` is
> called).  Please leave run time error handling out of this thread.
> So far, connect returns [ `Ok of 'a | `Error of 'b ] Lwt.t, and in the
> error case functoria emits a "fail (Failure <devicename>)".  This is
> clearly not very informative to potential users (an example being
> "Failure net11").
> I've iterated over the potential solutions with Mindy some days ago, and
> wanted to ask the broader developer community: is there any non-fatal
> initialisation error you can think of?  I cannot think of any (and
> couldn't find any in various libraries I looked into).  I also cannot
> think of actions you'd like to do when a failure occurs during startup
> (apart from fixing the code, recompiling, and restarting).
> Because, if not, we can simplify this rather radically by having connect
> return an 'a Lwt.t, and in case of an error (such as "permission denied"
> in mirage-net-unix) fail and never transit into running state of the
> unikernel.
> This would also, as a side effect, simplify run time errors since the
> type error would not need to be convoluted with the potential startup
> errors as it is the case now.
> If nobody disagrees (and comes up with non-contrived examples), I'm
> happy to massage code into this direction within the next few days.

Sounds good to me!

This also side-steps the previous argument about how to handle connect
functions that can never return errors (whether they should have a
fake error return for consistency with the other constructors).

talex5 (GitHub/Twitter)        http://roscidus.com/blog/
GPG: 5DD5 8D70 899C 454A 966D  6A51 7513 3C8F 94F6 E0CC
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.