关于ET5内存池RecyclableMemory的讨论
问题:TChannel.cs中接收消息回调发现TChannel被删除报空指针
2021-12-08 06:38:53.1176 AllServer 0001 ip: .....:... System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'The stream with Id e441c699-90e1-47ab-8831-64726b34fbb8 and Tag message is disposed.'.
at Microsoft.IO.RecyclableMemoryStream.CheckDisposed() in F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Base\RecyclableMemoryStream\RecyclableMemoryStream.cs:line 777
at Microsoft.IO.RecyclableMemoryStream.GetBuffer() in F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Base\RecyclableMemoryStream\RecyclableMemoryStream.cs:line 425
at ETModel.PacketParser.Parse() in F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Module\Message\Network\TCP\PacketParser.cs:line 56
at ETModel.TChannel.OnRecvComplete(Object o) in F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Module\Message\Network\TCP\TChannel.cs:line 265
Main at offset 4435 in file:line:column F:\WorkSpace\Arithmetic-ET\Server\App\Program.cs:168:7
Update at offset 80 in file:line:column F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Base\OneThreadSynchronizationContext.cs:26:5
OnAcceptComplete at offset 311 in file:line:column F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Module\Message\Network\TCP\TService.cs:106:5
Start at offset 68 in file:line:column F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Module\Message\Network\TCP\TChannel.cs:116:4
OnRecvComplete at offset 204 in file:line:column F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Module\Message\Network\TCP\TChannel.cs:265:6
2021-12-08 06:38:53.1314 AllServer 0001 System.NullReferenceException: Object reference not set to an instance of an object.
at ETModel.Session.<>c__DisplayClass12_0.<Awake>b__0(AChannel c, Int32 e) in F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Module\Message\Session.cs:line 55
at ETModel.TChannel.OnRecvComplete(Object o) in F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Module\Message\Network\TCP\TChannel.cs:line 273
at ETModel.TChannel.Start() in F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Module\Message\Network\TCP\TChannel.cs:line 113
at ETModel.TService.OnAcceptComplete(Object o) in F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Module\Message\Network\TCP\TService.cs:line 106
Main at offset 4435 in file:line:column F:\WorkSpace\Arithmetic-ET\Server\App\Program.cs:168:7
Update at offset 80 in file:line:column F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Base\OneThreadSynchronizationContext.cs:26:5
OnAcceptComplete at offset 311 in file:line:column F:\WorkSpace\Arithmetic-ET\Unity\Assets\Model\Module\Message\Network\TCP\TService.cs:106:5
熊猫 2021/2/26 18:38:21
跟那个memory没关系。
原因很简单啊,回调回来发现tchannel被删除了。
添加以下代码

5.0分支中commit已修复
