V3 uses the same concurrency model and doesn’t deadlock, but there’s a lot of new code in V4 and I haven’t had time to track down the deadlock. It’s almost always the case that a deadlock manifests at shutdown, which is extra fun to troubleshoot given the unrelated flushing delay at shutdown. But it’s pretty easy to see the distinction by looking at perf counters.