little-cartoon-10569
10/29/2025, 1:08 AM@pulumi/pulumi 3.202.0 -- when I switch to 3.201.0 the tests run fine, and they time out when using 3.202.0, repeatably. Most tests work; I haven't yet tracked down exactly what's different about the 24 that fail versus the 152 that pass.
My console logging (in setMocks' newResource()) shows that in 3.201.0, all the expect resources are created in `before()`; in 3.202.0, only the top component resource is created, and none of the resources created in their constructors ever get as far as newResource().
When dumping the errors, Pulumi is reporting thousands of promises leaked. But I don't read much into that; whenever there's a timeout failure causing a test abort, I see that.little-cartoon-10569
10/29/2025, 1:09 AMlittle-cartoon-10569
10/29/2025, 1:09 AMlittle-cartoon-10569
10/29/2025, 1:11 AMlittle-cartoon-10569
10/29/2025, 1:24 AMbefore() is not relevant. I can reproduce the problem with all the resources being constructed inside the test.little-cartoon-10569
10/29/2025, 1:27 AMlittle-cartoon-10569
10/29/2025, 2:18 AMechoing-dinner-19531
10/29/2025, 7:03 AMechoing-dinner-19531
10/29/2025, 7:36 AMlittle-cartoon-10569
10/29/2025, 7:20 PMlittle-cartoon-10569
10/29/2025, 7:21 PMlittle-cartoon-10569
10/29/2025, 7:23 PMlittle-cartoon-10569
10/29/2025, 7:23 PMlittle-cartoon-10569
10/29/2025, 9:13 PMlittle-cartoon-10569
10/29/2025, 10:26 PMlittle-cartoon-10569
10/29/2025, 10:38 PMlittle-cartoon-10569
10/29/2025, 11:59 PM{parent: this} to either {parent: undefined} or even {parent: this.vpc} makes the problem go away. It has to be the same parent for both resources.echoing-dinner-19531
10/30/2025, 9:19 AMlittle-cartoon-10569
10/31/2025, 3:00 AMlittle-cartoon-10569
10/31/2025, 3:07 AMlittle-cartoon-10569
10/31/2025, 3:10 AM[components/{go,nodejs}] Send component inputs to be saved in state. This brings NodeJS and Go inline with Python behaviour
https://github.com/pulumi/pulumi/pull/20357That's a big enough change that it deserved a big red warning label, I'm afraid. This is going to require some rewriting in our code.
little-cartoon-10569
10/31/2025, 3:11 AMechoing-dinner-19531
10/31/2025, 8:41 AMbut Pulumi is wanting to save them into state in plain text because they're in an arg. This isn't ideal.That's unexpected. Secrets should still be propagating through args.
That's a big enough change that it deserved a big red warning label, I'm afraid.Yeh seems its mostly gone unnoticed but has bitten a couple of users badly. Our internal testing had gone fine with only thing causing issues was circular references but we recommend against those anyway.
I'm seeing a pile of unexpected updates for my componentThis is actually one of the big wins here, is now the engine can tell that a component is "updated" and so call lifecycle hooks for it.
echoing-dinner-19531
10/31/2025, 9:17 AMechoing-dinner-19531
10/31/2025, 9:58 AMlittle-cartoon-10569
10/31/2025, 10:57 PMIf you need to opt-out you can just change the super call to ComponentConstructor to not pass those args.
This is good to know. This may be the quick way to get deployments happening again, then we can fix the couple of poor dev choices we made years ago afterwards.
Secrets should still be propagating through args.
They are. The code that alarmed me involved passing a plaintext secret into a constructor, which then wrapped it in a secret and put it in a property. The plaintext secret wasn't being put into state previously.
> I'm seeing a pile of unexpected updates for my component
This is actually one of the big wins here, is now the engine can tell that a component is "updated" and so call lifecycle hooks for it.
Good stuff. We don't have any of those, but good to know it'll work if we ever create any :)
No matter how you like to participate in developer communities, Pulumi wants to meet you there. If you want to meet other Pulumi users to share use-cases and best practices, contribute code or documentation, see us at an event, or just tell a story about something cool you did with Pulumi, you are part of our community.
Powered by