Travix-International / Hystrix.Dotnet

A combination of circuit breaker and timeout. The .net version of the open source Hystrix library built by Netflix.
https://travix-international.github.io/Hystrix.Dotnet/
MIT License
95 stars 16 forks source link

Fix concurrency handling in CircularArray.GetTail #16

Closed markvincze closed 6 years ago

markvincze commented 6 years ago

This was causing actual IndexOutOfRangeExceptions being thrown.

JorritSalverda commented 6 years ago

Ah, we've been seeing those for years. Nice improvement.

JorritSalverda commented 6 years ago

I'm trying to find the original implementation in Netflix's version, but I can't find the source code for the used BucketCircularArray they use in their RollingNumber and RollingPercentile.

JorritSalverda commented 6 years ago

Ah, it's just Github's search that sucks. Here's the code:

https://github.com/Netflix/Hystrix/blob/d838f4d1ba65ce55755ab1c73f74c980f04572bf/hystrix-core/src/main/java/com/netflix/hystrix/util/HystrixRollingNumber.java#L539-L546

markvincze commented 6 years ago

Thanks @lucaslorentz for catching this issue!

markvincze commented 6 years ago

Interesting, the AppVeyor build fails with an unrelated issue, and it also fails on my machine. I think some of the packages were changed on Nuget (something was maybe removed?), and that broke our build. I'm checking locally.