In order to kill a topology with no wait period the operator needs to supply 
extra arguments `-w 0`  or the code needs to be a few lines longer to pass in 
the KillOptions with a 0 timeout.  If you want a configured minimum timeout for 
a given topology I think that would be perfectly fine.  We do not currently 
support that, but please file a JIRA and hopefully someone can take a look at 
supporting it.  You can probably do a lot of the work yourself if you want to.
The function you care about is here
https://github.com/apache/storm/blob/51c8474143b0081ff0522b0367f3efdba2689089/storm-core/src/jvm/org/apache/storm/daemon/nimbus/Nimbus.java#L2573-L2595
and it really would be mostly inserting a check 
probably after this line
https://github.com/apache/storm/blob/51c8474143b0081ff0522b0367f3efdba2689089/storm-core/src/jvm/org/apache/storm/daemon/nimbus/Nimbus.java#L2583
to be sure the waitAmount is >= the configured minimum.


- Bobby

On Tuesday, January 17, 2017, 1:28:32 AM CST, Sachin Pasalkar 
<sachin_pasal...@symantec.com> wrote:Currently user can kill topology directly 
without waiting for some amount of time so that all inflight messages will get 
processed.  For example, storm is writing to file & user kills topology, file 
is not closed or moved to proper location. We need to educate operation guys to 
do the right things also there are some chances that it will be not followed 
causing system to go in inconsistent state.

Can we set mandatory timeout (configurable) when user kills storm topology? 
User should not be allowed kill topology with time less than mentioned time.

Some case:
1) If topology is long running don't allow user to kill but time not less than 
mentioned one
2) If topology is just deployed allow him to kill instantly (as it might be 
some mistake)
3) Handle same cases from command-line.

Thanks,
Sachin

Reply via email to