In most cases there is no viable failure path that does not detrimentally affect user experience. The viewer is unable to handle asset upload failure gracefully and transparently to the user.
As far as messge queues go, I have in-depth knowledge of MQ Series, IBM's message queue service. I agree that such a framework would be beneficial to many communications tasks in OpenSim, but that is, as you say, a matter for another day. The asset subsystem, however, should present an error-free interface to the upper layers, as there is much code that depends on assets never failing and provides no usable error path. Our retry solution combines a good user experience without user visible error messages with a sound subsystem that can tolerate transient erros like asset server failovers, net glitches or temporary overload conditions. Asset writing, btw, is not related to wearing clothing as baked textures do not go to the asset server, but to the XBakes server. In standalones, they are not persisted but are transferred from one region to another. Your obeservation about message queueing is a good one, I may spend a few cycles to see if an appropriately licensed implementation in C# exists. - Melanie On 18 Apr 2014, at 13:05, Oren Hurvitz <[email protected]> wrote: Regarding the hiding of exceptions: to be clear, I was already bitten by this behavior; that's why I started to investigate how assets are stored. I have therefore already changed Kitely's version of OpenSim to propagate exceptions, and the question is whether other people would like me to contribute this change. If anyone has an opinion then please reply. Regarding your suggestion to save assets to local disk and retry them later: this is basically what a persistent message queue does. If you're going to go that route then it would be best to add a real message queue rather than a home-grown one. I would LOVE it if OpenSim used a message queue for communications, as it would allow ripping out thousands of lines of homemade communications code, and would be faster and more reliable to boot. But that's a bigger issue and I'll put it aside for now. In this particular case, using a persistent message queue isn't be the right solution: the right solution is to report failures immediately. Otherwise you'd get weird behavior such as a user who thinks they've successfully worn a piece of clothing, but when they teleport to another region it disappears because the other region can't load the asset (because it was never saved). To prevent these problems you need to fail-fast, and tell the user immediately when a problem happens. This doesn't mean to crash the sim; I strongly doubt any asset failure would cause that, it would just fail the specific packet or message that is currently being handled, as it should. -- View this message in context: http://opensim-dev.2196679.n2.nabble.com/Error-detection-when-storing-an-asset-tp7579223p7579225.html Sent from the opensim-dev mailing list archive at Nabble.com. _______________________________________________ Opensim-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/opensim-dev _______________________________________________ Opensim-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/opensim-dev
