Frequent game freezes.

This issue has been tracked since 2022-12-18.

By freeze I mean not lag spikes, but complete freeze until restarted. Happens in a lot of circumstances: when switching to craft from tracking station, when returning from craft to KSC, when removing craft from tracking station - things that I've found out, probably there's more.
Nothing suspicious in log, at all, last record in stderr.log is here:
E1218 23:59:13.284410 8180 matrix_computations_body.hpp:477] Difficult diagonalization: rows: 4 columns: 4 {-9.29576679952565655e+02 kg, -1.43807080021929323e-07 kg, -2.62600591938166872e-07 kg, +2.03738529446138017e-02 kg} {-1.43807080021929323e-07 kg, -9.29576679878950927e+02 kg, +3.38279336986602175e-07 kg, -2.62453130173820881e-02 kg} {-2.62600591938166872e-07 kg, +3.38279336986602175e-07 kg, -9.29576679446472326e+02 kg, -4.79258697142856960e-02 kg} {+2.03738529446138017e-02 kg, -2.62453130173820881e-02 kg, -4.79258697142856960e-02 kg, +2.78873003927798845e+03 kg} , stopping with: rows: 4 columns: 4 {-9.29576680064199081e+02 kg, +5.95591112145503877e-18 kg, +4.44089209850062616e-16 kg, -1.01062599573840165e-18 kg} {+2.84204113791086049e-13 kg, -9.29576680064198854e+02 kg, -5.87068428656331345e-15 kg, +8.41355876968157958e-19 kg} {+6.21724893790087663e-14 kg, +2.54083023330357816e-15 kg, -9.29576680064195784e+02 kg, +1.38201210275850760e-17 kg} {-1.68008997038280134e-18 kg, +3.43094133708504399e-19 kg, +1.35837535036241122e-17 kg, +2.78873004019259770e+03 kg}
but judging by the time, it was recorder minutes before freeze.
Record in KSP.log varies depending on scenario, but again, AFAIK, all of them are default things that go to log on scene changing.
The main reason for me to believe that it's Principia and not other mods (though, they may be related), is that when I attach VS debugger and pause execution, the main thread is always in same condition (this one is when deleting craft, haven't tried other scenarios with debugger):
`

ntdll.dll!00007ff83ea4d144()	Unknown
KernelBase.dll!00007ff83c2d306e()	Unknown
msvcp140.dll!00007ff821ce30af()	Unknown
[Inline Frame] principia.dll!std::thread::join() Line 130	C++
principia.dll!principia::base::internal_jthread::jthread::operator=(principia::base::internal_jthread::jthread && other) Line 126	C++
principia.dll!principia::base::internal_recurring_thread::BaseRecurringThread::Stop() Line 21	C++
principia.dll!principia::ksp_plugin::internal_vessel::Vessel::~Vessel() Line 99	C++
principia.dll!principia::ksp_plugin::internal_vessel::Vessel::``scalar deleting destructor'(unsigned int)	C++
[Inline Frame] principia.dll!std::default_delete<principia::physics::internal_massive_body::MassiveBody const>::operator()(const principia::physics::internal_massive_body::MassiveBody *) Line 3120	C++
[Inline Frame] principia.dll!std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>::{dtor}() Line 3230	C++
[Inline Frame] principia.dll!std::destroy_at(std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>>> * const) Line 325	C++
principia.dll!std::_Default_allocator_traits<std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>>>,void *>>>::destroy<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>>>>(std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>>>,void *>> & __formal, std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>>> * const _Ptr) Line 721	C++
[Inline Frame] principia.dll!std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *>::_Freenode(std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *>> &) Line 385	C++
principia.dll!std::_Tree<std::_Tmap_traits<std::string,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>,std::less<std::string>,std::allocator<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>>,0>>::_Erase_unchecked(std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>>>,std::_Iterator_base0> _Where) Line 1294	C++
[Inline Frame] principia.dll!std::_Tree<std::_Tmap_traits<std::string,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>,std::less<std::string>,std::allocator<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>>,0>>::erase(std::_Tree_const_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>>>>) Line 1331	C++
principia.dll!principia::ksp_plugin::internal_plugin::Plugin::FreeVesselsAndPartsAndCollectPileUps(const principia::quantities::internal_quantities::Quantity<principia::quantities::internal_dimensions::Dimensions<0,0,1,0,0,0,0,0>> & Δt) Line 596	C++
principia.dll!principia__FreeVesselsAndPartsAndCollectPileUps(principia::ksp_plugin::internal_plugin::Plugin * const plugin, const double delta_t) Line 607	C++

`
And principia.dll!std::thread::join() is the thing that would lock the game.

