Did anyone observe that a pipeline only caches par...
# nostupidquestions
f
Did anyone observe that a pipeline only caches part of the results even though they are all the same process? I know from my previous ran that all processes (only vcf2counts not) finished for all samples and now that I had to
-resume
only part of it was cached?
a
Oh, we've seen that internally actually, but we haven't figured out why yet 🤨
a
Yes, I see this all the time, and sometimes I see it completely restart a particular step even though it and several downstream passed a resume before
a
Were some of the tasks retried in the initial run? I only recently learned that you can't delete empty folders in the work directory after
nextflow clean
, as that will break the caching.
m
The only time I've seen that is from implicit merging of channels, i.e. a process taking two queue type channels, but I'm guessing that has been ruled out already.
f
I mean it works partially so I thought its more infrastructure than code?
m
Try using the lineage information to see if that sheds any light on it: https://docs.seqera.io/nextflow/tutorials/data-lineage#compare-task-runs Otherwise we should try and get this reopened: https://github.com/nextflow-io/nextflow/issues/4894
👀 2
r
what does the log say, @Famke Bäuerle? Of both the original and resumed run?
f
I am not sure what to look for honestly 😅
r
can you dump it?
f
yes no problem
but i resumed multiple times haha
log-finished-run.log,log-run-before.log
p
Yeah this is a very good reason to enable lineage globally for Nextflow, so that you can retrospectively look at cache calculations in these cases
I agree with @Mahesh Binzer-Panchal that this "partial" cache failure can be due to non-deterministic ordering of channel inputs. Even cached runs still go through the motions of pretending to run processes, so things can come out in a different order each time. Depending on workflow logic, this can subtly alter inputs
👍 1
m
One thing that caught me out was using
.first()
on channels which then every so often gave a different first file, breaking caching.
f
This is the pipeline i am using: https://github.com/qbic-pipelines/vcftocounts if you spot anything I will try and fix it