[pull] main from TryGhost:main - #1445
Merged
Merged
Conversation
…30298) ref INC-323 Under sustained load a Ghost site can queue requests for minutes. By the time a queued request reaches the renderer, the CDN or browser in front of it has usually timed out and destroyed the socket, but Ghost renders it anyway: a full template pass plus any {{#get}} queries the template makes, written to a socket nobody is reading. That waste is self-reinforcing. It occupies the single event loop, which lengthens the queue, which causes the next request to time out. In a recent incident an origin sat pegged at 100% CPU for two hours largely serving requests its CDN had already abandoned. The renderer now bails out when the response socket is already destroyed, checked both before the render starts and after it completes, since a slow render gives the client plenty of time to leave. The status is set to 499 (client closed request) so these are distinguishable in the access log from the phantom 200s they are currently recorded as. Only sockets Node has already destroyed are skipped, so there is no case where a client still waiting for a response gets it dropped.
no ref - using the same tsconfig for both tests and source allowed vitest globals to leak into source code and cause runtime errors - splitting tsconfig into an explicit test config ensures that missing imports correctly flag type errors
no issue Gift redemption should keep a personalized gift addressed to its intended recipient, even when the buyer or another member opens the link while signed in. - Preferred the stored recipient name over the signed-in member name - Retained the member name as a fallback for gifts without a recipient name - Added regression coverage for signed-in viewers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )