You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
if (!slicing_success || object_snapshot_buffer.get_bit_offset() != vars_size_in_bits) {
4542
4545
get_debugger().print(ERROR, "The received snapshot is corrupted because it was impossible to properly slice the Object info using the encoded size `" + std::to_string(vars_size_in_bits) + "`. This should never happen.");
NS_ASSERT_COND_MSG(p_snapshot.get_bit_offset() == offset_after_vars_reading, "The snapshot is corrupted because the data_object parsing failed for the object: " + synchronizer_object_data->get_object_name() + " - NetId: " + std::to_string(synchronizer_object_data->get_net_id().id));
4569
4571
} else {
4570
-
notify_server_full_snapshot_is_needed();
4571
-
NS_ENSURE_V_MSG(p_snapshot.get_bit_offset() == offset_after_vars_reading, false, "The snapshot is corrupted because the data_object parsing failed for the object: " + synchronizer_object_data->get_object_name() + " - NetId: " + std::to_string(synchronizer_object_data->get_net_id().id));
4572
+
if (!object_data_parsing_state || p_snapshot.get_bit_offset() != offset_after_vars_reading) {
4573
+
get_debugger().print(ERROR,
4574
+
"The snapshot is corrupted because the data_object parsing failed for the object: " + synchronizer_object_data->get_object_name() + " - NetId: " + std::to_string(synchronizer_object_data->get_net_id().id) + " - Size in bits: " + std::to_string(vars_size_in_bits) + " - Expected offset: " + std::to_string(offset_after_vars_reading) + " - Current offset: " + std::to_string(p_snapshot.get_bit_offset()));
if (snapshot_parsing_failures > scene_synchronizer->max_snapshot_parsing_failures || parsing_errors.missing_object_names > 0) {
5007
+
// Parsing failed for way too many times OR one or more objects
5008
+
// names were never delivered to this client.
5009
+
// NOTE: It's unlikely that the object name is missing because the
5010
+
// SceneSync ensure it never happens, since this happen
5011
+
// sporadically or never it's acceptable to request a full
5012
+
// snapshot and not just the name: integrating a feature to
5013
+
// specifically update the name would be way too much work for
5014
+
// no reason.
5015
+
snapshot_parsing_failures = 0;
5016
+
notify_server_full_snapshot_is_needed();
5017
+
scene_synchronizer->get_debugger().print(ERROR, "Snapshot parsing failed way too many times, requesting a full snapshot.", scene_synchronizer->get_network_interface().get_owner_name());
0 commit comments