-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: cyclic pipelines should run stable #171
Conversation
Pull Request Test Coverage Report for Build 12952190375Details
💛 - Coveralls |
@mathislucka I think this PR should have at least one more reviewer, ideally +2, this is a big change |
Yes, @Amnah199 already started reviewing the PR in Haystack (core). @julian-risch will also review. |
we need to add
I've been using it to test several pipelines and always have to do a long import, i.e.:
|
regarding the test files - I tried to run them but it failed due to a mixing fixture - I would suggest we completely remove them or add them in total/working - just to keep the PR in a clean state - we can then later add the full tests in another PR - so that if we need to rollback for whatever reason things are in a clean state. |
…erimental into fix/pipeline_run
…erimental into fix/pipeline_run
…erimental into fix/pipeline_run
I found another bug that affects non-cyclic pipelines while working on super components. Consider the pipeline that is created here: haystack-experimental/haystack_experimental/super_components/converters/file_converter.py Line 88 in 72528c5
And have a look at the example notebook for the I found that depending on the insertion and connection order, the The This happens because after running all the file converters, the This is a problem because: https://github.com/deepset-ai/haystack/blob/c989d9c483a4fc74147e17065779fd6103f4a084/haystack/core/pipeline/pipeline.py#L429 Will check the empty run queue ( Edit: To clarify, this bug affects the original logic but probably not this one. We should add a test case though. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!
We tested many different pipelines and will continue with comparing traces of pipelines running with the old and the new logic after this PR is merged. We're checking for any differences in pipeline execution order, changes in component inputs/outputs, and decreases/increases in speed.
In addition, we're still testing the new logic with a custom component that is greedy variadic and has an optional input as described here. And we'll need to add a test case for the tabular_joiner issue described above.
Related Issues
Proposed Changes:
How did you test it?
Notes for the reviewer
Note that the PR does not add any new code in
base.py
. Check the original branch to see the diff. The PR only removes code frombase.py
.Also note, that the AsyncPipeline will not run anymore when this change is merged to haystack main as it relies on some methods in PipelineBase that I removed.
Checklist
fix:
,feat:
,build:
,chore:
,ci:
,docs:
,style:
,refactor:
,perf:
,test:
.