Skip to content

Commit 722f903

Browse files
committed
fix(swingset): have slogger record replay status for syscalls too
Now all of deliver/deliver-result/syscall/syscall-result will have `replay: true` or `false`, so you can filter out replays statelessly with a tool like jq.
1 parent a567e3a commit 722f903

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

packages/SwingSet/src/kernel/slogger.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ export function makeSlogger(slogCallbacks, writeObj) {
118118
let crankNum;
119119
let deliveryNum;
120120
let syscallNum;
121+
let replay = false;
121122

122123
function assertOldState(exp, msg) {
123124
assert.equal(state, exp, X`vat ${vatID} in ${state}, not ${exp}: ${msg}`);
@@ -149,11 +150,12 @@ export function makeSlogger(slogCallbacks, writeObj) {
149150
}
150151

151152
// kd: kernelDelivery, vd: vatDelivery
152-
function delivery(newCrankNum, newDeliveryNum, kd, vd, replay = false) {
153+
function delivery(newCrankNum, newDeliveryNum, kd, vd, inReplay = false) {
153154
assertOldState(IDLE, 'reentrant delivery?');
154155
state = DELIVERY;
155156
crankNum = newCrankNum;
156157
deliveryNum = newDeliveryNum;
158+
replay = inReplay;
157159
const when = { crankNum, vatID, deliveryNum, replay };
158160
write({ type: 'deliver', ...when, kd, vd });
159161
syscallNum = 0;
@@ -170,7 +172,7 @@ export function makeSlogger(slogCallbacks, writeObj) {
170172
// ksc: kernelSyscallObject, vsc: vatSyscallObject
171173
function syscall(ksc, vsc) {
172174
assertOldState(DELIVERY, 'syscall invoked outside of delivery');
173-
const when = { crankNum, vatID, deliveryNum, syscallNum };
175+
const when = { crankNum, vatID, deliveryNum, syscallNum, replay };
174176
write({ type: 'syscall', ...when, ksc, vsc });
175177
syscallNum += 1;
176178

0 commit comments

Comments
 (0)