14
azuredivay
116d

I made a SMALLLL change in a .NET middleware that handles WebSockets (in the self-made SAAS I previously talked about) and it somehow fucked up n stopped closing connections even for people who left

On the bright side, I didn't notice any performance reduction in the service so the scalability was unintentionally stress-tested lol
Now to figure out how it fucked up

Comments
  • 6
    went from avg 50-users at a time to 32,000+ for those who cant see coz DevRant compressed the img too much -_-
  • 1
    Did you forget to dispose your IDisposable? :(
  • 2
    @azuredivay is this an example of P becoming NP accidentally?
  • 1
    If there is no persistent state a restart should fix it. Don't think there is a way shutdown gracefully
  • 1
    That's why Steam was down the other day, now I know
  • 0
    @AlgoRythm I WISH it were that :v
    I think I fucked up in the memory manipulation in the Data Structures that hold WebSocket info

    the whole try-get and ref-replace/overwrite for high-performance connection handling worked until my last push where I went "1 step further" n boom, it's broken
    I gave up on the performance-improvements commit, reverted the 2 files and am not touching them for a while -.-

    PS: i was so desperate at the end that I even wrote a Timer that went through ENTIRE dictionaries and disposed each List item individually. The issue didnt happen for at most 2 hours then suddenly the same graph mount
    No errors logged, and the test endpoint showed more entries each time I refreshed to even Read the values lol

    @hjk101 yes but even after restart the users will still come and go and the "garbage" will eventually pile up again
    It's kinda like a drainage pipe being blocked off, I can clean the overflow repeatedly with a restart but that isnt the solution
Add Comment