<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">There are, nevertheless, different
approaches to failure, which sort of correlate with approaches to
life in general too :-)<br>
- constructivist (if life gives you lemons, make a lemonade)<br>
- tantrum (complain loudly and as often as you can)<br>
- passive-aggressive (don't say anything when it happens, but make
a scene later)<br>
- ...<br>
<br>
Melanie's suggested approach is more along the constructivist
side. Tantrums are annoying.<br>
<br>
On 4/18/2014 3:12 PM, Oren Hurvitz wrote:<br>
</div>
<blockquote
cite="mid:CAHVj34+7pQHVyyzGv08uJJKB=Dg9YAMuPaDmEDhBYW9+CVJaQw@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>I feel that we've transcended from this mortal coil into
heavenly spheres. Such powerful realms require poetry to
comprehend, so I must quote from the poem "Eloisa to Abelard":<br>
<br>
"How happy is the blameless vestal's lot!<br>
The world forgetting, by the world forgot.<br>
Eternal sunshine of the spotless mind!<br>
Each pray'r accepted, and each wish resign'd;"<br>
<br>
</div>
To deny failure is to deny reality.<br>
<div><br>
<br>
</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Sat, Apr 19, 2014 at 12:43 AM,
Melanie <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:melanie@t-data.com" target="_blank">melanie@t-data.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
The point is no NOT let it fail. Asset storing never fails<br>
permanently if it's retried until successful. The upper
layers (all<br>
the way to the viewer) are not equipped to handle an asset
storing<br>
failure. Propagating the exception would just annoy the user
with<br>
needless messages. Since asset servers can be "gone" for a
while,<br>
for instance when there is a net failure, there is no way to
give it<br>
a timeout, either. A sim in OSGrid, if it gets disconnected,
could<br>
run on locally cached assets and manage to reconnect after
20<br>
minutes and simply upload all new assets since then.
Screaming<br>
"failure" at the user is pointless in such a scenario.<br>
<span class="HOEnZb"><font color="#888888"><br>
- Melanie<br>
</font></span>
<div class="HOEnZb">
<div class="h5"><br>
On 18/04/2014 22:56, Oren Hurvitz wrote:<br>
> There seems to be a misunderstanding here. We're
talking about a case where<br>
> the operation has FAILED. The only question is
whether to pretend that it<br>
> succeeded, so that the user will find out that it
failed later, to their<br>
> surprise, or to report failure immediately.
Obviously it's better to report<br>
> failure immediately.<br>
><br>
><br>
><br>
> On Fri, Apr 18, 2014 at 10:40 PM, Melanie <<a
moz-do-not-send="true"
href="mailto:melanie@t-data.com">melanie@t-data.com</a>>
wrote:<br>
><br>
>> Name one valid use case where current OpenSim
is able to handle such<br>
>> an exception gracefully, e.g. without
user-visible error.<br>
>><br>
>> - Melanie<br>
>><br>
>> On 18/04/2014 13:28, Mike Chase wrote:<br>
>> > I'm inclined to agree with Oren. Asset
Writes could fail for a variety<br>
>> of<br>
>> > reasons and there are lots of use cases
where you need to know the asset<br>
>> is<br>
>> > on disk. I think propagating exceptions
is the more sound approach IMO.<br>
>> ><br>
>> > I also agree re: the custom comms vs a
persistent queue mechanism but I<br>
>> > don't want to derail this topic. That
can wait for another day.<br>
>> ><br>
>> > Mike<br>
>> ><br>
>> > -----Original Message-----<br>
>> > From: <a moz-do-not-send="true"
href="mailto:opensim-dev-bounces@lists.berlios.de">opensim-dev-bounces@lists.berlios.de</a><br>
>> > [mailto:<a moz-do-not-send="true"
href="mailto:opensim-dev-bounces@lists.berlios.de">opensim-dev-bounces@lists.berlios.de</a>]
On Behalf Of Oren Hurvitz<br>
>> > Sent: Friday, April 18, 2014 7:06 AM<br>
>> > To: <a moz-do-not-send="true"
href="mailto:opensim-dev@lists.berlios.de">opensim-dev@lists.berlios.de</a><br>
>> > Subject: Re: [Opensim-dev] Error detection
when storing an asset<br>
>> ><br>
>> > Regarding the hiding of exceptions: to be
clear, I was already bitten by<br>
>> > this behavior; that's why I started to
investigate how assets are<br>
>> stored. I<br>
>> > have therefore already changed Kitely's
version of OpenSim to propagate<br>
>> > exceptions, and the question is whether
other people would like me to<br>
>> > contribute this change. If anyone has an
opinion then please reply.<br>
>> ><br>
>> > Regarding your suggestion to save assets
to local disk and retry them<br>
>> later:<br>
>> > this is basically what a persistent
message queue does. If you're going<br>
>> to<br>
>> > go that route then it would be best to add
a real message queue rather<br>
>> than<br>
>> > a home-grown one. I would LOVE it if
OpenSim used a message queue for<br>
>> > communications, as it would allow ripping
out thousands of lines of<br>
>> homemade<br>
>> > communications code, and would be faster
and more reliable to boot. But<br>
>> > that's a bigger issue and I'll put it
aside for now.<br>
>> ><br>
>> > In this particular case, using a
persistent message queue isn't be the<br>
>> right<br>
>> > solution: the right solution is to report
failures immediately. Otherwise<br>
>> > you'd get weird behavior such as a user
who thinks they've successfully<br>
>> worn<br>
>> > a piece of clothing, but when they
teleport to another region it<br>
>> disappears<br>
>> > because the other region can't load the
asset (because it was never<br>
>> saved).<br>
>> > To prevent these problems you need to
fail-fast, and tell the user<br>
>> > immediately when a problem happens. This
doesn't mean to crash the sim; I<br>
>> > strongly doubt any asset failure would
cause that, it would just fail the<br>
>> > specific packet or message that is
currently being handled, as it should.<br>
>> ><br>
>> ><br>
>> ><br>
>> > --<br>
>> > View this message in context:<br>
>> ><br>
>> <a moz-do-not-send="true"
href="http://opensim-dev.2196679.n2.nabble.com/Error-detection-when-storing-an-ass"
target="_blank">http://opensim-dev.2196679.n2.nabble.com/Error-detection-when-storing-an-ass</a><br>
>> > et-tp7579223p7579225.html<br>
>> > Sent from the opensim-dev mailing list
archive at Nabble.com.<br>
>> >
_______________________________________________<br>
>> > Opensim-dev mailing list<br>
>> > <a moz-do-not-send="true"
href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
>> > <a moz-do-not-send="true"
href="https://lists.berlios.de/mailman/listinfo/opensim-dev"
target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
>> ><br>
>> >
_______________________________________________<br>
>> > Opensim-dev mailing list<br>
>> > <a moz-do-not-send="true"
href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
>> > <a moz-do-not-send="true"
href="https://lists.berlios.de/mailman/listinfo/opensim-dev"
target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
>> ><br>
>> ><br>
>> _______________________________________________<br>
>> Opensim-dev mailing list<br>
>> <a moz-do-not-send="true"
href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
>> <a moz-do-not-send="true"
href="https://lists.berlios.de/mailman/listinfo/opensim-dev"
target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
>><br>
><br>
><br>
><br>
><br>
><br>
> _______________________________________________<br>
> Opensim-dev mailing list<br>
> <a moz-do-not-send="true"
href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
> <a moz-do-not-send="true"
href="https://lists.berlios.de/mailman/listinfo/opensim-dev"
target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
_______________________________________________<br>
Opensim-dev mailing list<br>
<a moz-do-not-send="true"
href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
<a moz-do-not-send="true"
href="https://lists.berlios.de/mailman/listinfo/opensim-dev"
target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<br>
-- <br>
<div dir="ltr">Oren Hurvitz<br>
VP R&D<br>
Kitely Ltd.<br>
<br>
Email: <a moz-do-not-send="true"
href="mailto:orenh@kitely.com" target="_blank">orenh@kitely.com</a></div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Opensim-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a>
<a class="moz-txt-link-freetext" href="https://lists.berlios.de/mailman/listinfo/opensim-dev">https://lists.berlios.de/mailman/listinfo/opensim-dev</a></pre>
</blockquote>
<br>
</body>
</html>