pulumi/sdk
Sean Gillespie a30dcec9b1
Abnormally resolve all outputs on failed resources (#2350)
When is resource is waiting for its dependencies to resolve, it first
informs the RPC_MANAGER that it intends to do an RPC - this is to
prevent premature termination of the program while RPCs are still in
flight or queued to execute.

However, this is a problem whenever a resource fails to create for
whatever reason. The most common ways for this to happen are for invokes
to fail, resource creation itself to fail, or throwing in an apply.
Today, this causes a deadlock, since all consumers of the failed
resources block forever while never decrementing the RPC count.

This commit addresses the issue by deliberately (abnormally) resolving
all futures that are created in the process of preparing a resource.
This solves the problem by immediately terminating all resources that
are waiting for the failed resource's outputs to resolve - they resolve
immediately, and exceptionally.

The end result is now that, instead of deadlocking, a doomed program now
terminates as expected with a single exception message.
2019-01-14 11:27:21 -08:00
..
go Use Infof instead of Infoln when we have format strings 2018-11-08 14:11:52 -08:00
nodejs Fix error codes for early exceptions (#2337) 2019-01-07 09:59:29 -08:00
proto Fix, formalize and add tests for property rewrites (#2187) 2018-11-12 09:26:31 -08:00
python Abnormally resolve all outputs on failed resources (#2350) 2019-01-14 11:27:21 -08:00
README.md Update stale README 2018-06-30 09:55:12 -07:00

Pulumi Language SDKs

This directory contains the Pulumi SDKs for all supported languages.

Please see the respective READMEs for information about installing and using these libraries:

The language providers work by implementing gRPC interfaces defined in proto/.