Synced strings over a certain length will cause an ArgumentOutOfRangeException
tracked
FairlySadPanda
- Nome del pacchetto VRCSDK que ha importado.
VRCSDK3-2020.03.21.12.04
- Nome del pacchetto Udon SDK che ha importato.
UDONSDK-2020.03.21.12.24
- Version/Build of VRChat you're using to test, if necessary.
Latest open beta. (906)
- A general description of the bug you're encountering.
Attempting to send a long string, like “Trip, Bond, Diamond, Cap, Copper, Canada, Ray, Circle, Centaur, Deck, Dwarf, Wind, Arm, Seal, Pipe, Pyramid, Nail, Amazon, Queen, Theater, Screen, Jupiter, Dress, Game, Whale,” over the network via synced vars will return the following error:
2020.03.21 21:33:39 Error - [FlatBufferNetworkSerializer] Caught ArgumentOutOfRangeException: Non-negative number required.
Parameter name: count
<00000000000000000000000000000000>at System.Text.UTF8Encoding.GetString (System.Byte [] bytes, System.Int32 index, System.Int32 count) [0x00000] in:0
<00000000000000000000000000000000>at (System.Int32), System.Int32 (System.Int32), System.Int32 (System.Int32)) [0x00000] in:0
<00000000000000000000000000000000>at vrc.networking.udonsync.Udonsync.Udonsync.It's a good idea for you to read more about the game. In the meantime, I would like to take a look at the same time, System.Int32, I would like to take a look at the same time, System.Int32, I would like to say, “I will not be able to read it.” [0x00000] in:0
<00000000000000000000000000000000>at vrc.networking.udonsync.Udonsync.Udonsync.It's a good idea for you to read more about the game. In the meantime, I would like to take a look at the same time, System.Int32, I would like to take a look at the same time, System.Int32, I would like to say, “I will not be able to read it.” [0x00000] in:0
<00000000000000000000000000000000>at vrc.networking.FlatbufferNetworkSerializer.Exitgames.client.photon.eventData Exitgames.client.photon.eventData Exitgames.client.photon.eventdata) [0x00000] in:0
<00000000000000000000000000000000>at NetworkManager.Exitgames.client.photon.eventData Exitgames.client.photon.eventdata) [0x00000] in:0
<00000000000000000000000000000000>at UnityEngine.AudioClip+PCMReaderCallback.Invoke (System.Single [] data) [0x00000] in:0
<00000000000000000000000000000000>at .onEvent (exitgames.client.photon.eventdata) [0x00000] in:0
<00000000000000000000000000000000>at .onEvent (exitgames.client.photon.eventdata) [0x00000] in:0
<00000000000000000000000000000000>at ExitGames.Client.Photon.PeerBase.DeserializeMessageAndCallback (ExitGames.Client.Photon.StreamBuffer stream) [0x00000] in:0
<00000000000000000000000000000000>at exitGames.client.photon.enetpeer.dispatchInComingCommands () [0x00000] in:0
<00000000000000000000000000000000>at exitGames.Client.Photon.PhotonPeer.dispatchInComingCommands () [0x00000] in:0
<00000000000000000000000000000000>at DispatchinComingCommands () [0x00000] in:0
<00000000000000000000000000000000>at photon.pun.photonhandler.fixedUpdate () [0x00000] in:0
Sending a shorter string, like “Trip, Bond, Diamond, Cap, Copper,” works without issue on the same world.
- A step-by-step guide on how to replicate the bug.
Will get this if needed.
---
Questo può essere un limitazione di sintonizzazione di stringhe - se è una limitazione di hardware, può avere un errore per consentire che il stringa è molto lungo per inviare?
Log In
Phasedragon
tracked
Ok that's fair
FairlySadPanda
Reporting as not fixed: error log is still spammed.
Phasedragon
complete
I believe this was back before the udon networking update, which introduced manual sync. Continuous sync still has this limitation and it is not a bug, continuous sync is simply limited to about 256 bytes. Manual sync on the other hand allows up to around 60 thousand bytes, so I'm going to consider this complete.
MyroP
Phasedragon: Personally, the thing that bothered me the most was that this issue would cause log messages getting spammed, causing noticeable framerate drops. When that issue happened to me I was wondering why my world became really laggy.
Also the error message wasn't very clear, so it took me some time to figure out the actual cause of the issue (I only knew that it was caused by the synced string after I found this canny).
So personally, I would suggest changing the error message, and only writing it once to avoid frame drops. Another idea would be show an error message on the emitter's end, because as FairlySadPanda mentioned, that issue only happens on the receiver's ends.
hotpepper360
i have came across the same issue. Please fix it
tr1xus
Please fix this issue
LoliGoddess
Please vrchat fix this
makihiro
The same problem is happening.
Environment
- Client: build 932
- VRCSDK3+UDON: 2020.05.06.12.14
The problem string have more then 53 character that condition (a [i] &128! = 0) in my environment.
Exemple Data
OK:
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
- 0123456789:; <=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] ^_`abcdefghijklmnopqrstuvwxyz
- ¼ä¹ùí°áè²éõæöòúüõµèðøàúìéôá'ñä±ïê½³î×óåão¾: p68`nïg ¿íÃæssøåsbk^yt; glRjV] 7q
NG:
- ääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääää
I created debug world for this problem.
ଳ̴̖̕
, System.Int32 Int.
FairlySadPanda
Should note that this error occurs on the reciever, not the emitter.