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
At the moment, iterating over result_generator can block the main thread indefinitely, not allowing the signal handler to run.
After discussing with @lidizheng , we believe that the main thread is caught up performing a blocking operation in Core, probably waiting on a completion queue. The thread should be yielded periodically so that signal handlers may be run.
The text was updated successfully, but these errors were encountered:
I presume we need to gdb the un-responsive process.
My guess about the completion queue block could be wrong since we already set 200 ms timeout for each wait, and checking signal in Cython explicitly. The blocking I think should be caused by other function call.
As discussed offline, we are doing the periodical check in #19481. As suggested by @gnossen , the infinite timeout solution isn't ideal since it depends on CPython's implementation. However, if we perform the spin check in Python layer, we could have more control.
At the moment, iterating over
result_generator
can block the main thread indefinitely, not allowing the signal handler to run.After discussing with @lidizheng , we believe that the main thread is caught up performing a blocking operation in Core, probably waiting on a completion queue. The thread should be yielded periodically so that signal handlers may be run.
The text was updated successfully, but these errors were encountered: