When running under Mono using a single-threaded window manager like Cinnamon it's frequently possible to dead-lock the entire window manager when KeePass launches xsel. The symptom is that xsel fails to daemonize itself to the background after its invoked.
This appears to be the result of a race-condition between xsel, the window manager's clipboard and Mono/Winforms redraw, wherein while Mono is waiting for xsel, it will not allow the window manager to process clipboard events, which in turn blocks xsel from daemonizing and thus deadlocks the system.
While this should probably be fixed on the window manager end, I have found that it seems it can be solved in a practical sense in KeePass by waiting for xsel to terminate in a separate thread, which allows the main KeePass thread to respond to the window manager and avoid the deadlock condition.
Log in to post a comment.