Comments (15)
It seems the problem is related to the action passed as top of chain in the ChainFilter
.
must_get_agent_activity(
action.author().clone(),
ChainFilter::new(action.prev_action().clone()),
)?
Turns out that if there is a previous action on the chain done by the same agent, the code above works. If the action that is validated by must_get_agent_activity
is the first action of the agent (as in my tests) the unexpected error occurs.
As seen in this build, the same agent creating an entry on the chain (or reading a collection would have worked too) before calling the create action validated by must_get_agent_activity
, allows the test to pass:https://github.com/digitalillusion/test_hc/actions/runs/5067612426/jobs/9098862376#step:5:1059 (As opposed to https://github.com/digitalillusion/test_hc/actions/runs/5045324947/jobs/9049453604#step:5:951, where it failed)
from holochain.
@maackle do you have any ideas about what is happening here? I can reproduce the issue by running these tests locally and the happ code looks right to me. I can also see some changes have been made to the relevant Holochain code for 0.2
so I'm wondering if this might be something that's already been fixed on 0.2
?
from holochain.
I'm not quite clear on the issue. Is it just that the error message is different from what is expected? Or is it also that an error is not being thrown when it should be, or is being thrown when it should not? Are there perhaps multiple issues here?
For the first issue, perhaps it's just a matter of making the conductor return the actual reason for validation failure when doing a source chain commit with an invalid entry. But I could use more clarity on any other issue there might be.
I'll also try running locally when I get a chance.
from holochain.
I understand that my presentation of the problem may not have been clear enough so I will try to summarize my investigation so far:
must_get_agent_activity
ALWAYS fails with InvalidCommit error: [AnyDhtHash(...)]
when the agent triggers this validation as his first action on the chain. If the validation is preceded by another action by the same agent (a read or a write which is NOT validated by must_get_agent_activity
) then the function behaves correctly.
from holochain.
This item has been open for 30 days with no activity.
from holochain.
This item has been open for 30 days with no activity.
from holochain.
This item has been open for 30 days with no activity.
from holochain.
@jost-s You've been looking at these must_get_
s recently, I wonder if anything jumps out at you on this one? Maybe something that we might have resolved by now, or have an idea what's wrong?
from holochain.
Perhaps something to do with the scratch space not considered during validation? But that would be the same issue if you created another entry first before creating one with the must_get validation.
Another thought that comes to mind is that the zome initialization is involved. I don't know how, but that's one of the difference between running the validation on the first entry or a subsequent entry.
Feel free to assign this issue to me for investigation.
from holochain.
This item has been open for 30 days with no activity.
from holochain.
This item has been open for 30 days with no activity.
from holochain.
This item has been open for 30 days with no activity.
from holochain.
This item has been open for 30 days with no activity.
from holochain.
This item has been inactive for 14 days since being marked as stale.
from holochain.
I cannot reproduce the error using the latest Holochain 0.3.0 or 0.4.0 release as evidenced with this test ran successfully on a pipeline here https://github.com/holochain/holochain/actions/runs/9054914937/job/24875304538?pr=3841#step:4:3007.
That test immediately starts creating entries that are validated with a must_get_agent_activity call. I tried to run that test against 0.1 but would have to backport several things. Please try your scenario again with a current version of Holochain.
Apologies for taking so long to respond to this issue!
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.