Issue 3553: Exception NotRunning() is raised by terminate() only (biomolecular-ftf) Source: Japan Biological Informatics Consortium (Mr. Martin Senger, martin.senger@gmail.com) Nature: Uncategorized Issue Severity: Summary: Exception NotRunning() is raised by terminate() only (as I remember) if the analysis is "not yet" running, but it should not be raised if it is already terminated. Suggestion: discuss if we can agree on the sentence above, and include it into the document. Resolution: Accepted. It was decided that a state transition should be added. Revised Text: to change IDL by adding "raises (NotRunning, NotRunnable) to wait() method" to add the following table into 2.2.9 (JobControl) and correct texts in the boxes in the same section to reflect what is in the table state of AnalysisInstance run() wait() terminate() CREATED start it and change status to RUNNING raise NotRunning raise NotRunning RUNNING raise NotRunnable block until finished kill it and change status to TERMINATED_BY_REQUEST or raise NotTerminated COMPLETED raise NotRunnable do nothing raise NotRunnable TERMINATED_BY_REQUEST raise NotRunnable raise NotRunnable raise NotRunnable TERMINATED_BY_ERROR raise NotRunnable raise NotRunnable raise NotRunnable Actions taken: April 11, 2000: received issue May 24, 2001: closed issue Discussion: End of Annotations:===== Date: Tue, 11 Apr 2000 19:53:32 +0100 (GMT) From: Martin Senger To: Juergen Boldt cc: biomolecular-ftf@omg.org Subject: Re: several possible "issues" In-Reply-To: <38F2C7F5.518CB9A3@netgenics.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-UIDL: 2(#"!EOS!!7j5e9_~"e9 Juergen, Here are some issues we are discussing in the FTF. I think that they are ready to be issued as issues :-). Could you please do it? Most of them are just changes in the spec document and I do not know if they should be separated or sent together. I am refering to the lifesci/99-12-01. Exception NotRunning() is raised by terminate() only (as I remember) if the analysis is "not yet" running, but it should not be raised if it is already terminated. Suggestion: discuss if we can agree on the sentence above, and include it into the document. Date: Tue, 2 May 2000 16:47:42 +0100 (BST) From: Martin Senger To: biomolecular-ftf@omg.org Subject: AnalysisState - a proposed summary In-Reply-To: <200004141058.LAA13118@o2-3.ebi.ac.uk> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-UIDL: YAi!!0_Le9p!Pe9eoo!! I have raised some topics about exceptions thrown by JobControl methods related to the AnalysisState in issue #3553. I cannot remember now if I mentioned/asked also what to do if run() method is called repeatedly (I think we discussed this but I cannot find it now). Therefore, I am presenting the following summary as a base for discussion. I have no strong opinion about it except that I feel that such or similar table should appear in the document to make things clear. Here it is: state of run() wait() terminate() Analysis- Instance ========================================================== CREATED start it raise raise and change NotRunning NotRunning status to RUNNING ---------------------------------------------------------- RUNNING raise block untill kill it and NotRunnable finished change status to T*_BY_REQUEST ---------------------------------------------------------- COMPLETED raise do nothing do nothing NotRunnable ---------------------------------------------------------- T*_BY_REQUEST raise do nothing do nothing NotRunnable ---------------------------------------------------------- T*_BY_ERROR raise do nothing do nothing NotRunnable ========================================================== There is also an exception NotTerminated which I guess/suggest is applicable only when terminate() is called for an instance in the RUNNING state, but termination failed and the underlying analysis is still running. Is this assumption correct? Another issue which may be worth to say somewhere in the document: if an AnalysisInstance is copied (by method copy() from LifeCycle) then the table above is valid independently for each copy. Which means that a client may run the same analysis with the same inputs many times assuming it will be copied before each run(). Is this correct? With regards, Martin -- Martin Senger EMBL Outstation - Hinxton Senger@EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger Date: Tue, 26 Sep 2000 14:58:56 +0100 (BST) From: Martin Senger To: biomolecular-ftf@omg.org Subject: issue 3553 - a proposed resolution In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-UIDL: 2\8!!FZ3!!?m;!!],n!! Talking about JobControl interface we agreed that the document should have a state transition table. I am proposing to: - add such table (see below -change T* to full name), - add "raise NotRunning" to wait() method if called in CREATED state (this is to be consistent with what terminate() does in the same situation) Proposed resolution: -------------------- - to change IDL by adding "raises (NotRunning) to wait() method" - to add the following table into 2.2.9 (JobControl) and correct texts in the boxes in the same section to reflect what is in the table state of run() wait() terminate() Analysis- Instance ========================================================== CREATED start it raise raise and change NotRunning NotRunning status to RUNNING ---------------------------------------------------------- RUNNING raise block untill kill it and NotRunnable finished change status to T*_BY_REQUEST or raise NotTerminated ---------------------------------------------------------- COMPLETED raise do nothing do nothing NotRunnable ---------------------------------------------------------- T*_BY_REQUEST raise do nothing do nothing NotRunnable ---------------------------------------------------------- T*_BY_ERROR raise do nothing do nothing NotRunnable ========================================================== Regards, Martin -- Martin Senger EMBL Outstation - Hinxton Senger@EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger Date: Tue, 26 Sep 2000 11:07:59 -0700 From: Scott Markel Organization: NetGenics, Inc. X-Mailer: Mozilla 4.73 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: Martin Senger CC: biomolecular-ftf@omg.org Subject: Re: issue 3553 - a proposed resolution References: Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: :5S!!OeM!!dV+!!g/Ke9 Martin, Martin Senger wrote: > > Talking about JobControl interface we agreed that the document should > have a state transition table. I am proposing to: > - add such table (see below -change T* to full name), Agreed, but see below for a suggested change. > - add "raise NotRunning" to wait() method if called in CREATED state > (this is to be consistent with what terminate() does in the same > situation) Agreed. > Proposed resolution: > -------------------- > - to change IDL by adding "raises (NotRunning) to wait() method" > - to add the following table into 2.2.9 (JobControl) and correct texts in > the boxes in the same section to reflect what is in the table > > > state of run() wait() terminate() > Analysis- > Instance > ========================================================== > CREATED start it raise raise > and change NotRunning NotRunning > status to > RUNNING > ---------------------------------------------------------- > RUNNING raise block untill kill it and > NotRunnable finished change > status to > T*_BY_REQUEST > or > raise > NotTerminated > ---------------------------------------------------------- > COMPLETED raise do nothing do nothing > NotRunnable > ---------------------------------------------------------- > T*_BY_REQUEST raise do nothing do nothing > NotRunnable > ---------------------------------------------------------- > T*_BY_ERROR raise do nothing do nothing > NotRunnable > ========================================================== I'd like to change the 6 "do nothing"s to "raise NotRunning", otherwise the table looks good. Scott -- Scott Markel, Ph.D. NetGenics, Inc. smarkel@netgenics.com 4350 Executive Drive Tel: 858 455 5223 Suite 260 FAX: 858 455 1388 San Diego, CA 92121 Date: Wed, 27 Sep 2000 01:29:57 +0100 (BST) From: Martin Senger To: Scott Markel cc: biomolecular-ftf@omg.org Subject: Re: issue 3553 - a proposed resolution In-Reply-To: <39D0E5FF.D6ED8383@netgenics.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-UIDL: =h?!!?;Ne9oDXd9k>Wd9 > > NotTerminated > > ---------------------------------------------------------- > > COMPLETED raise do nothing do nothing > > NotRunnable > > ---------------------------------------------------------- > > T*_BY_REQUEST raise do nothing do nothing > > NotRunnable > > ---------------------------------------------------------- > > T*_BY_ERROR raise do nothing do nothing > > NotRunnable > > ========================================================== > > I'd like to change the 6 "do nothing"s to "raise NotRunning", otherwise > the table looks good. > I have nothing against changing 3 "do nothing"'s in terminate() column to "raise NotRunning". Because in this case I am asking for changing analysis state and from some reasons I cannot achieve it - therefore it seems okay when I get an exception. But for wait() is would be inconvenient. Because of possible race-conditions I may easily get the exception and must therefore have two branches in my code. And mostly always the two branches will do the same - so why to have them at all? So I am changing now my proposal to replace 3 "do nothing"'s as mentioned above. Martin -- Martin Senger EMBL Outstation - Hinxton Senger@EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger Date: Mon, 16 Oct 2000 22:40:01 -0700 From: Scott Markel Organization: NetGenics, Inc. X-Mailer: Mozilla 4.75 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: Martin Senger CC: biomolecular-ftf@omg.org Subject: Re: issue 3553 - a proposed resolution References: Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: ^ohd94(Zd9`F#e9bVB!! Martin, Martin Senger wrote: > > > > NotTerminated > > > ---------------------------------------------------------- > > > COMPLETED raise do nothing do nothing > > > NotRunnable > > > ---------------------------------------------------------- > > > T*_BY_REQUEST raise do nothing do nothing > > > NotRunnable > > > ---------------------------------------------------------- > > > T*_BY_ERROR raise do nothing do nothing > > > NotRunnable > > > ========================================================== > > > > I'd like to change the 6 "do nothing"s to "raise NotRunning", otherwise > > the table looks good. > > > I have nothing against changing 3 "do nothing"'s in terminate() column > to "raise NotRunning". Because in this case I am asking for changing > analysis state and from some reasons I cannot achieve it - therefore it > seems okay when I get an exception. > But for wait() is would be inconvenient. Because of possible > race-conditions I may easily get the exception and must therefore have two > branches in my code. And mostly always the two branches will do the same - > so why to have them at all? For consistency. If the analysis is not running and run(), terminate(), or wait() are called, an exception is raised. > So I am changing now my proposal to replace 3 "do nothing"'s as > mentioned above. Scott -- Scott Markel, Ph.D. NetGenics, Inc. smarkel@netgenics.com 4350 Executive Drive Tel: 858 455 5223 Suite 260 FAX: 858 455 1388 San Diego, CA 92121 Date: Tue, 24 Oct 2000 15:29:51 -0700 From: Scott Markel Organization: NetGenics, Inc. X-Mailer: Mozilla 4.75 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: Martin Senger , biomolecular-ftf@omg.org Subject: Re: issue 3553 - a proposed resolution References: <39EBE631.B1914299@netgenics.com> Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: 8jg!!3l]d9[L9!!4!Fe9 Martin, I've got a counter offer. See below. Scott Markel wrote: > > Martin, > > Martin Senger wrote: > > > > > > NotTerminated > > > > ---------------------------------------------------------- > > > > COMPLETED raise do nothing do nothing > > > > NotRunnable > > > > ---------------------------------------------------------- > > > > T*_BY_REQUEST raise do nothing do nothing > > > > NotRunnable > > > > ---------------------------------------------------------- > > > > T*_BY_ERROR raise do nothing do nothing > > > > NotRunnable > > > > ========================================================== > > > > > > I'd like to change the 6 "do nothing"s to "raise NotRunning", otherwise > > > the table looks good. > > > > > I have nothing against changing 3 "do nothing"'s in terminate() column > > to "raise NotRunning". Because in this case I am asking for changing > > analysis state and from some reasons I cannot achieve it - therefore it > > seems okay when I get an exception. > > But for wait() is would be inconvenient. Because of possible > > race-conditions I may easily get the exception and must therefore have two > > branches in my code. And mostly always the two branches will do the same - > > so why to have them at all? > > For consistency. If the analysis is not running and run(), terminate(), > or wait() are called, an exception is raised. > > > So I am changing now my proposal to replace 3 "do nothing"'s as > > mentioned above. I agree that it's not necessary to raise NotRunnable if the analysis has COMPLETED. However, information is lost in the T*_BY_REQUEST and T*_BY_ERROR cases if wait() doesn't return an exception. So, how about the following? state of run() wait() terminate() Analysis- Instance ========================================================== ---------------------------------------------------------- COMPLETED raise do nothing raise NotRunnable NotRunnable ---------------------------------------------------------- T*_BY_REQUEST raise raise raise NotRunnable NotRunnable NotRunnable ---------------------------------------------------------- T*_BY_ERROR raise raise raise NotRunnable NotRunnable NotRunnable Scott -- Scott Markel, Ph.D. NetGenics, Inc. smarkel@netgenics.com 4350 Executive Drive Tel: 858 455 5223 Suite 260 FAX: 858 455 1388 San Diego, CA 92121 Date: Wed, 25 Oct 2000 00:17:57 +0100 (BST) From: Martin Senger To: Scott Markel cc: biomolecular-ftf@omg.org Subject: Re: issue 3553 - a proposed resolution In-Reply-To: <39F60D5F.33940825@netgenics.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-UIDL: ^QK!!H[j!![K?!!4>e!! > > I've got a counter offer. See below. > > So, how about the following? > > state of run() wait() terminate() > Analysis- > Instance > ========================================================== > > ---------------------------------------------------------- > COMPLETED raise do nothing raise > NotRunnable NotRunnable > ---------------------------------------------------------- > T*_BY_REQUEST raise raise raise > NotRunnable NotRunnable NotRunnable > ---------------------------------------------------------- > T*_BY_ERROR raise raise raise > NotRunnable NotRunnable NotRunnable > Go ahead, I agree. Martin -- Martin Senger EMBL Outstation - Hinxton Senger@EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger Date: Wed, 25 Oct 2000 14:08:31 -0700 From: Scott Markel Organization: NetGenics, Inc. X-Mailer: Mozilla 4.75 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: Martin Senger CC: BSA FTF Subject: Re: [OMG-BSA] proposed resolutions #5 References: Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: #iX!!\N&e9XA%!!4QIe9 Martin, Martin Senger wrote: > > Issue 3553: Exception NotRunning() is raised by terminate() only > > > > Proposed resolution: > > -------------------- > > - to change IDL by adding "raises (NotRunning) to wait() method" > > > regarding the current status of the proposed table the wait() > >method > must also raise NotRunnable exception; am I right? Yes. I forgot to change your original wording after we modified the table values. > otherwise okay with me Scott -- Scott Markel, Ph.D. NetGenics, Inc. smarkel@netgenics.com 4350 Executive Drive Tel: 858 455 5223 Suite 260 FAX: 858 455 1388 San Diego, CA 92121