Possible Issue with Repeat after Cancel Rule Timers

@bravenel

I wrote a simple rule app (RM 5.1) just to make sure the "Repeat" and "Cancel Rule Timers" commands were working as I expected and it turned out, maybe it wasn't.

I set the rule up to initially "Cancel Timed Actions This Rule" and then to do a repeat 3 times loop, followed by an IF statement.

I expected it to cancel the "Repeat loop" if it was invoked a second time while it was already running--but to then do the "Repeat 3 Time" loop anew. However, from what I see, the second invocation only executed the Repeat Loop once before Exiting with the END-REP.

Rule App:

The log:

Is that to be expected?

Note that when I ran the rule one time after this, it behaved properly again--so the issue seems to surface only when a previous execution is interrupted.

Thanks.

You didn't cancel the repeat you canceled the delays. Your repeat is stoppable but there is a separate stop repeating actions command.

Perhaps that is the issue?

Cancel Timed Actions should cancel a repeat, delays, waits, everything involving timers.

2 Likes

I don't see a problem here. You had it run 3 seconds after the first one started, so it hadn't even gotten to the second repeat of the 3 repeats yet. But I think it did stop the original one, and then start a new one at 38:57.

So you need to explain better what you think doesn't work.

BTW, it would be a lot easier for me to figure out without all of the extra logging you've thrown in.

Sorry, I had the logging for my own testing.

I expected it would interrupt the initial execution, then run 3 times the second time.

However, it only ran once on the second execution.

I can reproduce that problem. Will investigate...

2 Likes

This problem found and fixed. Caused by a race condition due to simultaneous multiple instances of the rule running.

3 Likes

This should be fixed now, in 2.2.9.131.

3 Likes

Download the Hubitat app