Created attachment 429009 [details]
Description of problem:
When some methods which require transaction identification is called using soap also parameter duration has to be filled.
Moreover this duration parameter is evaluated by condor, which means that it will be changed after calling such method.
Version-Release number of selected component (if applicable):
python-suds-0.3.9-1 (used as soap client)
Steps to Reproduce:
1. run schedd with D_FULLDEBUG and soap enabled
2. start soap transaction, choose a long duration (e.g. 300)
3. run newCluster soap method, fill Nr. 1 as transaction duration value
transaction was aborted one second after newCluster request
The transaction duration was not changed and transaction goes on till 300s after calling of beginTransaction
The duration should not be mandatory attribute for methods which require transaction id
see Scheduler output in attachment
BeginTransaction and ExtendTransaction were originally intended to be the only means to alter the duration of a transaction. The duration given by the client is a request and the returned duration is what the Schedd actually picked, e.g. ask for -10 second duration and the Schedd will probably give you a second.
The duration is supposedly optional in the schema, but is not in practice. Each call extends the transaction by the specified duration.
Recommendation here is to treat the Transaction returned as immutable. Modification of either the Id or the Duration enters undefined space.
Paths for this BZ:
o RFE for enforcement of immutability of Transaction
o Close as WONTFIX, be warned if modifying the Transaction
Of the two paths it is not worthwhile to enforce the immutability. Closing as WONTFIX.