I've added UITest_writerperfect_epubexport a while ago, and while I did
not see it hanging in the recent past, both Noel and Stephan run into
a hang of it from time to time.
The code is here:
writerperfect/qa/uitest/epubexport/epubexport.py
The backtrace always looks like this:
self.ui_test.execute_blocking_action() gets an UNO method where invoking
it opens a dialog and the python method also gets a callback. When the
hang happens, then it seems the problem is that the Python thread waits
for the dialog to be closed, but in fact it's already closed, so it
waits forever joining the python thread.
I don't think there is anything really special in this test, rather I
guess the problem happens here more frequently (than elsewhere) because
normally these dialogs are invoked via UNO commands, where we just
execute the UNO command, wait for the dialog to appear then work with
it. (I did not look at the implementation, perhaps in this case there is
no Python thread involved?)
So I wonder -- do you think it would be possible or would make sense to
have a way similar to self.xUITest.executeCommand (execute a blocking
command async), but for UNO methods that open a dialog? I.e. also
similar to self.ui_test.execute_blocking_action, but without an actual
callback.
Perhaps that would be a fix for these strange hangs.