Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency vapor/vapor to from: "4.113.1" #418

Merged
merged 1 commit into from
Feb 11, 2025

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Feb 11, 2025

This PR contains the following updates:

Package Update Change
vapor/vapor patch from: "4.113.0" -> from: "4.113.1"

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

vapor/vapor (vapor/vapor)

v4.113.1: - Prevent stack overflow by using NIOLock instead of NIOLockedValueBox during service initialization

Compare Source

What's Changed

Prevent stack overflow by using NIOLock instead of NIOLockedValueBox during service initialization by @​MrMage in #​3302

At first glance, one could think that using a NIOLockedValueBox<(@&#8203;Sendable (Application) -> ServiceType)?> for makeService would be sufficient here. However, for some reason, calling self.storage.makeService.withLockedValue({ $0 }) repeatedly in Service.service causes each subsequent call to the function stored inside the locked value to perform one (or several) more “trampoline” function calls, slowing down the execution and eventually leading to a stack overflow. This is why we use a NIOLock here instead; it seems to avoid the { $0 } issue above despite still accessing _makeService from within a closure ({ self._makeService }).

  • Replace NIOLockedValueBox with NIOLock to avoid adding trampoline function calls
  • Add detailed comment explaining the rationale behind the locking mechanism change
  • Simplify service initialization with direct fatalError instead of optional handling
  • Remove redundant nil checks in service getter
This patch was released by @​0xTim

Full Changelog: vapor/vapor@4.113.0...4.113.1


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot enabled auto-merge (squash) February 11, 2025 19:39
@renovate renovate bot merged commit faf29ab into main Feb 11, 2025
3 checks passed
@renovate renovate bot deleted the renovate/vapor-vapor-4.x branch February 11, 2025 19:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants