Skip to content

Commit

Permalink
fix(swingset): use provideVatSlogger inside the slogger
Browse files Browse the repository at this point in the history
The old code implemented the various vat-specific slogger methods by using
`vatSlogs.get(vatID)`, which assumes that someone has already created the
vatSlogger. The new+correct approach is to call `provideVatSlogger` each
time, but the slogger internals had not been updated. This fixes the problem,
avoiding a crash when slogging is enabled and a vat operation is performed in
a particular order.
  • Loading branch information
warner committed Jun 11, 2021
1 parent 127e18e commit 7848b16
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions packages/SwingSet/src/kernel/slogger.js
Original file line number Diff line number Diff line change
Expand Up @@ -235,23 +235,23 @@ export function makeSlogger(slogCallbacks, writeObj) {
const slogger = harden({
provideVatSlogger: reg('provideVatSlogger', provideVatSlogger),
vatConsole: reg('vatConsole', (vatID, ...args) =>
vatSlogs.get(vatID).vatConsole(...args),
provideVatSlogger(vatID).vatSlog.vatConsole(...args),
),
startup: reg('startup', (vatID, ...args) =>
vatSlogs.get(vatID).startup(...args),
provideVatSlogger(vatID).vatSlog.startup(...args),
),
replayVatTranscript,
delivery: reg('delivery', (vatID, ...args) =>
vatSlogs.get(vatID).delivery(...args),
provideVatSlogger(vatID).vatSlog.delivery(...args),
),
syscall: reg('syscall', (vatID, ...args) =>
vatSlogs.get(vatID).syscall(...args),
provideVatSlogger(vatID).vatSlog.syscall(...args),
),
changeCList: reg('changeCList', (vatID, ...args) =>
vatSlogs.get(vatID).changeCList(...args),
provideVatSlogger(vatID).vatSlog.changeCList(...args),
),
terminateVat: reg('terminateVat', (vatID, ...args) =>
vatSlogs.get(vatID).terminateVat(...args),
provideVatSlogger(vatID).vatSlog.terminateVat(...args),
),
write,
});
Expand Down

0 comments on commit 7848b16

Please sign in to comment.