pulumi/pkg/backend
Will Jones 60a10a6f8e
Persist metadata about snapshot integrity errors (#17291)
In #17047, we introduced a panic-like error banner for snapshot
integrity issues. In #17144, we improved this to prompt users to provide
information about the operation that *wrote* an invalid snapshot, should
the error be encountered on a later *read*. In this commit, we take
things one step further, persisting the writing command to the snapshot
as metadata in the event that we are about to write an invalid snapshot.
Should an error be encountered on a later read, we are now able to pluck
the metadata out of the snapshot and include it in the error banner
ourselves. This should hopefully further improve the situation when it
comes to tracking down bugs in the engine.

Note that, like all changes to snapshot persistence, new snapshot fields
(in this case, the metadata we now collect) may be clobbered by older
versions of the CLI. That is, if a latest-version CLI writes metadata, a
version older than this commit may erase it, by virtue of ignoring data
it does not understand during deserialization. While unfortunate, this
is also useful information in the event a user raises an issue, since it
(in theory) tells us that a version older than that containing this
commit was involved in the process, which may help diagnosis.
2024-11-06 17:35:27 +00:00
..
display Enable some more linting rules (#17456) 2024-10-03 17:37:13 +00:00
diy Persist metadata about snapshot integrity errors (#17291) 2024-11-06 17:35:27 +00:00
filestate Rename filestate to DIY (#15314) 2024-01-30 15:53:10 +00:00
httpstate Persist metadata about snapshot integrity errors (#17291) 2024-11-06 17:35:27 +00:00
state [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
apply.go Fix rendering of output events in rendering update diffs (#17029) 2024-08-27 18:37:03 +00:00
apply_test.go Make `engine.NewEvent` type safe (#14590) 2023-11-16 16:54:03 +00:00
backend.go Respect existing stack configuration when initialising secret managers (#17465) 2024-10-03 15:40:39 +00:00
backend_test.go Allow anything in resource names (#14107) 2023-11-20 08:59:00 +00:00
cancellation_scope.go Allow cancelling operations with SIGTERM (#17467) 2024-10-07 13:49:04 +00:00
doc.go Document Go packages (#6009) 2021-01-11 11:07:59 -07:00
errors.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
inmemoryPersister.go Revert "Revert "Run integration tests and dev builds with race detection" (#15998)" (#16148) 2024-05-09 16:15:41 +00:00
login_manager.go Add LoginManager to backend package (#17199) 2024-09-10 09:04:49 +00:00
mock.go Respect existing stack configuration when initialising secret managers (#17465) 2024-10-03 15:40:39 +00:00
policypack.go Replace `result.Result` with native errors (#17044) 2024-08-22 14:39:59 +00:00
query.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
snapshot.go Persist metadata about snapshot integrity errors (#17291) 2024-11-06 17:35:27 +00:00
snapshot_test.go Persist metadata about snapshot integrity errors (#17291) 2024-11-06 17:35:27 +00:00
stack.go Allow `Backend`s to define `DefaultSecretManager`s (#17370) 2024-09-26 08:52:24 +00:00
updates.go [cli] Include config from ESC in `pulumi config` (#14560) 2023-11-21 10:44:45 +00:00
watch.go Enable some more linting rules (#17456) 2024-10-03 17:37:13 +00:00