Description

Eventually, the ReplicateUsing function called out for a UPROPERTY is no longer being called. After investigation, it appears that the data is making it from the Server to the Client, but that the data is invalid.

Namely, in RepLayout.cpp : ReceivePropertyHelper, PropertiesAreIdentical always comes back true after the application is run for a certain amount of time.

This may be something related to setting the replicated property to NULL. In this specific case, Cmd.Type == 0x8 (for objects) and both values (Shadow + Cmd.Offset and Data + SwappedCmd.Offset) get evaluated to NULL UObject pointers.

Steps to Reproduce

Create a new, empty C++ project.
Download the attached files, and add them to the project.
Change '#include "Replication.h"' in TestReplicator.cpp and TestActor.cpp to the include specific to the new project.
Compile and start the project.
Place a TestActor in the world.
Enable "Run Dedicated Server".
PIE and open the output log.

Expected: Every 5 seconds you will see 2 Error Messages like the following:
LogTemp:Error: nullptr is set on server
LogTemp:Error: Object is set on client, content is : null

Actual: Initially every 5 seconds, you see 2 messages. Eventually, the client message stops displaying.

(Note, files have users Copyright as they were downloaded from UDN).

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-37609 in the post.

6
Login to Vote

By Design
ComponentUE - Networking
Affects Versions4.124.134.14
Target Fix4.17
CreatedOct 20, 2016
ResolvedApr 27, 2017
UpdatedJun 30, 2017
View Jira Issue