Great! that makes it a lot easier when you can reproduce!
I noticed a std::string exception was being thrown. I completely turned off the DAGView and made sure the exception was still there. It was. I have attached the back trace. Clip from attached back trace:
Code: Select all
#3 0x00007ffff480b526 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff680a312 in App::Document::remObject (this=0x192daa0, sName=0x0, forceIfUndeletable=false) at /home/tanderson/Programming/freeCad/free-cad-git/src/App/Document.cpp:1620
#5 0x00007ffff6852eed in App::DocumentObjectGroup::removeObjectFromDocument (this=0x1fd4df0, obj=0x2e61b40)
at /home/tanderson/Programming/freeCad/free-cad-git/src/App/DocumentObjectGroup.cpp:95
I believe this is caused by the fact that after your migration routine the group objects contain multiple links to the same feature. So basically it is trying to delete a feature that has already been deleted. This causes an exception to be thrown. I haven't traced where the exception lands, but I am guessing the deletion operation is quit half way through.
pre-migration:
- PreMigration.png (141.18 KiB) Viewed 2448 times
post-migration:
- PostMigration.png (280.94 KiB) Viewed 2448 times
You can see in the post migration that the group features contain multiple links to the same feature. I don't think that is an acceptable state for group features. fix that, and I think the exception and the dagview assert will go away.