Community
Participate
Working Groups
The ExecutionObserver run method doesn't do anything with the executions if fConnection.isConnected() is false. Thus the waitForEndOfExcution waits forever. The attached patch cancels those executions. For the resource manager this seem to work correct. When the connection is lost, one gets the proper message that the server finished with -1. But I'm not sure whether this is how it is intended. E.g. should the ExecutionObserver itself be canceled if the connection is lost?
Created attachment 171582 [details] patch to cancel executions after connection fails
I'd say the ExecutionObserver should exit if the connection is lost. It is restarted each time connect() is called. I've simplified the patch and removed the syncronize on fConnection.
Created attachment 171887 [details] revised patch
(In reply to comment #3) > Created an attachment (id=171887) [details] > revised patch This doesn't solve the problem as far as I can see. Your modified patch doesn't call notifyFinish or notifyCancel for those KillableExecutions which are still running when the connection breaks up. Because you just leave the loop in this case those executions get never notified.
Oops, forgot about that. Taking a look at this again, I see all sorts of synchronization problems with accessing activeProcessTable. I've redone the patch to synchronize these accesses. See what you think.
Created attachment 171933 [details] patch to sync correctly
Roland, would you please review this patch? I'd like to get it into 4.0.1.
(In reply to comment #7) > Roland, would you please review this patch? I'd like to get it into 4.0.1. Sorry. Was busy writing proposal. Hope it is not to late for 4.0.1. The patch looks good.
Fixed in 4.0 and HEAD.