Comments (6)
I am nearly done working through the sys_validation workflow which is a priority right now but this is a pretty serious thing to not have working so I'd like to look at this next. @abe-njama for discussion in our meeting later please
from holochain.
Thanks for raising this @nphias. My preliminary investigation suggests this is indeed not implemented correctly.
So in this test the code relies on all_cells which ends up looking at role_assignments in here https://github.com/holochain/holochain/blob/develop-0.2/crates/holochain/src/conductor/tests/install_app_bundle.rs#L82
Now following what happens with those role assignments
CloneOnly is recognised as needing the ProvisionOnly strategy https://github.com/holochain/holochain/blob/develop-0.2/crates/holochain_types/src/app/app_bundle.rs#L210
That results in role assignments being updated here https://github.com/holochain/holochain/blob/develop-0.2/crates/holochain_types/src/app/app_bundle.rs#L109. But notice the line above, where dnas_to_register is also set
Next, in the conductor it will ask for cells_to_create https://github.com/holochain/holochain/blob/develop-0.2/crates/holochain/src/conductor/conductor.rs#L1389. That is entirely based on dnas_to_register https://github.com/holochain/holochain/blob/develop-0.2/crates/holochain_types/src/app/app_bundle.rs#L297 and NOT the actual role assignments.
Now the conductor goes ahead and runs genesis for those cells https://github.com/holochain/holochain/blob/develop-0.2/crates/holochain/src/conductor/conductor.rs#L1417
Only after genesis succeeds does the conductor check the actual role assignments to report the conductor state https://github.com/holochain/holochain/blob/develop-0.2/crates/holochain/src/conductor/conductor.rs#L1420
from holochain.
I think I've got a fix for this, just waiting to see that it doesn't break anything else but I think that's reasonably unlikely :)
from holochain.
This can be back-ported as soon as it's approved and merged so if all goes well it will be in the first 0.2.4 release candidate
from holochain.
Keeping this open for the backport
from holochain.
Back-ported in #3121 and will be released with 0.2.4 as planned
from holochain.
Related Issues (20)
- Check TOML formatting on CI
- Release automation can't handle self deps with a version
- Dry run releases are broken due to a missing label HOT 4
- The release automation produces TOML which is not correctly formatted
- A bad return value from a callback crashes the conductor HOT 2
- [Release automation] Fix toml formatting HOT 1
- Release automation dep `crate-util` requires newer Rust version 1.76
- Simplification of the release process HOT 1
- Review of Key Manager Browser Extension
- Review of Launcher with Key Management
- (Must have) Run the HoloFuel sweettest test
- Atomic Holonix updates HOT 1
- (Must have) Manual testing, using a happ that we know is reasonably reliable
- (Must have) Leave a conductor running for a longer period of time
- (Nice to have) Automated (or at least semi) testing, maybe with HoloFuel?
- (Medium) Wind Tunnel simple baseline
- [BUG] Unable to open Database file on Windows 10
- Holochain dependency, dependencies updates
- [Workflow] Remove integration workflow
- [Integrity] Write helper to collectively return missing dependencies from must_get calls
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from holochain.