Aberro wrote this answer on 2022-12-19

Yes, similar stack when switching to craft:

ntdll.dll!00007ff83ea4d144()	Unknown
KernelBase.dll!00007ff83c2d306e()	Unknown
msvcp140.dll!00007ff821ce30af()	Unknown
[Inline Frame] principia.dll!std::thread::join() Line 130	C++
principia.dll!principia::base::internal_jthread::jthread::operator=(principia::base::internal_jthread::jthread && other) Line 126	C++
principia.dll!principia::base::internal_recurring_thread::BaseRecurringThread::Stop() Line 21	C++
principia.dll!principia::ksp_plugin::internal_vessel::Vessel::~Vessel() Line 99	C++
principia.dll!principia::ksp_plugin::internal_vessel::Vessel::``scalar deleting destructor'(unsigned int)	C++
[Inline Frame] principia.dll!std::default_delete<principia::physics::internal_massive_body::MassiveBody const>::operator()(const principia::physics::internal_massive_body::MassiveBody *) Line 3120	C++
[Inline Frame] principia.dll!std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>::{dtor}() Line 3230	C++
[Inline Frame] principia.dll!std::destroy_at(std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>>> * const) Line 325	C++
principia.dll!std::_Default_allocator_traits<std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>>>,void *>>>::destroy<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>>>>(std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>>>,void *>> & __formal, std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::physics::internal_massive_body::MassiveBody const ,std::default_delete<principia::physics::internal_massive_body::MassiveBody const>>>> * const _Ptr) Line 721	C++
[Inline Frame] principia.dll!std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *>::_Freenode(std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *>> &) Line 385	C++
principia.dll!std::_Tree_val<std::_Tree_simple_types<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>>>::_Erase_tree<std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *>>>(std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *>> & _Al, std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *> * _Rootnode) Line 751	C++
principia.dll!std::_Tree_val<std::_Tree_simple_types<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>>>::_Erase_tree<std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *>>>(std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *>> & _Al, std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *> * _Rootnode) Line 751	C++
principia.dll!std::_Tree_val<std::_Tree_simple_types<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>>>::_Erase_tree<std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *>>>(std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *>> & _Al, std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *> * _Rootnode) Line 751	C++
[Inline Frame] principia.dll!std::_Tree_val<std::_Tree_simple_types<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>>>::_Erase_tree(std::allocator<std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *>> & _Rootnode, std::_Tree_node<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>,void *> *) Line 750	C++
principia.dll!std::_Tree<std::_Tmap_traits<std::string,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>,std::less<std::string>,std::allocator<std::pair<std::string const ,principia::base::not_null<std::unique_ptr<principia::ksp_plugin::internal_vessel::Vessel,std::default_delete<principia::ksp_plugin::internal_vessel::Vessel>>>>>,0>>::clear() Line 1351	C++
principia.dll!principia::ksp_plugin::internal_plugin::Plugin::~Plugin() Line 137	C++
principia.dll!principia::ksp_plugin::internal_plugin::Plugin::`scalar deleting destructor'(unsigned int)	C++
[Inline Frame] principia.dll!std::default_delete<principia::ksp_plugin::internal_plugin::Plugin const>::operator()(const principia::ksp_plugin::internal_plugin::Plugin *) Line 3120	C++
[Inline Frame] principia.dll!std::unique_ptr<principia::ksp_plugin::internal_plugin::Plugin const ,std::default_delete<principia::ksp_plugin::internal_plugin::Plugin const>>::{dtor}() Line 3230	C++
principia.dll!principia__DeletePlugin(const principia::ksp_plugin::internal_plugin::Plugin * * const plugin) Line 514	C++
pleroy wrote this answer on 2022-12-19

Please give us log files, there is nothing that we can do without them. Also, your save might be useful. The vessel is busy recomputing the past, you might have a very long history or a save that predates हरीश चंद्र.

pleroy wrote this answer on 2023-02-18

The story continues in #3520.

More Details About Repo
Owner Name mockingbirdnest
Repo Name Principia
Full Name mockingbirdnest/Principia
Language C++
Created Date 2014-02-08
Updated Date 2023-03-29
Star Count 664
Watcher Count 29
Fork Count 62
Issue Count 109

YOU MAY BE INTERESTED

Issue Title Created Date Updated Date