Bad type/missing conversion in `RecvProxy_StringToString`
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 52/100
Research direction
Start in Source.NET/Source.Common/DtRecv.cs at RecvProxy_StringToString, then follow the stack trace into FieldAccessors.cs and FieldAccess.cs to understand the failed Char-to-InlineArray512 conversion. Reproduce the crash while loading a map with the affected entities; the issue does not identify which entities. Done when those entities load without the conversion exception.
Written by the indexing model from the issue text.
Description
Prevents loading into servers on maps with certain entities (unknown what exact entities are causing it)
Unhandled exception. System.NotSupportedException: No conversion from System.Char to Source.InlineArray512`1[System.Char]
at Source.Common.FieldConvert`2.Create() in Source.NET/Source.Common/FieldAccessors.cs:line 176
at Source.Common.ArrayFieldAccessor`2.SetElement[T](Object instance, Int32 index, T& value) in Source.NET/Source.Common/FieldAccessors.cs:line 143
at Source.Common.DynamicArrayIndexAccessor.SetValue[T](Object instance, T& value) in Source.NET/Source.Common/FieldAccess.cs:line 66
at Source.Common.DynamicAccessor.CopyFrom[T](Object instanceFrom, Span`1 target) in Source.NET/Source.Common/FieldAccess.cs:line 169
at Source.Common.RecvPropHelpers.RecvProxy_StringToString(RecvProxyData& data, Object instance, IFieldAccessor field) in Source.NET/Source.Common/DtRecv.cs:line 75
at Source.Engine.PropTypeFns.String_Decode(DecodeInfo& decodeInfo) in Source.NET/Source.Engine/DtEncode.cs:line 465
at Source.Engine.PropTypeFns.Array_Decode(DecodeInfo& decodeInfo) in Source.NET/Source.Engine/DtEncode.cs:line 573
at Source.Engine.EngineRecvTable.Decode(RecvTable table, Object instance, bf_read inRead, Int32 objectID, Boolean updateDTI) in Source.NET/Source.Engine/EngineRecvTable.cs:line 393
at Source.Engine.CL.CopyNewEntity(EntityReadInfo u, Int32 iClass, Int32 iSerialNum) in Source.NET/Source.Engine/CL.cs:line 572
at Source.Engine.Client.ClientState.ReadEnterPVS(EntityReadInfo u) in Source.NET/Source.Engine/Client/ClientState.cs:line 1229
at Source.Engine.Client.ClientState.ReadPacketEntities(EntityReadInfo u) in Source.NET/Source.Engine/Client/ClientState.cs:line 1143
at Source.Engine.CL.ProcessPacketEntities(SVC_PacketEntities entmsg) in Source.NET/Source.Engine/CL_EntsParse.cs:line 57
at Source.Engine.Client.ClientState.ProcessPacketEntities(SVC_PacketEntities msg) in Source.NET/Source.Engine/Client/ClientState.cs:line 506
at Source.Engine.Client.BaseClientState.ProcessMessage[T](T message) in Source.NET/Source.Engine/Client/BaseClientState.cs:line 331
at Source.Common.Networking.NetMessage.Process() in Source.NET/Source.Common/Networking/IConnectionlessPacketHandler.cs:line 312
at Source.Common.Networking.NetChannel.ProcessMessages(bf_read buf) in Source.NET/Source.Engine/NetChannel.cs:line 906
at Source.Common.Networking.NetChannel.CheckReceivingList(FragmentStream list) in Source.NET/Source.Engine/NetChannel.cs:line 741
at Source.Common.Networking.NetChannel.ProcessPacket(NetPacket packet, Boolean hasHeader) in Source.NET/Source.Engine/NetChannel.cs:line 705
at Source.Common.Networking.Net.ProcessSocket(NetSocketType sock, IConnectionlessPacketHandler handler) in Source.NET/Source.Engine/Net.cs:line 289
at Source.Engine.CL.ReadPackets(Boolean finalTick) in Source.NET/Source.Engine/CL.cs:line 97
at Source.Engine.Host._RunFrame_Client(Boolean finalTick) in Source.NET/Source.Engine/Host.cs:line 393
at Source.Engine.Host._RunFrame(Double time) in Source.NET/Source.Engine/Host.cs:line 253
at Source.Engine.Host.RunFrame(Double frameTime) in Source.NET/Source.Engine/Host.cs:line 426
at Source.Engine.HostState.State_Run(Double frameTime) in Source.NET/Source.Engine/HostState.cs:line 248
at Source.Engine.HostState.Source.Common.Engine.IHostState.Frame(Double time) in Source.NET/Source.Engine/HostState.cs:line 91
at Source.Engine.GameEngine.Frame() in Source.NET/Source.Engine/GameEngine.cs:line 151
at Source.Engine.ClientLauncherAPI.MainLoop() in Source.NET/Source.Engine/ClientLauncherAPI.cs:line 162
at Source.Engine.Mod.Main() in Source.NET/Source.Engine/Mod.cs:line 34
at Source.Engine.ClientLauncherAPI.RunListenServer() in Source.NET/Source.Engine/ClientLauncherAPI.cs:line 79
at Source.Engine.ClientLauncherAPI.Main() in Source.NET/Source.Engine/ClientLauncherAPI.cs:line 102
at Source.Engine.ClientLauncherAPI.Run() in Source.NET/Source.Engine/ClientLauncherAPI.cs:line 94
at Source.Launcher.Bootloader.Boot() in Source.NET/Source.Launcher/Program.cs:line 110
at Source.Launcher.Program.Main(String[] _) in Source.NET/Source.Launcher/Program.cs:line 153
- Dominant language
- C#
- Stars
- 104
- Forks
- 9
- Avg merge
- 6h 45m
- Merged PRs (30d)
- 118
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from SourceDotNET/Source.NET
-
Difficulty 2/5 1-3 hours Newbie friendliness 69/100
SourceDotNET/Source.NET#203 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 30/100
SourceDotNET/Source.NET#214 · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
SourceDotNET/Source.NET#117 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
SourceDotNET/Source.NET#116 ·
Maintainers usually reply within 1 day
-
We need to consider a unified API for validationMay be free again @marchc1 claimed this 370 days ago, and no pull request is open. OpenEnhancement Needs More Info
SourceDotNET/Source.NET#37 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
All issues in SourceDotNET/Source.NET
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
KnifeLemon/Filee#363 ·
Maintainers usually reply within 1 day
-
[CI] .trgen-ignore required for several grammars.Possibly taken @kaby76 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
antlr/grammars-v4#5073 ·
Maintainers usually reply within 1 day
-
/api/oauth/introspect emits clientId and tokenType instead of RFC 7662's client_id and token_typeOpenbug P2
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
nightscout/nocturne#2317 ·
Maintainers usually reply within 1 day
-
[BUG]: Position intent set on a simple order is dropped when it becomes a bracket, OCO or OTO orderPossibly taken @RaphaelFakhri claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
alpacahq/alpaca-trade-api-csharp#903 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
joinrpg/joinrpg-net#5752 ·
Maintainers usually reply within 1 day