github crossplane/upjet v1.10.0

16 hours ago

Critical Race Condition Fix - Conversion Webhooks

Important Stability Improvement: This release resolves a critical race condition in conversion path registration that was causing intermittent failures in provider packages.

Technical Details:

  • Problem: A data race existed in the conversion.Convert method where multiple goroutines could simultaneously modify registered conversion paths during in-place sorting
  • Impact: This race condition was observed in provider packages and could cause unexpected conversion webhook failures
  • Solution: Fixed by creating a copy of registered conversion paths before performing in-place sorting, preventing concurrent modifications

This fix addresses reliability issues that users may have experienced with conversion webhooks, particularly in high-load environments or during rapid resource operations.

Additional Bug Fixes

  • Panic Prevention: Fixed potential panic when ts.FrameworkProvider is nil (#500)
  • Wildcard Conversion: Corrected wildcard expand behavior during resource conversion (#504)
  • Connection Strings: Fixed incorrectly generated connection string maps (#506)
  • External Names: Removed unnecessary ID validation for resources without ID fields (#507)
  • State Management: Added custom state check configuration for Terraform Plugin Framework resources (#515)

What's Changed

  • Validate that ts.FrameworkProvider is not nil to avoid panic by @nikimanoledaki in #500
  • Fix wildcard expand behavior when if the field path is not found during conversion by @sergenyalcin in #504
  • Fix incorrectly generated connection string map by @sergenyalcin in #506
  • remove id validation from setExternalName for resources without id field by @erhancagirici in #507
  • Custom state check configuration for TF plugin framework resources by @sergenyalcin in #515
  • [Backport release-1.10] Fix the race on the registered conversion paths in conversion.Convert by @ulucinar in #552

New Contributors

Full Changelog: v1.9.0...v1.10.0

Don't miss a new upjet release

NewReleases is sending notifications on new releases.