Amerio.Stephane Posted Friday at 03:55 PM Posted Friday at 03:55 PM Hello, I have a continuous error flow on the slaves: 16:42:50 ERROR: Syncker::Slave::read_node(): bad node type ObjectMeshStatic (slave id: 312817034 node type: 36, expected: 0) 16:42:50 ERROR: Syncker::Slave::read_node(): bad node type ObjectMeshStatic (slave id: 312817034 node type: 36, expected: 0) The ID on the slaves does not match the ID on the master: Slave: Which refers to this node on the master (so, not the correct one) While the correct node on the master have a different ID The node H160_ref3 is placed manually in the world (there are multiple instances of the same node in this world). What is going on??? (Added detail: both master and slaves are running on the same PC for this test, with exactly the same app, of course)
silent Posted Monday at 04:47 AM Posted Monday at 04:47 AM Hi Stephane, That's unexpected behavior for sure. Please try to add following logic to slave and master code: int AppSystemLogic::init() { Plugins::Syncker::Manager::get()->getSyncker()->setDynamicIDMode(true); <..> If this doesn't help we would need to find another options here. Thank you! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
Amerio.Stephane Posted Monday at 08:56 AM Author Posted Monday at 08:56 AM Same result. (note that setDynamicMode is undocumented). I don't remember having this issue in the previous versions. 1
silent Posted Monday at 09:51 AM Posted Monday at 09:51 AM Thanks for the update! We are currently investigating what is causing this behavior. Once I will have more information from the dev team I will surely let you know. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
silent Posted yesterday at 09:57 AM Posted yesterday at 09:57 AM Out of curiosity, could you please try disabling asynchronous node loading on both the master and slave? Just add World::setAsyncLoadNodeReferences(false); to AppSystemLogic::init() and check if the behavior is different in that case. Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
Amerio.Stephane Posted 23 hours ago Author Posted 23 hours ago So... I tested again and I must have incorrectly tested last time. Updated results: if (auto s = Plugins::Syncker::Manager::get()->getSyncker()) s->setDynamicIDMode(true); This apparently removes the incorrect IDs World::setAsyncLoadNodeReferences(false); This alone doesn't fix it Not sure if this is an actual fix or not, of course, because I don't know if I made something wrong elsewhere in the code that requires this fix, or if it's a genuine bug in 2.19.1.2. Did you reproduce it in any way?
silent Posted 20 hours ago Posted 20 hours ago Hi Stephane, There is nothing wrong with your code that requires fixing. Rather, it is the nodeID generation that is currently being refactored. We plan to finalize this in future updates, most likely in version 2.20, to ensure that such issues do not occur again. You should definitely use setDynamicIDMode(true) to fix the initial issue. You also don't need to use setAsyncLoadNodeReferences, since it's not the root cause. We will also add missing description for setDynamicIDMode method as soon as possible. Currently it's deterministically generating IDs on application start, therefore IDs should always match between PCs. More likely after refactoring there will be no need in such methods anymore. Thanks! 1 How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
Recommended Posts