If a job starts without a cursor (i.e. after a run is resumed), but the run has a cursor, we do use the cursor from the run in build_enumerator.
However, we don't store the cursor on the job itself at this point. If the first iteration fails, we go through the on_error callback and store the job cursor, which is nil, on the run, effectively losing the progress previously made on the run.
This fixes this issue by always storing the cursor on the job in build_enumerator, making sure the job and run have the same cursor.
If a job starts without a cursor (i.e. after a run is resumed), but the run has a cursor, we do use the cursor from the run in
build_enumerator
.However, we don't store the cursor on the job itself at this point. If the first iteration fails, we go through the
on_error
callback and store the job cursor, which isnil
, on the run, effectively losing the progress previously made on the run.This fixes this issue by always storing the cursor on the job in
build_enumerator
, making sure the job and run have the same cursor.Fixes #1033