Skip to content

Corrupt RPCs for no apparent reason #1012

@maxkratt

Description

@maxkratt

Unity version: 6000.3.0f1

FishNet Version: 4.6.20

Discord Troubleshot Link: https://discord.com/channels/424284635074134018/1467889519733772522

Description: The example is really simple with a single network object with children and various network behaviours and other components. Re-serializing things doesn't seem to help.

Replication: Import the sample and press play to see the errors. You can also use the editor script included at (Tools → Create Complex Fishnet Object) to create a new scene object with a complex network behaviour hierarchy that can trigger the issue.

Expectation: No errors, or a way to reserialize the objects and fix the errors somehow.

Example File: CorruptRPCs.zip

Error:

TargetRpc not found for hash [3] on gameObject [Child_1_0] ObjectId [0] NetworkBehaviour [NetworkBehaviour4]. The remainder of the packet may become corrupt.
UnityEngine.Debug:LogError (object)
FishNet.Managing.Logging.LevelLoggingConfiguration:LogError (string) (at Assets/FishNet/Runtime/Managing/Logging/LevelLoggingConfiguration.cs:148)
FishNet.Managing.NetworkManager:InternalLogError (string) (at Assets/FishNet/Runtime/Managing/NetworkManager.Logging.cs:82)
FishNet.Managing.NetworkManagerExtensions:LogError (FishNet.Managing.NetworkManager,string) (at Assets/FishNet/Runtime/Managing/NetworkManager.Logging.cs:140)
FishNet.Object.NetworkBehaviour:ReadTargetRpc (int,bool,uint,FishNet.Serializing.PooledReader,FishNet.Transporting.Channel) (at Assets/FishNet/Runtime/Object/NetworkBehaviour/NetworkBehaviour.RPCs.cs:310)
FishNet.Managing.Client.ClientObjects:ParseRpcLink (FishNet.Serializing.PooledReader,uint16,FishNet.Transporting.Channel) (at Assets/FishNet/Runtime/Managing/Client/Object/ClientObjects.RpcLinks.cs:53)
FishNet.Managing.Client.ClientManager:ParseReader (FishNet.Serializing.PooledReader,FishNet.Transporting.Channel,bool) (at Assets/FishNet/Runtime/Managing/Client/ClientManager.cs:479)
FishNet.Managing.Client.ClientManager:ParseReceived (FishNet.Transporting.ClientReceivedDataArgs) (at Assets/FishNet/Runtime/Managing/Client/ClientManager.cs:398)
FishNet.Managing.Client.ClientManager:Transport_OnClientReceivedData (FishNet.Transporting.ClientReceivedDataArgs) (at Assets/FishNet/Runtime/Managing/Client/ClientManager.cs:352)
FishNet.Transporting.Tugboat.Tugboat:HandleClientReceivedDataArgs (FishNet.Transporting.ClientReceivedDataArgs) (at Assets/FishNet/Runtime/Transporting/Transports/Tugboat/Tugboat.cs:290)
FishNet.Transporting.Tugboat.Client.ClientSocket:IterateIncoming () (at Assets/FishNet/Runtime/Transporting/Transports/Tugboat/Core/ClientSocket.cs:254)
FishNet.Transporting.Tugboat.Tugboat:IterateIncoming (bool) (at Assets/FishNet/Runtime/Transporting/Transports/Tugboat/Tugboat.cs:237)
FishNet.Managing.Transporting.TransportManager:IterateIncoming (bool) (at Assets/FishNet/Runtime/Managing/Transporting/TransportManager.cs:750)
FishNet.Managing.Timing.TimeManager:TryIterateData (bool) (at Assets/FishNet/Runtime/Managing/Timing/TimeManager.cs:1112)
FishNet.Managing.Timing.TimeManager:IncreaseTick () (at Assets/FishNet/Runtime/Managing/Timing/TimeManager.cs:733)
FishNet.Managing.Timing.TimeManager:<TickUpdate>g__MethodLogic|113_0 () (at Assets/FishNet/Runtime/Managing/Timing/TimeManager.cs:392)
FishNet.Managing.Timing.TimeManager:TickUpdate () (at Assets/FishNet/Runtime/Managing/Timing/TimeManager.cs:380)
FishNet.Transporting.NetworkReaderLoop:Update () (at Assets/FishNet/Runtime/Transporting/NetworkReaderLoop.cs:29)

Note

Thank you HPYMSK for creating the project and looking into it quite a bit.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ReceivedThe issue appears to be complete and will be reviewed.Resolved Pending ReleaseIssue is resolved and will be available on the noted version.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions