Skip to content

skeleton.setPositions causes a segmentation fault #226

@ch3njust1n

Description

@ch3njust1n

Bug Report

  • I checked the documentation and the forum but found no answer.
  • I checked to make sure that this issue has not already been filed.

Environment

  • nimblephysics v0.10.52.1
  • macOS Sonoma v14.2
  • Apple clang version 15.0.0 (clang-1500.3.9.4)

Expected Behavior

Set the joint positions without a segmentation fault.

Current Behavior

lldb python test_nimble.py
(lldb) target create "python"
Current executable set to '/opt/anaconda3/envs/nimble/bin/python' (arm64).
(lldb) settings set -- target.run-args  "test_nimble.py"
(lldb) run
Process 56467 launched: '/opt/anaconda3/envs/nimble/bin/python' (arm64)
Process 56467 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x0000000000000000
error: memory read failed for 0x0
Target 0: (python) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x0000000000000000
    frame #1: 0x000000010283ea40 _nimblephysics.so`___lldb_unnamed_symbol48811 + 428
    frame #2: 0x0000000102a1fc6c _nimblephysics.so`___lldb_unnamed_symbol53905 + 120
    frame #3: 0x0000000102841314 _nimblephysics.so`___lldb_unnamed_symbol48833 + 4168
    frame #4: 0x00000001000b5c94 python`cfunction_call + 60
    frame #5: 0x000000010005ab14 python`_PyObject_MakeTpCall + 348
    frame #6: 0x0000000100061434 python`method_vectorcall + 604
    frame #7: 0x000000010016d250 python`_PyEval_EvalFrameDefault + 39412
    frame #8: 0x00000001001619f4 python`_PyEval_EvalCode + 696
    frame #9: 0x00000001001d6ba4 python`run_mod + 188
    frame #10: 0x00000001001d5414 python`pyrun_file + 176
    frame #11: 0x00000001001d4e84 python`pyrun_simple_file + 352
    frame #12: 0x00000001001d4ce4 python`PyRun_SimpleFileExFlags + 64
    frame #13: 0x00000001001f79ac python`pymain_run_file + 264
    frame #14: 0x00000001001f6fe0 python`pymain_run_python + 360
    frame #15: 0x00000001001f6e20 python`Py_RunMain + 40
    frame #16: 0x0000000100005970 python`main + 56
    frame #17: 0x0000000189f210e0 dyld`start + 2360 

Steps to Reproduce

  1. Run script below of example code from docs

Code to Reproduce

import nimblephysics as nimble

rajagopal_opensim: nimble.biomechanics.OpenSimFile = nimble.RajagopalHumanBodyModel()
skeleton: nimble.dynamics.Skeleton = rajagopal_opensim.skeleton

positions = skeleton.getPositions()
positions[16] = 3.14 / 4
skeleton.setPositions(positions)

print(skeleton.getPositions())
print([skeleton.getDofByIndex(i).getName() for i in range(skeleton.getNumDofs())])

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions