i3status-rust icon indicating copy to clipboard operation
i3status-rust copied to clipboard

taskwarrior block(s) trigger duplicate recurrence instances

Open jkaiser-ioki opened this issue 1 year ago • 3 comments

For some time I am observing duplicate instances for my taskwarrior recurrences. After some investigation with the taskwarrior devs we suspect that this may be due to a race condition among multiple simultaneous task invocations from automated processes, that each independently trigger the logic of checking for and creating missing recurrence instances.

The only instance of background processes that talk to task on my system are two blocks in my i3status-rs bar, that fire at 60s intervals. I had a look in the code of that block and noted the existence of the rc.gc=off flag that is used by the block's code. From my understanding that is there to prevent the updating of task IDs as part of the counting operation to prevent any unwanted cross-talk with manually interacting with the task-db.

The taskwarrior devs now suggest to add another runtime config override here to prevent updating recurrence instances as part of the counting operation, namely rc.recurrence.limit=0.

Are there any objections to this idea? Maybe make this configurable?

In the meantime I have disabled one of the two blocks to validate that this stops the duplicates from appearing. If that works, there is a high chance, that this project is the source of the duplicates.

For reference, here is the ticket tracking this topic on the taskwarrior side: https://github.com/GothenburgBitFactory/taskwarrior/issues/3550

jkaiser-ioki avatar Jul 17 '24 13:07 jkaiser-ioki