azos
azos copied to clipboard
ApacheBench load - DistributedCallFlow already injected bug?
The following is generated by ab
high load test, the error is coming from DistributedCallFlow
handler added recently:
Error|WAVE|Azos.Wave.Filters.ErrorFilter|0
[Azos.Wave.FilterPipelineException] :>realip>callflow> [Azos.AzosException] Distributed flow error: The context is already injected with DistributedCallFlow
{"$ip":"[::1]:58423","$ua":"ApacheBench\/2.3","$mtd":"GET","$uri":"http:\/\/localhost:8100\/system\/info\/","$ref":null,"$stat":"500\/Internal Error"}
+-Exception
| Type Azos.Wave.FilterPipelineException
| Source Azos.Wave
| Target FilterWork
| Message :>callflow> [Azos.AzosException] Distributed flow error: The context is already injected with DistributedCallFlow
| `FPE-FT` = "Azos.Wave.Filters.DistributedCallFlowFilter"
| `FPE-FN` = "callflow"
| `FPE-FO` = "20"
| `FPE-HT` = ""
| `FPE-HN` = ""
| `AE-C` = "0"
| Stack
at Azos.Wave.WorkFilter.FilterWork(WorkContext work, IList`1 filters, Int32 thisFilterIndex) in C:\Zdev\ghub\AZOS\src\Azos.Wave\WorkFilter.cs:line 127
at Azos.Wave.WorkFilter.InvokeNextWorker(WorkContext work, IList`1 filters, Int32 thisFilterIndex) in C:\Zdev\ghub\AZOS\src\Azos.Wave\WorkFilter.cs:line 151
at Azos.Wave.Filters.EffectiveCallerIPEndPointFilter.DoFilterWork(WorkContext work, IList`1 filters, Int32 thisFilterIndex) in C:\Zdev\ghub\AZOS\src\Azos.Wave\Filters\EffectiveCallerIPEndPointFilter.cs:line 75
at Azos.Wave.WorkFilter.FilterWork(WorkContext work, IList`1 filters, Int32 thisFilterIndex) in C:\Zdev\ghub\AZOS\src\Azos.Wave\WorkFilter.cs:line 122
+-Exception
| Type Azos.AzosException
| Source Azos
| Target Start
| Message Distributed flow error: The context is already injected with DistributedCallFlow
| `AE-C` = "0"
| Stack
at Azos.Apps.DistributedCallFlow.Start(IApplication app, String description, Nullable`1 guid, String directorName, String callerAgent, String callerPort) in C:\Zdev\ghub\AZOS\src\Azos\Apps\callflow\DistributedCallFlow.cs:line 182
at Azos.Wave.Filters.DistributedCallFlowFilter.DoFilterWork(WorkContext work, IList`1 filters, Int32 thisFilterIndex) in C:\Zdev\ghub\AZOS\src\Azos.Wave\Filters\DistributedCallFlowFilter.cs:line 59
at Azos.Wave.WorkFilter.FilterWork(WorkContext work, IList`1 filters, Int32 thisFilterIndex) in C:\Zdev\ghub\AZOS\src\Azos.Wave\WorkFilter.cs:line 122
This is not a bug in DistributedCallFlow
, it is an issue with "keepAlive" handling in HttpListener
on .Net Core which was broken at some point by MSFT. Use the .Net 4.7.2
for now with Standard 2.0
, the roadmap for .NET 6
is to use Kestrel however HttpListener is still a viable option due to its self-contained architecture