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

Fix error code check in windows #73981

Merged
merged 1 commit into from
Dec 16, 2024
Merged

Fix error code check in windows #73981

merged 1 commit into from
Dec 16, 2024

Conversation

gaojude
Copy link
Contributor

@gaojude gaojude commented Dec 16, 2024

This PR fixes an issue where new error codes were generated when running pnpm dev against the latest canary on Windows machines. The root cause was that the stringified message generated on Windows machines uses \r\n line endings, but the existing error codes from errors.json were generated on non-Windows machines, thus using \n. This diff in the code caused new code to be generated. This PR normalizes linefeeds in both OS to use \n.

Here is an example of an error that would cause the diff. Note that we don't explicitly specify linefeed in the error message, so the linefeed is inferred by OS, thus causing the discrepancy.

const error = new Error(
  `Route ${route} errored during the prospective render. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled.
  
Original Error: ${message}`
)

Found by @Sahil4883 in #73879

@ijjk ijjk added created-by: Next.js team PRs by the Next.js team. Turbopack Related to Turbopack with Next.js. type: next labels Dec 16, 2024
@gaojude gaojude requested a review from eps1lon December 16, 2024 13:41
if *value == error_message {
// Normalize line endings by converting Windows CRLF (\r\n) to Unix LF (\n)
// This ensures the comparison works consistently across different operating systems
if value.replace("\r\n", "\n") == error_message.replace("\r\n", "\n") {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't the value already be normalized here? Otherwise a new error found on windows would be serialized with MS linefeeds

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't the value already be normalized here? Otherwise a new error found on windows would be serialized with MS linefeeds

You're right - let me just muate error_message directly

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested on Windows - no new error codes were generated now.

@ijjk
Copy link
Member

ijjk commented Dec 16, 2024

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js jude/error-code-in-windows Change
buildDuration 17.7s 15.5s N/A
buildDurationCached 14.8s 12.4s N/A
nodeModulesSize 410 MB 410 MB N/A
nextStartRea..uration (ms) 472ms 476ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js jude/error-code-in-windows Change
1187-HASH.js gzip 50.9 kB 50.9 kB N/A
8276.HASH.js gzip 169 B 168 B N/A
8377-HASH.js gzip 5.36 kB 5.36 kB N/A
bccd1874-HASH.js gzip 53 kB 53 kB N/A
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 232 B 235 B N/A
main-HASH.js gzip 34.1 kB 34 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 0 B 0 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js jude/error-code-in-windows Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js jude/error-code-in-windows Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 193 B 193 B
amp-HASH.js gzip 512 B 510 B N/A
css-HASH.js gzip 343 B 342 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB
edge-ssr-HASH.js gzip 265 B 265 B
head-HASH.js gzip 363 B 362 B N/A
hooks-HASH.js gzip 393 B 392 B N/A
image-HASH.js gzip 4.49 kB 4.49 kB N/A
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.35 kB 2.34 kB N/A
routerDirect..HASH.js gzip 328 B 328 B
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 323 B 326 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.59 kB 3.59 kB
Client Build Manifests
vercel/next.js canary vercel/next.js jude/error-code-in-windows Change
_buildManifest.js gzip 749 B 746 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js jude/error-code-in-windows Change
index.html gzip 524 B 524 B
link.html gzip 539 B 538 B N/A
withRouter.html gzip 519 B 520 B N/A
Overall change 524 B 524 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js jude/error-code-in-windows Change
edge-ssr.js gzip 128 kB 128 kB N/A
page.js gzip 204 kB 204 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js jude/error-code-in-windows Change
middleware-b..fest.js gzip 671 B 667 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.2 kB 31.2 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary vercel/next.js jude/error-code-in-windows Change
523-experime...dev.js gzip 322 B 322 B
523.runtime.dev.js gzip 314 B 314 B
app-page-exp...dev.js gzip 323 kB 323 kB
app-page-exp..prod.js gzip 127 kB 127 kB
app-page-tur..prod.js gzip 140 kB 140 kB
app-page-tur..prod.js gzip 135 kB 135 kB
app-page.run...dev.js gzip 314 kB 314 kB
app-page.run..prod.js gzip 123 kB 123 kB
app-route-ex...dev.js gzip 37.4 kB 37.4 kB
app-route-ex..prod.js gzip 25.5 kB 25.5 kB
app-route-tu..prod.js gzip 25.5 kB 25.5 kB
app-route-tu..prod.js gzip 25.3 kB 25.3 kB
app-route.ru...dev.js gzip 39 kB 39 kB
app-route.ru..prod.js gzip 25.3 kB 25.3 kB
pages-api-tu..prod.js gzip 9.69 kB 9.69 kB
pages-api.ru...dev.js gzip 11.6 kB 11.6 kB
pages-api.ru..prod.js gzip 9.68 kB 9.68 kB
pages-turbo...prod.js gzip 21.7 kB 21.7 kB
pages.runtim...dev.js gzip 27.4 kB 27.4 kB
pages.runtim..prod.js gzip 21.7 kB 21.7 kB
server.runti..prod.js gzip 916 kB 916 kB
Overall change 2.36 MB 2.36 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js jude/error-code-in-windows Change
0.pack gzip 2.05 MB 2.06 MB ⚠️ +2.59 kB
index.pack gzip 72.5 kB 73.7 kB ⚠️ +1.2 kB
Overall change 2.13 MB 2.13 MB ⚠️ +3.79 kB
Diff details
Diff for main-HASH.js

Diff too large to display

Commit: 1856496

@gaojude gaojude force-pushed the jude/error-code-in-windows branch 2 times, most recently from 2e7c806 to cf13900 Compare December 16, 2024 14:04
@gaojude gaojude requested a review from eps1lon December 16, 2024 14:09
@gaojude gaojude force-pushed the jude/error-code-in-windows branch from cf13900 to 1856496 Compare December 16, 2024 14:16
@gaojude gaojude merged commit 0f288c4 into canary Dec 16, 2024
129 checks passed
@gaojude gaojude deleted the jude/error-code-in-windows branch December 16, 2024 15:05
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 31, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
created-by: Next.js team PRs by the Next.js team. locked Turbopack Related to Turbopack with Next.js. type: next
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants