FluidFramework
FluidFramework copied to clipboard
Fix ConnectionStateHandler logic around leave timer & stashed ops workflow
- Add UT case that catches the problem (if no other changes are made).
- Remove incorrect code that starts leave timer where it's not required (ConnectionStateHandler.ts)
- Suggests possible fix (Container.ts) for stashed ops worfklow. It's a bit ugly. Happy to hear better ideas.
Overall note: I think that's not the only shoe to drop. Exposing clientId from previous client that early in boot sequence, and essentially making some events go backwards in time (addMember / removeMember events in Quorum fire after we have established clientId) may be problematic in other areas, including in consumers of FF. In other words, users of the system may not expect such reverse flow of events. In places where they run into it, they may not understand why and how it happens, and may produce incorrect changes to deal with them, or reduce invariant checks and thus reduce code integrity.
⯅ @fluid-example/bundle-size-tests: +42 Bytes
Metric Name | Baseline Size | Compare Size | Size Diff |
---|---|---|---|
aqueduct.js | 453.34 KB | 453.34 KB | ■ No change |
azureClient.js | 552.54 KB | 552.55 KB | ⯅ +12 Bytes |
connectionState.js | 680 Bytes | 680 Bytes | ■ No change |
containerRuntime.js | 257.02 KB | 257.02 KB | ■ No change |
fluidFramework.js | 359.88 KB | 359.88 KB | ■ No change |
loader.js | 134.34 KB | 134.36 KB | ⯅ +18 Bytes |
map.js | 41.53 KB | 41.53 KB | ■ No change |
matrix.js | 143.75 KB | 143.75 KB | ■ No change |
odspClient.js | 520.9 KB | 520.91 KB | ⯅ +12 Bytes |
odspDriver.js | 97.3 KB | 97.3 KB | ■ No change |
odspPrefetchSnapshot.js | 42.16 KB | 42.16 KB | ■ No change |
sharedString.js | 160.27 KB | 160.27 KB | ■ No change |
sharedTree.js | 359.86 KB | 359.86 KB | ■ No change |
Total Size | 3.2 MB | 3.2 MB | ⯅ +42 Bytes |
Baseline commit: 7dea35e751deaab07700bb49b089111b5d66a352
Generated by :no_entry_sign: dangerJS against d203b90e4d729208bfb385e40efb6ebe163c4f65