@fluidframework/container-runtime 2.1.0-281041 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +4 -4
- package/container-runtime.test-files.tar +0 -0
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +11 -3
- package/dist/containerRuntime.js.map +1 -1
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js +1 -1
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/index.d.ts +1 -1
- package/dist/opLifecycle/index.d.ts.map +1 -1
- package/dist/opLifecycle/index.js +2 -1
- package/dist/opLifecycle/index.js.map +1 -1
- package/dist/opLifecycle/outbox.js +1 -1
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -2
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +22 -10
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +12 -4
- package/lib/containerRuntime.js.map +1 -1
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js +1 -1
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/index.d.ts +1 -1
- package/lib/opLifecycle/index.d.ts.map +1 -1
- package/lib/opLifecycle/index.js +1 -1
- package/lib/opLifecycle/index.js.map +1 -1
- package/lib/opLifecycle/outbox.js +1 -1
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +4 -2
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +20 -9
- package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/package.json +24 -24
- package/src/containerRuntime.ts +15 -3
- package/src/opLifecycle/batchManager.ts +4 -1
- package/src/opLifecycle/index.ts +5 -1
- package/src/opLifecycle/outbox.ts +1 -1
- package/src/opLifecycle/remoteMessageProcessor.ts +33 -10
- package/src/packageVersion.ts +1 -1
package/lib/containerRuntime.js
CHANGED
|
@@ -25,7 +25,7 @@ import { FluidDataStoreRegistry } from "./dataStoreRegistry.js";
|
|
|
25
25
|
import { DeltaManagerPendingOpsProxy, DeltaManagerSummarizerProxy, } from "./deltaManagerProxies.js";
|
|
26
26
|
import { GCNodeType, GarbageCollector, gcGenerationOptionName, } from "./gc/index.js";
|
|
27
27
|
import { ContainerMessageType, } from "./messageTypes.js";
|
|
28
|
-
import { OpCompressor, OpDecompressor, OpGroupingManager, OpSplitter, Outbox, RemoteMessageProcessor, } from "./opLifecycle/index.js";
|
|
28
|
+
import { ensureContentsDeserialized, OpCompressor, OpDecompressor, OpGroupingManager, OpSplitter, Outbox, RemoteMessageProcessor, } from "./opLifecycle/index.js";
|
|
29
29
|
import { pkgVersion } from "./packageVersion.js";
|
|
30
30
|
import { PendingStateManager, } from "./pendingStateManager.js";
|
|
31
31
|
import { ScheduleManager } from "./scheduleManager.js";
|
|
@@ -1464,14 +1464,22 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1464
1464
|
// It may be a legacy runtime message (ie already unpacked and ContainerMessageType)
|
|
1465
1465
|
// or something different, like a system message.
|
|
1466
1466
|
const modernRuntimeMessage = messageArg.type === MessageType.Operation;
|
|
1467
|
+
const savedOp = messageArg.metadata?.savedOp;
|
|
1468
|
+
// There is some ancient back-compat code that we'd like to instrument
|
|
1469
|
+
// to understand if/when it is hit.
|
|
1470
|
+
const logLegacyCase = (codePath) => this.logger.sendTelemetryEvent({
|
|
1471
|
+
eventName: "LegacyMessageFormat",
|
|
1472
|
+
details: { codePath, type: messageArg.type },
|
|
1473
|
+
});
|
|
1467
1474
|
// Do shallow copy of message, as the processing flow will modify it.
|
|
1468
1475
|
// There might be multiple container instances receiving the same message.
|
|
1469
1476
|
// We do not need to make a deep copy. Each layer will just replace message.contents itself,
|
|
1470
1477
|
// but will not modify the contents object (likely it will replace it on the message).
|
|
1471
1478
|
const messageCopy = { ...messageArg };
|
|
1472
|
-
|
|
1479
|
+
// We expect runtime messages to have JSON contents - deserialize it in place.
|
|
1480
|
+
ensureContentsDeserialized(messageCopy, modernRuntimeMessage, logLegacyCase);
|
|
1473
1481
|
if (modernRuntimeMessage) {
|
|
1474
|
-
const processResult = this.remoteMessageProcessor.process(messageCopy);
|
|
1482
|
+
const processResult = this.remoteMessageProcessor.process(messageCopy, logLegacyCase);
|
|
1475
1483
|
if (processResult === undefined) {
|
|
1476
1484
|
// This means the incoming message is an incomplete part of a message or batch
|
|
1477
1485
|
// and we need to process more messages before the rest of the system can understand it.
|
|
@@ -2747,7 +2755,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
2747
2755
|
fetchSource: FetchSource.noCache,
|
|
2748
2756
|
});
|
|
2749
2757
|
const id = snapshot.snapshotTree.id;
|
|
2750
|
-
assert(id !== undefined,
|
|
2758
|
+
assert(id !== undefined, 0x9d0 /* id of the fetched snapshot should be defined */);
|
|
2751
2759
|
props.snapshotVersion = id;
|
|
2752
2760
|
snapshotTree = snapshot.snapshotTree;
|
|
2753
2761
|
}
|