-
Notifications
You must be signed in to change notification settings - Fork 179
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
bug: dangerous behaviour importing external data in your protocol #13938
Comments
Hi, thanks for the detailed report. I agree that this is confusing, surprising, and a change from how things worked prior to v7.0.0. Just to be precise about what's going on, let me correct a few details. If you actually re-run the protocol, it will use the latest version of your external data. The run preview in the Opentrons App will be outdated, but the actual behavior on the robot will be up to date. Running the protocol basically If you're curious about more of the technical details, you can read my comment here, replying to someone else who was running into the same problem. Anyway, yes—this is a problem and we're looking into it.
A slightly easier workaround is to rename just the protocol file, like |
Thanks for the feedback. |
Correct. v6.x will reanalyze the protocol on the robot every time you upload it. This unexpected behavior was introduced in v7.0.0. (PR #12193 / commit 4bbc247.) |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
@SyntaxColoring @wolfrickw |
Some other people have reported this, so I've written it up as #14598 to have one central ticket. Closing this ticket in favor of that one. Thank you again for this report! |
Overview
External data (for ex. some csv from /data/user_storage) is cached after the first import of a protocol. The protocol will use always the same imported data during the next imports, no mater that the file changed or not. To be able to use new data you have to rename your data file and modify your protocol accroding to the new file name.
Caching happens with outputs too, only the firtst protocol import will write an output file, after that no files are written, even if the previous output is deleted.
Steps to reproduce
Create a file called "pp.csv" in /data/user_storage.
Put some data in it.
Import the protocol from below.
Have a look on run preview (content of pp.csv is shown), notice that out.csv was created in /data/user_storage..
Change the content of pp.csv.
Reimport the protocol.
Have a look on run preview, notice that the changes in pp.csv cannot be seen.
Delete out.csv.
Reimport the protocol.
Notice that no output (out.csv) is generated.
Change the name of pp.csv to somting else. Change it in the protocol too.
Now you see the changes.
Current behavior
As described above, partial code execution (doesnt import data, doesnt write ouput) after the first import.
This bug (or feature???) makes OT2 extremely unflexible, and to some extent totally useless for those who are not running the same protocol with exactly the same samples over and over again... partial, unwarned, undocumented code execution due caching is a nightmare....
Expected behavior
No cacheing of external data. Imported data should be imported, not just pretended to be imported.
Operating system
Windows
System and robot setup or anything else?
app 7.02, wifi
The text was updated successfully, but these errors were encountered: