[Opensim-users] Crash on collision

Klaus-E. Klingner klingner at silverday.de
Mon Jan 2 21:51:01 UTC 2012


Hallo,

thanks, Justin, for the tip. I tried it, but it did not help. Still 
getting the ODE-crash (in addition one of the regions doesn't load for 
some strange reason, with bullet it loads again :/):

terminate called after throwing an instance of 'std::bad_alloc'
   what():  std::bad_alloc
Stacktrace:

   at (wrapper managed-to-native) Ode.NET.d.Collide 
(intptr,intptr,int,Ode.NET.d/ContactGeom[],int) <0xffffffff>
   at OpenSim.Region.Physics.OdePlugin.OdeScene.near 
(intptr,intptr,intptr) <0x0054f>
   at (wrapper native-to-managed) 
OpenSim.Region.Physics.OdePlugin.OdeScene.near (intptr,intptr,intptr) 
<0xffffffff>
   at (wrapper managed-to-native) Ode.NET.d.SpaceCollide2 
(intptr,intptr,intptr,Ode.NET.d/NearCallback) <0xffffffff>
   at OpenSim.Region.Physics.OdePlugin.OdeScene.collision_optimized 
(single) <0x0052f>
   at OpenSim.Region.Physics.OdePlugin.OdeScene.Simulate (single) <0x00c1f>
   at OpenSim.Region.Framework.Scenes.SceneGraph.UpdatePhysics (double) 
<0x00046>
   at OpenSim.Region.Framework.Scenes.Scene.Update () <0x00627>
   at OpenSim.Region.Framework.Scenes.Scene.Heartbeat () <0x00047>
   at System.Threading.Thread.StartUnsafe () <0x00071>
   at (wrapper runtime-invoke) object.runtime_invoke_void__this__ 
(object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

         mono() [0x494e01]
         /lib64/libpthread.so.0(+0xf2d0) [0x7fcec95552d0]
         /lib64/libc.so.6(gsignal+0x35) [0x7fcec920bab5]
         /lib64/libc.so.6(abort+0x186) [0x7fcec920cfb6]
         
/usr/lib64/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x11d) 
[0x7fce8838ca9d]
         /usr/lib64/libstdc++.so.6(+0xbccb6) [0x7fce8838acb6]
         /usr/lib64/libstdc++.so.6(+0xbcce3) [0x7fce8838ace3]
         /usr/lib64/libstdc++.so.6(+0xbcdee) [0x7fce8838adee]
         /usr/lib64/libstdc++.so.6(_Znwm+0x7d) [0x7fce8838b1fd]
         /usr/lib64/libstdc++.so.6(_Znam+0x9) [0x7fce8838b2b9]
         
/opt/opensim/diva-r16915/bin/libode-x86_64.so(_ZN13dxHeightfield20allocateHeightBufferEmm+0x54) 
[0x7fce88619f74]
         
/opt/opensim/diva-r16915/bin/libode-x86_64.so(_ZN13dxHeightfield23dCollideHeightfieldZoneEiiiiP6dxGeomiiP12dContactGeomi+0x1b0) 
[0x7fce8861a690]
         
/opt/opensim/diva-r16915/bin/libode-x86_64.so(_Z19dCollideHeightfieldP6dxGeomS0_iP12dContactGeomi+0x23a) 
[0x7fce8861b81a]
         [0x41aeafc1]

Debug info from gdb:


=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
Regards,

Klaus

