ODE INTERNAL ERROR 1: assertion "aabbBound >= dMinIntExact && aabbBound < dMaxIntExact" failed in collide() [/wrkdirs/usr/ports/devel/ode/work/ode-0.16.2/ode/src/collision_space.cpp:460]

Issue #79 invalid
yurivict created an issue

The error from the subject crashed the 'crashtest' application.

ODE-0.16.2

FreeBSD 13.1 STABLE

Comments (9)

  1. Oleh Derevenko

    Please provide
    1. Configuration and/or compilation options you used to build the library.

    2. Call stack from the crash or/and the core dump from your application with a debug build of the ODE (with -O0 to disable optiomizations and -g to include debug symbols).

  2. yurivict reporter

    cmake arguments:

    -DODE_WITH_DEMOS:BOOL=false -DODE_WITH_GIMPACT:BOOL=false -DODE_WITH_LIBCCD:BOOL=true -DODE_WITH_LIBCCD_SYSTEM:BOOL=true -DODE_WITH_OU:BOOL=false -DCMAKE_C_COMPILER:STRING="cc" -DCMAKE_CXX_COMPILER:STRING="c++" -DCMAKE_C_FLAGS:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing " -DCMAKE_C_FLAGS_DEBUG:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing " -DCMAKE_C_FLAGS_RELEASE:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -DNDEBUG" -DCMAKE_CXX_FLAGS:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -Wno-c++11-narrowing -I/disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/libccd/src/custom " -DCMAKE_CXX_FLAGS_DEBUG:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -Wno-c++11-narrowing -I/disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/libccd/src/custom " -DCMAKE_CXX_FLAGS_RELEASE:STRING="-O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -Wno-c++11-narrowing -I/disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/libccd/src/custom -DNDEBUG" -DCMAKE_EXE_LINKER_FLAGS:STRING=" -fstack-protector-strong " -DCMAKE_MODULE_LINKER_FLAGS:STRING=" -fstack-protector-strong " -DCMAKE_SHARED_LINKER_FLAGS:STRING=" -fstack-protector-strong " -DCMAKE_INSTALL_PREFIX:PATH="/usr/local" -DCMAKE_BUILD_TYPE:STRING="Release" -DTHREADS_HAVE_PTHREAD_ARG:BOOL=YES -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=YES -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DFETCHCONTENT_FULLY_DISCONNECTED:BOOL=ON -DODE_WITH_TESTS:BOOL=OFF -GNinja

  3. yurivict reporter

    While testing I found another error:

    ODE INTERNAL ERROR 1: assertion "!bSafeNormalize4Fault" failed in dxNormalize4() [/disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/odemath.h:53]                           [7/29]
    
    Program received signal SIGABRT, Aborted.
    Sent by thr_kill() from pid 55124 and user 1001.
    thr_kill () at thr_kill.S:4
    4       RSYSCALL(thr_kill)
    (gdb) bt
    #0  thr_kill () at thr_kill.S:4
    #1  0x0000000800fa5964 in __raise (s=s@entry=6) at /disk-samsung/freebsd-src/lib/libc/gen/raise.c:52
    #2  0x0000000801056619 in abort () at /disk-samsung/freebsd-src/lib/libc/stdlib/abort.c:67
    #3  0x000000080038767a in dDebug (num=1, msg=0x80032a08f "assertion \"!bSafeNormalize4Fault\" failed in %s() [%s:%u]")
        at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/error.cpp:105
    #4  0x00000008003bf9ad in dxNormalize4 (a=0x80378e1b8) at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/odemath.h:53
    #5  0x00000008003bf945 in dNormalize4 (a=0x80378e1b8) at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/odemath.cpp:54
    #6  0x00000008003dd807 in dxStepBody (b=0x80378e000, h=0.004999999888241291) at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/util.cpp:659
    #7  0x00000008003c6204 in dxQuickStepIsland_Stage6b (stage6CallContext=0x804d8b780) at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/quickstep.cpp:3235
    #8  0x00000008003c4e6b in dxQuickStepIsland_Stage5 (stage5CallContext=0x0) at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/quickstep.cpp:3069
    #9  0x00000008003c39c1 in dxQuickStepIsland_Stage3 (stage3CallContext=0x0) at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/quickstep.cpp:1782
    #10 0x00000008003c1ba7 in dxQuickStepIsland_Stage1 (stage1CallContext=0x0) at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/quickstep.cpp:1395
    #11 0x00000008003c0d4e in dxQuickStepIsland (callContext=0x804d71c10) at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/quickstep.cpp:1093
    #12 0x00000008003de382 in dxIslandsProcessingCallContext::ThreadedProcessIslandStepper (this=0x7fffffffe390, stepperCallContext=0x804d71bf0)
        at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/util.cpp:1065
    #13 0x00000008003de34c in dxIslandsProcessingCallContext::ThreadedProcessIslandStepper_Callback (callContext=0x804d71bf0, callInstanceIndex=0, callThisReleasee=0x8040e1090)
        at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/util.cpp:1059
    #14 0x00000008003d793e in dxThreadedJobInfo::InvokeCallFunction (this=0x8040e1090) at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/threading_impl_templates.h:174
    #15 0x00000008003d77ee in dxtemplateJobListSelfHandler<dxSelfWakeup, dxtemplateJobListContainer<dxFakeLull, dxFakeMutex, dxFakeAtomicsProvider> >::PerformJobProcessingSession (
        this=0x803c5ded8) at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/threading_impl_templates.h:1087
    #16 0x00000008003d7775 in dxtemplateJobListSelfHandler<dxSelfWakeup, dxtemplateJobListContainer<dxFakeLull, dxFakeMutex, dxFakeAtomicsProvider> >::PerformJobProcessingUntilExhaustion (
        this=0x803c5ded8) at /disk-samsung/freebsd-ports/devel/ode/work/ode-0.16.2/ode/src/threading_impl_templates.h:1068
    #17 0x00000008003d7725 in dxtemplateJobListSelfHandler<dxSelfWakeup, dxtemplateJobListContainer<dxFakeLull, dxFakeMutex, dxFakeAtomicsProvider> >::PrepareForWaitingAJobCompletion (
    

  4. yurivict reporter

    So far I wasn’t able to reproduce the original error in the debugger.

    I also think that build with LIBCCD might trigger errors because I wasn’t able to reproduce any errors w/out it.

  5. Oleh Derevenko

    Vector normalization error means you have a zero length vector. This is most likely a defect of geometry you create in your scene. Inspect the body in debugger and try to find out what is wrong with it and why you are getting a zero vector there.

  6. Oleh Derevenko

    Also, a good idea is to enable floating point exceptions for the thread that is calling ODE computations. This may help you to see math errors at earlier stages that otherwise might be masked and result into zeroes, infinities or NaNs you may not be finding.

  7. Oleh Derevenko

    Sorry, I have no time to debug other projects' data. Typically data errors are caused by invalid geometries (like zero dimension), very big forces combined with very small forces (which may cause computational instabilities), simulation going out of control due to incorrect/badly chosen parameters or wrong handling, etc.
    You have to track data errors with debugger and/or logs and find the source of the problem. Enabling floating point exceptions (as I mentioned above) might also help as you may catch the problem at earlier stages in your code.

  8. Oleh Derevenko

    Closing this as invalid. You may seek debugging assistance in 'ode-users' at Google Groups (ode-users@googlegroups.com)

  9. Log in to comment