Skip to content

repro: downstream: reproducing in wrong order  #3602

Closed
@liamtoran

Description

@liamtoran

DVC version : 0.92.0 (PyPI) + MacOS

It seems dvc repro --downstream (could also be the -f option) sometimes executes DAGs in the wrong order.

Steps to reproduction:

dvc run -o 1 -o 2 -f step1.dvc 'touch 1 | touch 2'
dvc run -d 1 -o 3 -f step2.dvc 'touch 3'
dvc run -d 3 -d 2 -o 4 -f step3.dvc 'touch 4'
dvc repro --downstream -f step1.dvc

Last bit does :

Running command:                                                        
	touch 1 | touch 2

Running command:
	touch 4

Running command:
	touch 3

Even though the DAG looks like this :

             +-----------+        
             | step1.dvc |        
             +-----------+        
            ***          ***      
           *                *     
         **                  ***  
+-----------+                   * 
| step2.dvc |                ***  
+-----------+               *     
            ***          ***      
               *        *         
                **    **          
             +-----------+        
             | step3.dvc |        
             +-----------+   

In this case step2 (touch 3) should be executed before step3 (touch 4)

Metadata

Metadata

Assignees

Labels

bugDid we break something?p1-importantImportant, aka current backlog of things to do

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions