azos icon indicating copy to clipboard operation
azos copied to clipboard

ApacheBench load - DistributedCallFlow already injected bug?

Open zhabis opened this issue 3 years ago • 1 comments

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

zhabis avatar Jun 22 '21 19:06 zhabis

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

itadapter avatar Jun 23 '21 00:06 itadapter