Steps to reproduce:
- Open QT console.
- Run gettxoutsetinfo.
- Exit the debug window (no blocking) -> exit the program (will block).
This is what is shown on Windows (10) for several minutes: https://i.imgur.com/AyexgkC.png
Steps to reproduce:
This is what is shown on Windows (10) for several minutes: https://i.imgur.com/AyexgkC.png
The same would happen with other long calls.
It's similar to how rescan used to be uninterruptible. Is this perhaps already documented somewhere ?
It would be easy fixable, though I don't see a big need for allowing shutdown during gettxoutsetinfo. @laudaa: can you elaborate more more about the use-case and why it would be required to allow a shutdown at this point?
@jonasschnelli As promag as mentioned, this would occur for other long calls as well (although I'm not sure which all of these would be; gettxoutsetinfo is just the one that I encountered this with and it's notably long at ~5 minutes on the system that I've tried it). The very least that could be done is a proper exiting window informing the user that a call is still in progress (or at the very least document this somewhere if it isn't already?). The way that it is now (see image) it looks like the software isn't working anymore ("Not responding") which will probably result in users trying to forcefully close it. This might lead to other unexpected issues (e.g., need for a reindex?).
Agree, either it should interrupt the call or inform the user to wait. Otherwise he may force quit.
Console commands run in a separate thread (RPCExecutor) but waiting for that thread to finish takes place in the main thread, causing the GUI to become unresponsive during shutdown for long running calls.
I've created the PR #13674 to address this issue. Any feedback is greatly appreciated.
This is an issue for the GUI and the RPC. The RPC part is fixed in #19056
The GUI part is fixed in #17659