You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This behavior is being caused because we have some circular awaits in this scenario. Here's what's happening:
EventProcessor loop begins.
Call to get partition ids fail due to bad eventHubName, enter catch block in loop.
Inside catch block, we await processError.
User's processError awaits subscription.close().
subscription.close() waits for the EventProcessor loop to exit before yielding.
It's at this point that we've reached a holding pattern, since processError won't yield to the loop until the loop has closed...which it can't do until processError yields!
As for why the process still exits...I'm not sure. It seems like the runtime can tell that these promises are deadlocked, but that's a separate deep dive.
Additional note: This happens when processError is invoked for a non partition-specific issue. These would be things unrelated to processing events such as getting the list of partition claims and partition ids.
Run the below code with a connection string to a valid namespace, but pass an invalid eventHubName so that
processError
is calledThe program exits after a minute or so, but no code after
await subscription.close()
gets called.cc @richardpark-msft, @chradek
The text was updated successfully, but these errors were encountered: