Commit d2c1bf4
committed
fix(csharp): always complete result queue when download loop exits
The download loop's finally block only called CompleteAdding() on the
result queue when the downloader itself had an error. When the fetcher
failed mid-stream (e.g. warehouse stopped), the downloader had no error
of its own, so the queue was left open — empty but not completed.
On retry, BlockingCollection.Take() blocked forever waiting for items
that would never arrive, deadlocking the Mashup Container thread and
causing Power BI to hang with a spinner instead of showing an error.
Now CompleteAdding() is called on every exit path, so Take() on an
empty queue throws InvalidOperationException (caught by existing
handler) instead of blocking, allowing the fetcher error to propagate.
Co-authored-by: Isaac1 parent dcec15e commit d2c1bf4
1 file changed
+10
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
437 | 437 | | |
438 | 438 | | |
439 | 439 | | |
440 | | - | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
441 | 445 | | |
442 | 446 | | |
443 | 447 | | |
444 | 448 | | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
445 | 454 | | |
446 | 455 | | |
447 | 456 | | |
| |||
0 commit comments