Skip to content

symbols: Prevent deadlock in larger repositories

Warren Gifford requested to merge ef/symbols-deadlock into main

Created by: efritz

In this code we end up moving elements from parseRequests (buffered) to symbols (unbuffered). The consumer of the symbols channel is not yet activated as it requires the linked function to return. This requires the pipeline to stall once we fill the buffer on the requests. We'd usually sees something like this present itself immediately, but the buffer was large enough to make it seem to work without friction in dev.

Now we simply don't try to iterate the channel synchronously pre-return (which should never have worked). This requires a bit of refactor as now we have to expose an error where we didn't need to previously.

See https://github.com/sourcegraph/sourcegraph/pull/27986

Merge request reports

Loading