fix: EventEmitter memory leak when serving static pages from Node.js middleware#15735
fix: EventEmitter memory leak when serving static pages from Node.js middleware#15735ematipico merged 10 commits intowithastro:mainfrom
Conversation
🦋 Changeset detectedLatest commit: 3180c38 The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
packages/astro/src/core/app/node.ts
Outdated
| * }) | ||
| * ``` | ||
| */ | ||
| export function getAbortControllerCleanup(req?: NodeRequest): (() => void) | undefined { |
There was a problem hiding this comment.
Why was this function moved? It's hard to tell if there were changes
There was a problem hiding this comment.
@ematipico I moved it because it was exported and became part of the public API - that's how the file seemed to be organized (public functions, then internal functions, then deprecated public functions). I can move it back if needed. There shouldn't be any changes to the actual function.
There was a problem hiding this comment.
@ematipico I merged the latest changes (including the new node adapter api) and moved that function back for clarity.
|
|
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [astro](https://astro.build) ([source](https://github.com/withastro/astro/tree/HEAD/packages/astro)) | [`6.0.6` → `6.0.8`](https://renovatebot.com/diffs/npm/astro/6.0.6/6.0.8) |  |  | --- ### Release Notes <details> <summary>withastro/astro (astro)</summary> ### [`v6.0.8`](https://github.com/withastro/astro/blob/HEAD/packages/astro/CHANGELOG.md#608) [Compare Source](https://github.com/withastro/astro/compare/astro@6.0.7...astro@6.0.8) ##### Patch Changes - [#​15978](withastro/astro#15978) [`6d182fe`](withastro/astro@6d182fe) Thanks [@​seroperson](https://github.com/seroperson)! - Fixes a bug where Astro Actions didn't properly support nested object properties, causing problems when users used zod functions such as `superRefine` or `discriminatedUnion`. - [#​16011](withastro/astro#16011) [`e752170`](withastro/astro@e752170) Thanks [@​matthewp](https://github.com/matthewp)! - Fixes a dev server hang on the first request when using the Cloudflare adapter - [#​15997](withastro/astro#15997) [`1fddff7`](withastro/astro@1fddff7) Thanks [@​ematipico](https://github.com/ematipico)! - Fixes `Astro.rewrite()` failing when the target path contains duplicate slashes (e.g. `//about`). The duplicate slashes are now collapsed before URL parsing, preventing them from being interpreted as a protocol-relative URL. ### [`v6.0.7`](https://github.com/withastro/astro/blob/HEAD/packages/astro/CHANGELOG.md#607) [Compare Source](https://github.com/withastro/astro/compare/astro@6.0.6...astro@6.0.7) ##### Patch Changes - [#​15950](withastro/astro#15950) [`acce5e8`](withastro/astro@acce5e8) Thanks [@​matthewp](https://github.com/matthewp)! - Fixes a build regression in projects with multiple frontend integrations where `server:defer` server islands could fail at runtime when all pages are prerendered. - [#​15988](withastro/astro#15988) [`c93b4a0`](withastro/astro@c93b4a0) Thanks [@​ossaidqadri](https://github.com/ossaidqadri)! - Fix styles from dynamically imported components not being injected on first dev server load. - [#​15968](withastro/astro#15968) [`3e7a9d5`](withastro/astro@3e7a9d5) Thanks [@​chasemccoy](https://github.com/chasemccoy)! - Fixes `renderMarkdown` in custom content loaders not resolving images in markdown content. Images referenced in markdown processed by `renderMarkdown` are now correctly optimized, matching the behavior of the built-in `glob()` loader. - [#​15990](withastro/astro#15990) [`1e6017f`](withastro/astro@1e6017f) Thanks [@​ematipico](https://github.com/ematipico)! - Fixes an issue where `Astro.currentLocale` would always be the default locale instead of the actual one when using a dynamic route like `[locale].astro` or `[locale]/index.astro`. It now resolves to the correct locale from the URL. - [#​15990](withastro/astro#15990) [`1e6017f`](withastro/astro@1e6017f) Thanks [@​ematipico](https://github.com/ematipico)! - Fixes an issue where visiting an invalid locale URL (e.g. `/asdf/`) would show the content of a dynamic `[locale]` page with a 404 status code, instead of showing your custom 404 page. Now, the correct 404 page is rendered when the locale in the URL doesn't match any configured locale. - [#​15960](withastro/astro#15960) [`1d84020`](withastro/astro@1d84020) Thanks [@​matthewp](https://github.com/matthewp)! - Fixes Cloudflare dev server islands with `prerenderEnvironment: 'node'` by sharing the serialized manifest encryption key across dev environments and routing server island requests through the SSR runtime. - [#​15735](withastro/astro#15735) [`9685e2d`](withastro/astro@9685e2d) Thanks [@​fa-sharp](https://github.com/fa-sharp)! - Fixes an EventEmitter memory leak when serving static pages from Node.js middleware. When using the middleware handler, requests that were being passed on to Express / Fastify (e.g. static files / pre-rendered pages / etc.) weren't cleaning up socket listeners before calling `next()`, causing a memory leak warning. This fix makes sure to run the cleanup before calling `next()`. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My43Ni4yIiwidXBkYXRlZEluVmVyIjoiNDMuODYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: Renovate Bot <renovate@zarantonello.dev> Co-committed-by: Renovate Bot <renovate@zarantonello.dev>
Fixes #15730
Changes
next(). This fix makes sure to run the cleanup function before callingnext()(I did need to add the cleanup function to the exports from 'astro/app/node', which doesn't feel ideal).Testing
Docs