Wednesday, June 4, 2008

Freezing at login : SOLVED

Or so I hope. Thank you all of you who helped me with logs, observations, objects, and most of all patience. I want to particularly thank Boy Lane and Hollie Wood for their precious help without which I would not have found the culprit.

Here is the new version :

Executable for windows :
Sources :

(I have sent them to Orchid but if you're in a hurry and can't wait for her to upload the new viewer you have a link at least).

If you're interested in the technical details read on :

The bug was "simply" due to the fact that the viewer renames shared objects as soon as they are worn, only if their name does not contain any information about the target attachment point. So far so good, it works like a charm. But when logging on the viewer needs to download all the items contained into the shared folder ("#RLV" for the moment), otherwise you would have to open every sub-folder by hand, one by one, after each login (if you didn't do so the scripts would not even be able to force you to attach them, since for your viewer they don't exist until download from the server, and it's done by opening the parent folder manually).

However, some items are "not complete" when they are downloaded, I frankly don't know what that means (likely that they are not fully downloaded but the name and UUID are known by the viewer, something like that) but attaching and renaming an incomplete object leads the viewer into an infinite loop. The actual name of the method is LLAppViewer::forceErrorInifiniteLoop(), for those who can look at the original code, yeah I can't believe it even exists either.

So there's your freeze on login. I have added a check or two and now it doesn't seem to crash or to freeze anymore.

Have fun !