[sldev] LLCircuit removing the current sim without warning.

Laurent Laborde kerdezixe at gmail.com
Sun Mar 25 21:07:59 PDT 2007


Hi !

i tried to write a bug report about it, but i can't find a way to
explain it correctly. (English not being my primary langage don't
help).

Here is the problem :
Running a lot of stupid test and profiling may lead to some weird
behaviour. This time, i managed to freeze my client and when the
client unfreezed i noticed a lot of message in the debug about not
being able to send Agent update to the simulator.

After scrolling up by a few hundreds of lines, i noticed that the
client removed a Circuit and it appeared that the removed circuit was
the sim i was in. It removed it because of a timeout (remember, my
client frozen, including the network processing then)

Basically, i was sitting in a disconnected sim without being aware of it.
Sound familiar, huh ? We have exactly the same problem when a sim
crashed or when we're suddenly disconnected from internet (blame the
ISP ;) )

I checked the sourcecode and *i think* that the LLCircuit remove a
timeouted sim without checking if it's the current sim or not.

I think that the client should check what sim it's removing, and if
it's the current sim warn the user with a suggestion to quit the
client and relog.

Can someone check the code and confirm :
- LLCircuit don't check if the removed (timeout) sim is the current sim or not.
- LLCircuit don't send a message to the user if the removed sim was
the current sim.

you can find some usefull code to start in llCircuit.cpp : BOOL
LLCircuitData::checkCircuitTimeout()

-- 
kerunix Flan


More information about the SLDev mailing list