Share 
Follow 
AboutDownloadsDocumentsForumsSource CodeIssuesNews
Date:
2014-02-05 20:10
Priority:
3
State:
Open
Submitted by:
Christopher Dembia (chrisdembia)
Assigned to:
Ajay Seth (aseth)
Summary:
Segfault in IK when tasks for non-existant markers are <apply>'d (v3.2)

Detailed description
OpenSim 3.2. (No segfault occurs in 3.1).

On Ubuntu 13.10, IK sometimes reaches a segfault if the tasks include a marker.

The tool runs for the most part, but may segfault at std::string InverseKinematicsSolver::getMarkerNameForIndex(int markerIndex) const. I think this is when the marker which has the largest error (max=# (MARKERNAME)) is a marker that is NOT in the model, but is in the tasks file and is "apply"'d.

The GUI does not segfault. The segfault came down to libstdc++:

Frame 212 (t=2.12): total squared error = 0.0207861, marker error: RMS=0.0230863, max=0.0461389 (R.Elbow)

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff3d5112b in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) backtrace
#0 0x00007ffff3d5112b in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#1 0x00007ffff71a801f in OpenSim::InverseKinematicsSolver::getMarkerNameForIndex(int) const () from /home/fitze/simtk/opensim320/lib/libosimSimulation.so
#2 0x00007ffff7b327b8 in OpenSim::InverseKinematicsTool::run() ()
from /home/fitze/simtk/opensim320/lib/libosimTools.so
#3 0x000000000040273b in main ()


If the user specifies a task for a marker that is not in the model, and they specify to "apply" that task, the tool shouldn't even run. That would be unexpected behavior. As a user I think I'm tracking a marker, but I'm not.

Add A Comment: Notepad

No Comments Have Been Posted

No Changes Have Been Made to This Item

Feedback