well-typed / grapesy

Native Haskell gRPC client and server based on `http2`
Other
31 stars 4 forks source link

Initial stress tests, fix `ThreadDone` leak #134

Closed FinleyMcIlwaine closed 2 months ago

FinleyMcIlwaine commented 2 months ago

Implemented stress tests for many non-streaming calls on one connection and many connections with one non-streaming call. Left a stub to fill in for "many messages" stress test.

In the many calls case, we discovered a memory leak caused by retention of ThreadDone objects in startRPC, which this commit also fixes.

See #133 for a (less critical) memory issue we discovered in the many connection case.

Here's the memory profile resulting from executing 100000 non-streaming calls on a single connection:

Screenshot 2024-04-10 at 12 50 17 PM