Comments (6)
Steps to see the issue. The issue seems to happen ~90% of the time. Few times I saw it work as expected:
- Create process A
- Add handler to process A
Handlers.add(
"test-action",
Handlers.utils.hasMatchingTag("Action", "Test-Action"),
function (m)
ao.send({Target = m.From, Data= "This message will never be created"})
end
)
- Create process B
- Add handler to process B
Handlers.add(
"test-action",
Handlers.utils.hasMatchingTag("Action", "Test-Action"),
function (m)
ao.assign({Processes = { PROCESS_A_PID }, Message = m.Id})
end
)
- From process B enter
Send({Target = ao.id, Action = "Test-Action"})
Result:
Message created in the handler in the process A is generated in the outbox, but it never gets send to Arweave.
Issue seems to be that MU gets empty response when it checks that result.
EDIT: Result isn't empty when checking manually. Link from the screenshot: https://cu.ao-testnet.xyz/result/ssswMSaMAnBTPePuEZMMVVHhWfPbAu8NW1MIzDaat2E?process-id=8fqIU38gHr06EqURPj80VNbIn-W436oQZa2UZ5WE7-0&no-busy=1
EDIT2: Above link isn't showing new message in the results anymore. See few comments down for new example + screenshots.
from ao.
from ao.
This is different.
At the time of the original issue, there was some confusion about what's happening. And it turned out that the assigning part actually seems to work fine, but the message resulting from that never reached Arweave.
This may not actually be related to assigning, but those steps just seems to be repro-able
In the repro steps, at the end, the MU gets empty result from the CU result link. But if the link is checked now, it can be seen that there is a outputted message there, but this one never reached Arweave (See screenshot of MU)
Forgot to mention that, and link to the result got hidden with the screenshot.
from ao.
Also more context: We're sending the message to B, not A.
What we're trying to show here is something like this flow:
Message 1 to Process B > Assigns Message 1 to Process A > Process A sends reply to Process B (msg.From from Message 1)
from ao.
For some reason this link in the second message returns now an empty result. It definitively had a new message there before. (EDIT: And still has when checking on local CU)
https://cu.ao-testnet.xyz/result/ssswMSaMAnBTPePuEZMMVVHhWfPbAu8NW1MIzDaat2E?process-id=8fqIU38gHr06EqURPj80VNbIn-W436oQZa2UZ5WE7-0&no-busy=1
Here is a new link+screenshots showing the issue. (Also a screenshot of what I see when checking CU manually, in case it changes again. )
https://cu.ao-testnet.xyz/result/rzu6lIyxSVIlL6zvUZZ7Wxj1kzjyZp9HfNuYhfWYA5c?process-id=tzMcL9smF0Z-HbzM9Fr8TfYsPx4wSUSiG676lViyORc&no-busy=1
Can see a new message in results, but at the time MU checked the same link it didn't see the message. And message didn't made it to Arweave.
from ao.
I'm going to close this and open a new issue now that we've isolated the root cause more.
from ao.
Related Issues (20)
- fix(su): SU_DATA_DIR should be optional
- Assigning a (L1?) tx which has no data breaks a process HOT 1
- feat(su): implement metrics in the su HOT 1
- Use an exponential backoff on SU failed data item uploads HOT 3
- fix(su): seperate GRAPHQL_URL and GATEWAY_URL
- fix(su): add fallback to arweave.net
- fix(mu): add a fallback to arweave.net HOT 1
- fix(mu): separate out GRAPHQL_URL and GATEWAY_URL
- feat(sur): add routing rules to the sur
- Include support for linux/arm64 platforms via mutliplatform builds for AO images
- feat(cu): better error messages when comms to SU fails
- fix(mu): message loss due to messages going directly to Arweave
- fix(su): failed to read wallet file under heavy load
- bug(MU): Missing Messages via EverVisison HOT 2
- perf(mu): Implement Retry / Stage Metrics
- bug(dev-cli): Unexpected wasm memory growth
- feat(mu): implement trace functionality
- perf(cu): instrument total message evaluations metric
- bug(mu): negative queue size metrics
- chg(CU): Result Storage - SQLite is great at storing small amounts of data but may not be great at storing large datasets, consider a different storage strategy
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 ao.