Skip to content
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

9303 orchestrate upgrade #9719

Draft
wants to merge 9 commits into
base: master
Choose a base branch
from
Draft

9303 orchestrate upgrade #9719

wants to merge 9 commits into from

Conversation

turadg
Copy link
Member

@turadg turadg commented Jul 16, 2024

refs: #9303

Description

Security Considerations

Scaling Considerations

Documentation Considerations

Testing Considerations

Upgrade Considerations

Copy link

cloudflare-workers-and-pages bot commented Jul 16, 2024

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: 78fb22d
Status:🚫  Build failed.

View logs

mergify bot added a commit that referenced this pull request Jul 16, 2024
_incidental_

## Description
Miscellaneous cleanups while starting #9719 for #9303.

See each commit title for changes

### Security Considerations
none

### Scaling Considerations
none

### Documentation Considerations
none

### Testing Considerations
CI

### Upgrade Considerations
not yet deployed
Copy link

codecov bot commented Jul 23, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 56.01%. Comparing base (c7eca9b) to head (77018cf).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #9719      +/-   ##
==========================================
- Coverage   56.37%   56.01%   -0.37%     
==========================================
  Files         667      666       -1     
  Lines      207560   207135     -425     
  Branches      343      171     -172     
==========================================
- Hits       117022   116017    -1005     
- Misses      90420    90999     +579     
- Partials      118      119       +1     

see 6 files with indirect coverage changes

mergify bot added a commit that referenced this pull request Jul 26, 2024
refs: #9303

## Description

Tests restarting an orchestration flow while an IBC message is pending response. 

#9303 will be closed when this and #9719 have landed.

### Security Considerations
none

### Scaling Considerations
none

### Documentation Considerations
none

### Testing Considerations
per se

### Upgrade Considerations
helps, no change
@turadg
Copy link
Member Author

turadg commented Jul 29, 2024

Experimenting with these merged:

Comment on lines +71 to +72
// BUG: this never resolves
return new Promise(() => {});
Copy link
Member

@mhofman mhofman Sep 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a comment of what exactly will hang in the test? I tracked down that chainHub uses agoricNames with retriable, so I assume something in the test will trigger usage of chainHub and its retriable vow to not be resolved before upgrade, but I lost track of how exactly that happens.

Also we should provide a little more details as to why this is a valid test (and equivalent to the previous one, which had the pending promise explicitly created in the vat being upgraded). Here the buggy agoricNames is external to the vat being upgraded, which means upgrading the vat will not reject the result promise for the E(agoricNames).lookup() call. However that call is simply awaited in a retriable async function, which means there is a local promise created and watched (the result of the async function), which is pending at vat upgrade, and which will be rejected on upgrade.

Interestingly, the lookup result promise will remain pending forever, causing a "leak" of the promise subscription (in the real world until the decider of the promise upgrades) even though the subscriber is actually no longer interested in the promise. This is a liveslots "limitation" that I created an issue about (#10101)

Comment on lines 48 to +52

// UNTIL https://github.com/Agoric/agoric-sdk/issues/9066
const logNode = E(privateArgs.storageNode).makeChildNode('log');
/** @type {(msg: string) => Vow<void>} */
const log = msg => vowTools.watch(E(logNode).setValue(msg));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's expected that the logs of all invocations will write to the same node?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Until #9066, yes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants