-
Notifications
You must be signed in to change notification settings - Fork 27.2k
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
Fix: Non-writable pages/_app breaks build #24849
Conversation
This comment has been minimized.
This comment has been minimized.
I'm not a Next.js maintainer, but that seems like a great suggestion without any downsides. :) |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
buildDuration | 12s | 11.7s | -264ms |
buildDurationCached | 4s | 3.8s | -194ms |
nodeModulesSize | 46.5 MB | 46.5 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.934 | 1.934 | ✓ |
/ avg req/sec | 1292.65 | 1292.97 | +0.32 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.021 | 0.973 | -0.05 |
/error-in-render avg req/sec | 2447.71 | 2568.59 | +120.88 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
framework-HASH.js gzip | 39.3 kB | 39.3 kB | ✓ |
main-HASH.js gzip | 19.3 kB | 19.3 kB | ✓ |
webpack-HASH.js gzip | 996 B | 996 B | ✓ |
Overall change | 59.6 kB | 59.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.1 kB | 31.1 kB | ✓ |
Overall change | 31.1 kB | 31.1 kB | ✓ |
Client Pages
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.02 kB | 1.02 kB | ✓ |
_error-HASH.js gzip | 3.05 kB | 3.05 kB | ✓ |
amp-HASH.js gzip | 526 B | 526 B | ✓ |
css-HASH.js gzip | 334 B | 334 B | ✓ |
hooks-HASH.js gzip | 890 B | 890 B | ✓ |
index-HASH.js gzip | 262 B | 262 B | ✓ |
link-HASH.js gzip | 1.65 kB | 1.65 kB | ✓ |
routerDirect..HASH.js gzip | 331 B | 331 B | ✓ |
withRouter-HASH.js gzip | 329 B | 329 B | ✓ |
99a142a5cfae..804.css gzip | 125 B | 125 B | ✓ |
Overall change | 8.52 kB | 8.52 kB | ✓ |
Client Build Manifests
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_buildManifest.js gzip | 394 B | 394 B | ✓ |
Overall change | 394 B | 394 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
index.html gzip | 560 B | 560 B | ✓ |
link.html gzip | 569 B | 569 B | ✓ |
withRouter.html gzip | 557 B | 557 B | ✓ |
Overall change | 1.69 kB | 1.69 kB | ✓ |
Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
buildDuration | 14.3s | 14.7s | |
buildDurationCached | 5.5s | 5.6s | |
nodeModulesSize | 46.5 MB | 46.5 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
framework-HASH.js gzip | 39.3 kB | 39.3 kB | ✓ |
main-HASH.js gzip | 19.3 kB | 19.3 kB | ✓ |
webpack-HASH.js gzip | 996 B | 996 B | ✓ |
Overall change | 59.6 kB | 59.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.1 kB | 31.1 kB | ✓ |
Overall change | 31.1 kB | 31.1 kB | ✓ |
Client Pages
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.02 kB | 1.02 kB | ✓ |
_error-HASH.js gzip | 3.05 kB | 3.05 kB | ✓ |
amp-HASH.js gzip | 526 B | 526 B | ✓ |
css-HASH.js gzip | 334 B | 334 B | ✓ |
hooks-HASH.js gzip | 890 B | 890 B | ✓ |
index-HASH.js gzip | 262 B | 262 B | ✓ |
link-HASH.js gzip | 1.65 kB | 1.65 kB | ✓ |
routerDirect..HASH.js gzip | 331 B | 331 B | ✓ |
withRouter-HASH.js gzip | 329 B | 329 B | ✓ |
99a142a5cfae..804.css gzip | 125 B | 125 B | ✓ |
Overall change | 8.52 kB | 8.52 kB | ✓ |
Client Build Manifests
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_buildManifest.js gzip | 394 B | 394 B | ✓ |
Overall change | 394 B | 394 B | ✓ |
Serverless bundles Overall decrease ✓
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_error.js | 1.34 MB | 1.34 MB | -2 B |
404.html | 2.42 kB | 2.42 kB | ✓ |
500.html | 2.41 kB | 2.41 kB | ✓ |
amp.amp.html | 10.8 kB | 10.8 kB | ✓ |
amp.html | 1.61 kB | 1.61 kB | ✓ |
css.html | 1.79 kB | 1.79 kB | ✓ |
hooks.html | 1.67 kB | 1.67 kB | ✓ |
index.js | 1.35 MB | 1.35 MB | ✓ |
link.js | 1.4 MB | 1.4 MB | ✓ |
routerDirect.js | 1.39 MB | 1.39 MB | ✓ |
withRouter.js | 1.39 MB | 1.39 MB | ✓ |
Overall change | 6.9 MB | 6.9 MB | -2 B |
Webpack 4 Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
buildDuration | 10s | 9.8s | -196ms |
buildDurationCached | 4.2s | 4.3s | |
nodeModulesSize | 46.5 MB | 46.5 MB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.975 | 2.049 | |
/ avg req/sec | 1265.84 | 1220.08 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.05 | 1.162 | |
/error-in-render avg req/sec | 2382.03 | 2152.01 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
677f882d2ed8..HASH.js gzip | 13.3 kB | 13.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-HASH.js gzip | 7.19 kB | 7.19 kB | ✓ |
webpack-HASH.js gzip | 751 B | 751 B | ✓ |
Overall change | 60.2 kB | 60.2 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.3 kB | 31.3 kB | ✓ |
Overall change | 31.3 kB | 31.3 kB | ✓ |
Client Pages
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-HASH.js gzip | 3.72 kB | 3.72 kB | ✓ |
amp-HASH.js gzip | 536 B | 536 B | ✓ |
css-HASH.js gzip | 339 B | 339 B | ✓ |
hooks-HASH.js gzip | 887 B | 887 B | ✓ |
index-HASH.js gzip | 227 B | 227 B | ✓ |
link-HASH.js gzip | 1.64 kB | 1.64 kB | ✓ |
routerDirect..HASH.js gzip | 303 B | 303 B | ✓ |
withRouter-HASH.js gzip | 302 B | 302 B | ✓ |
21c68fa65a48..217.css gzip | 125 B | 125 B | ✓ |
Overall change | 9.37 kB | 9.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_buildManifest.js gzip | 420 B | 420 B | ✓ |
Overall change | 420 B | 420 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
index.html gzip | 613 B | 613 B | ✓ |
link.html gzip | 620 B | 620 B | ✓ |
withRouter.html gzip | 607 B | 607 B | ✓ |
Overall change | 1.84 kB | 1.84 kB | ✓ |
Failing test suitesCommit: 3a63eff test/integration/file-serving/test/index.test.js
Expand output● File Serving › dev mode › should prevent traversing with /%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25aftest-file.txt
● File Serving › dev mode › should prevent traversing with /%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259ctest-file.txt
|
This reverts commit 3a63eff.
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
buildDuration | 15.3s | 15.2s | -164ms |
buildDurationCached | 4.9s | 4.7s | -183ms |
nodeModulesSize | 46.5 MB | 46.5 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.659 | 2.668 | |
/ avg req/sec | 940.19 | 937.16 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.697 | 1.63 | -0.07 |
/error-in-render avg req/sec | 1472.89 | 1533.76 | +60.87 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
framework-HASH.js gzip | 39.3 kB | 39.3 kB | ✓ |
main-HASH.js gzip | 19.3 kB | 19.3 kB | ✓ |
webpack-HASH.js gzip | 996 B | 996 B | ✓ |
Overall change | 59.6 kB | 59.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.1 kB | 31.1 kB | ✓ |
Overall change | 31.1 kB | 31.1 kB | ✓ |
Client Pages
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.02 kB | 1.02 kB | ✓ |
_error-HASH.js gzip | 3.05 kB | 3.05 kB | ✓ |
amp-HASH.js gzip | 526 B | 526 B | ✓ |
css-HASH.js gzip | 334 B | 334 B | ✓ |
hooks-HASH.js gzip | 890 B | 890 B | ✓ |
index-HASH.js gzip | 262 B | 262 B | ✓ |
link-HASH.js gzip | 1.65 kB | 1.65 kB | ✓ |
routerDirect..HASH.js gzip | 331 B | 331 B | ✓ |
withRouter-HASH.js gzip | 329 B | 329 B | ✓ |
99a142a5cfae..804.css gzip | 125 B | 125 B | ✓ |
Overall change | 8.52 kB | 8.52 kB | ✓ |
Client Build Manifests
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_buildManifest.js gzip | 394 B | 394 B | ✓ |
Overall change | 394 B | 394 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
index.html gzip | 560 B | 560 B | ✓ |
link.html gzip | 569 B | 569 B | ✓ |
withRouter.html gzip | 557 B | 557 B | ✓ |
Overall change | 1.69 kB | 1.69 kB | ✓ |
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
buildDuration | 18.6s | 18.9s | |
buildDurationCached | 6.9s | 6.8s | -70ms |
nodeModulesSize | 46.5 MB | 46.5 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
framework-HASH.js gzip | 39.3 kB | 39.3 kB | ✓ |
main-HASH.js gzip | 19.3 kB | 19.3 kB | ✓ |
webpack-HASH.js gzip | 996 B | 996 B | ✓ |
Overall change | 59.6 kB | 59.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.1 kB | 31.1 kB | ✓ |
Overall change | 31.1 kB | 31.1 kB | ✓ |
Client Pages
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.02 kB | 1.02 kB | ✓ |
_error-HASH.js gzip | 3.05 kB | 3.05 kB | ✓ |
amp-HASH.js gzip | 526 B | 526 B | ✓ |
css-HASH.js gzip | 334 B | 334 B | ✓ |
hooks-HASH.js gzip | 890 B | 890 B | ✓ |
index-HASH.js gzip | 262 B | 262 B | ✓ |
link-HASH.js gzip | 1.65 kB | 1.65 kB | ✓ |
routerDirect..HASH.js gzip | 331 B | 331 B | ✓ |
withRouter-HASH.js gzip | 329 B | 329 B | ✓ |
99a142a5cfae..804.css gzip | 125 B | 125 B | ✓ |
Overall change | 8.52 kB | 8.52 kB | ✓ |
Client Build Manifests
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_buildManifest.js gzip | 394 B | 394 B | ✓ |
Overall change | 394 B | 394 B | ✓ |
Serverless bundles Overall increase ⚠️
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_error.js | 1.34 MB | 1.34 MB | |
404.html | 2.42 kB | 2.42 kB | ✓ |
500.html | 2.41 kB | 2.41 kB | ✓ |
amp.amp.html | 10.8 kB | 10.8 kB | ✓ |
amp.html | 1.61 kB | 1.61 kB | ✓ |
css.html | 1.79 kB | 1.79 kB | ✓ |
hooks.html | 1.67 kB | 1.67 kB | ✓ |
index.js | 1.35 MB | 1.35 MB | |
link.js | 1.4 MB | 1.4 MB | |
routerDirect.js | 1.39 MB | 1.39 MB | |
withRouter.js | 1.39 MB | 1.39 MB | |
Overall change | 6.9 MB | 6.9 MB |
Webpack 4 Mode (Increase detected ⚠️ )
General Overall increase ⚠️
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
buildDuration | 12.9s | 12.5s | -428ms |
buildDurationCached | 5.3s | 5.3s | -11ms |
nodeModulesSize | 46.5 MB | 46.5 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.662 | 2.639 | -0.02 |
/ avg req/sec | 939.19 | 947.21 | +8.02 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.714 | 1.655 | -0.06 |
/error-in-render avg req/sec | 1458.31 | 1510.35 | +52.04 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
677f882d2ed8..HASH.js gzip | 13.3 kB | 13.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-HASH.js gzip | 7.19 kB | 7.19 kB | ✓ |
webpack-HASH.js gzip | 751 B | 751 B | ✓ |
Overall change | 60.2 kB | 60.2 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31.3 kB | 31.3 kB | ✓ |
Overall change | 31.3 kB | 31.3 kB | ✓ |
Client Pages
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-HASH.js gzip | 3.72 kB | 3.72 kB | ✓ |
amp-HASH.js gzip | 536 B | 536 B | ✓ |
css-HASH.js gzip | 339 B | 339 B | ✓ |
hooks-HASH.js gzip | 887 B | 887 B | ✓ |
index-HASH.js gzip | 227 B | 227 B | ✓ |
link-HASH.js gzip | 1.64 kB | 1.64 kB | ✓ |
routerDirect..HASH.js gzip | 303 B | 303 B | ✓ |
withRouter-HASH.js gzip | 302 B | 302 B | ✓ |
21c68fa65a48..217.css gzip | 125 B | 125 B | ✓ |
Overall change | 9.37 kB | 9.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
_buildManifest.js gzip | 420 B | 420 B | ✓ |
Overall change | 420 B | 420 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | darshkpatel/next.js fix/24772 | Change | |
---|---|---|---|
index.html gzip | 613 B | 613 B | ✓ |
link.html gzip | 620 B | 620 B | ✓ |
withRouter.html gzip | 607 B | 607 B | ✓ |
Overall change | 1.84 kB | 1.84 kB | ✓ |
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Fixes #24772
Added
isReadable
function and switched to usingisReadable
instead ofisWriteable
Not sure if the function is placed in the correct place, let me know if I should move it somewhere else.
Also, nitpick:
import {promises} from 'fs'
hinders readability should I change it to something likeimport {promises as fsPromises} from 'fs'
?Update:
Came across an edge case where ENAMETOOLONG wasn't handled which was causing some tests to fail.
Updated behavior to respond with status code 400 when ENAMETOOLONG is encountered.
Not entirely sure if it's the best way to handle this, let me know if I should use a different approach.