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

Improve Rojo sync reliability #739

Merged
merged 2 commits into from
Jul 16, 2023

Conversation

boatbomber
Copy link
Member

Closes #734.

Rojo's main sync loop was a recursive promise method, which may have been obscuring issues. Additionally, ApiContext would choose to silently hang forever where we wanted to silence an error after disconnect, which may have been happening erroneously and causing silent hangs.

I have rewritten these so that ServeSession is non recursive and also knows how to handle ApiContext errors correctly in any state so that the hanging promise solution is no longer needed. Also, it may have not been needed ever since I added promise cancelling to ApiContext, but either way it's certainly not needed now.

@boatbomber boatbomber added scope: plugin Relevant to the Roblox Studio plugin size: small impact: small Minor papercuts in Rojo that don't warrant immediate resolutoin. type: tech debt Internal work that needs to happen status: needs review This work is mostly done, but just needs work to integrate and merge it. skip changelog PRs that may skip the changelog enforcement check labels Jul 15, 2023
@boatbomber boatbomber self-assigned this Jul 15, 2023
@boatbomber boatbomber enabled auto-merge (squash) July 15, 2023 03:26
@boatbomber boatbomber requested a review from Dekkonot July 15, 2023 03:29
Copy link
Member

@Dekkonot Dekkonot left a comment

Choose a reason for hiding this comment

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

Looks good to me. Hopefully this resolves our silent death issue.

@boatbomber boatbomber merged commit 8662d22 into rojo-rbx:master Jul 16, 2023
11 checks passed
@boatbomber boatbomber deleted the non-recursive-sync-loop branch July 17, 2023 03:54
Dekkonot pushed a commit to UpliftGames/rojo that referenced this pull request Jan 11, 2024
Uses non-recursive main loop and avoids hanging promises
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
impact: small Minor papercuts in Rojo that don't warrant immediate resolutoin. scope: plugin Relevant to the Roblox Studio plugin size: small skip changelog PRs that may skip the changelog enforcement check status: needs review This work is mostly done, but just needs work to integrate and merge it. type: tech debt Internal work that needs to happen
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Internal sync loop is recursive w/ promises
2 participants