On 02.01.2012 21:50, Justin Clark-Casey wrote:
> Please see [1] and [2] for more information on these ODE crashes.
>
> Essentially, we've narrowed it down to a problem using the default ODE 
> collider with more than 1 region.  Stress tests with 20 bots 
> constantly teleporting around one region (or between two simulators in 
> a grid each running 1 region) do not trigger the ODE crash even after 
> many hours.
>
> The same stress test with 20 bots teleporting between two regions on 
> the same system, even where the regions are 10 map spaces apart, 
> always triggers the collider crash sooner or later.  Sometimes this 
> occurs almost immediately, sometimes only after an hour or so.
>
> Compiling ODE with the older collider (GIMPACT instead of OPCODE) 
> doesn't see this crash.
>
> My chief suspicion is that there's actually an ODE/collider memory 
> freeing bug.  I suspect that it's not very usual to run more than one 
> physics 'world' in a program (in OpenSimulator, each region runs its 
> own world).  It could also be a problem with OpenSim's P/Invoke 
> interface to ODE causing collision objects to be freed at the wrong 
> time, but I'm currently discounting that because we don't see the same 
> failure with two simulators each with a single region, and ODE scenes 
> at the OpenSim level are entirely separate, even though they aren't in 
> the ODE library itself.
>
> [1] contains a link in the comments to an ODE Linux 64 bit library I 
> compiled using the GIMPACT collider, if you're running that platform 
> and want to try it.  This will work on any recent version of OpenSim 
> (probably even 0.6.9).
>
> Using a linux distro version of ode probably won't fix this problem as 
> I expect they will have compiled it using OPCODE.  OpenSimulator only 
> every uses the ODE library bundled in its bin directory, unless you 
> start symlinking or similar.
>
> [1] http://opensimulator.org/mantis/view.php?id=3251
> [2] http://opensimulator.org/mantis/view.php?id=4553
>
> On 01/01/12 20:23, Klaus-E. Klingner wrote:
>> Hallo,
>>
>> Thanks for the tip. But I am not using any mesh in my sim :(
>>
>> Basically I am using the DIVA because of the wifi, but think I will 
>> switch once the new GUI is done, that was written
>> about here on the list. Do not have time to write one myself atm.
>>
>> Regards,
>>
>> Klaus
>>
>> On 01.01.2012 14:38, M.E. Verhagen wrote:
>>> Happy new year !
>>>
>>> One other thing what seems to trigger ode crashes seem to faulty 
>>> meshes, you can reconize these from opensim log lines
>>> like:
>>>
>>> 10:49:19 - [MESH]: no recognized physics mesh found in mesh asset
>>>
>>> 11:06:40 - [MESH]: asset data is zero length
>>>
>>> 06:40 - [MESH]: experimental mesh proxy generation for 
>>> defaultMesh/9af57c73-8ef4-42f1-9415-46e8491213cd
>>>
>>> Try to find these inworld and delete them. On my box the ode crashes 
>>> were less fequent after deleting those.
>>>
>>> The case with the libode is that it does not seem to be compatible 
>>> with some systems luckely most system already have
>>> a libode in their repo why not use that libode ?
>>> I am using a git version, not the diva. Could be that some recent 
>>> updates on the odescene also prevent some crashes.
>>>
>>> Op zaterdag 31 december 2011 schreef Klaus-E. Klingner 
>>> (klingner at silverday.de <mailto:klingner at silverday.de>) het
>>> volgende:
>>> > <sigh> I have to correct myself. The world just crashed again with 
>>> exactly the same error :(
>>> >
>>> > Regards,
>>> >
>>> > Klaus
>>> >
>>> > On 31.12.2011 18:19, Klaus-E. Klingner wrote:
>>> >
>>> > Hallo,
>>> >
>>> > thank you for the tip. However it did not fix the problem :/ I 
>>> still got the same crash. However I noticed that the
>>> ode-file in the physics folder of DIVA is different from the one in 
>>> the original OpenSim 0.72-download. I copied that
>>> over, started the world and that seems to have done the trick. Now I 
>>> just have to figure out a way to one of the sims
>>> that suddenly disappeared :/
>>> >
>>> > Regards and a happy and a happy new year,
>>> >
>>> > Klaus
>>> >
>>> >
>>> > Additional remark:
>>> >
>>> > To install the libode on SuSe you have to add the 
>>> OpenSuSE-Gamerepository with
>>> >
>>> > zypper addrepo 
>>> http://download.opensuse.org/repositories/games/openSUSE_11.4/ 
>>> opensuse-games-x86_64
>>> >
>>> > and then install libode using
>>> >
>>> > zypper install libode1
>>> >
>>> > On 31.12.2011 16:57, M.E. Verhagen wrote:
>>> >
>>> >
>>> >
>>> > I had the same sort of ode crashes, i installed ode on my system 
>>> with 'yum install ode' and deleted the libode.so
>>> from the opensim bin dir, after wich i simlinked the lib to make 
>>> sure opensim uses it. I also downloaded
>>> https://github.com/downloads/justincc/opensim/libode.so-x86_64.so, 
>>> and the crashes stopped.
>>> >
>>> >
>>> >
>>> > On suse this would something like these commands:
>>> >
>>> > yum install libode
>>> >
>>> > cd /opt/opensim/diva-r16915/bin
>>> >
>>> > wget 
>>> https://github.com/downloads/justincc/opensim/libode.so-x86_64.so
>>> >
>>> > rm libode.so
>>> >
>>> > rm libode-x86_64.so
>>> >
>>> > mv libode.so-x86_64.so <http://libode.so-x86_64.so> libode-x86_64.so
>>> >
>>> > ln /usr/lib64/libode.so.1.1.1 libode.so
>>> >
>>> >
>>> > I am not sure if there is a libode.so.1.1.1, it could named 
>>> differently, but just symlink it.
>>> > In theory the symlink is not needed, but it cannot hurt.
>>> >
>>> >
>>> > _______________________________________________
>>> > Opensim-users mailing list
>>> > Opensim-users at lists.berlios.de 
>>> <mailto:Opensim-users at lists.berlios.de>
>>> > https://lists.berlios.de/mailman/listinfo/opensim-users
>>> >
>>>
>>>
>>> _______________________________________________
>>> Opensim-users mailing list
>>> Opensim-users at lists.berlios.de
>>> https://lists.berlios.de/mailman/listinfo/opensim-users
>>
>>
>> _______________________________________________
>> Opensim-users mailing list
>> Opensim-users at lists.berlios.de
>> https://lists.berlios.de/mailman/listinfo/opensim-users
>
>



More information about the Opensim-users mailing list