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 serving Images through external rewrite with Image component #21001

Merged
merged 4 commits into from
Apr 17, 2021

Conversation

umarsenpai
Copy link
Contributor

@umarsenpai umarsenpai commented Jan 12, 2021

This PR fixes the issue described here: #20909

The _req passed to getRequestHandler doesn't have on function which is required by http-proxy. It throws the error e.on is not a function. We should also wait for buffer to finish writing before sending the response.

Fixes: #20909
Closes: #24177

@ijjk
Copy link
Member

ijjk commented Jan 12, 2021

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
buildDuration 9.8s 10.1s ⚠️ +320ms
nodeModulesSize 80.9 MB 80.9 MB ⚠️ +348 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
/ failed reqs 0 0
/ total time (seconds) 1.986 1.978 -0.01
/ avg req/sec 1259.08 1263.82 +4.74
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.218 1.267 ⚠️ +0.05
/error-in-render avg req/sec 2052.91 1973.72 ⚠️ -79.19
Client Bundles (main, webpack, commons)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
677f882d2ed8..b025.js gzip 13.1 kB 13.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-e66dcae..6635.js gzip 6.63 kB 6.63 kB
webpack-50be..df5b.js gzip 751 B 751 B
Overall change 59.4 kB 59.4 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
polyfills-81..14d7.js gzip 31.2 kB 31.2 kB
Overall change 31.2 kB 31.2 kB
Client Pages
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
hooks-c71ae4..70cd.js gzip 887 B 887 B
index-bbee2f..528b.js gzip 227 B 227 B
link-7faf09b..eba4.js gzip 1.64 kB 1.64 kB
routerDirect..bf84.js gzip 303 B 303 B
withRouter-a..5826.js gzip 302 B 302 B
Overall change 8.09 kB 8.09 kB
Client Build Manifests
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Rendered Page Sizes
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
index.html gzip 615 B 615 B
link.html gzip 619 B 619 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
buildDuration 12.4s 11.9s -526ms
nodeModulesSize 80.9 MB 80.9 MB ⚠️ +348 B
Client Bundles (main, webpack, commons)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
677f882d2ed8..b025.js gzip 13.1 kB 13.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-e66dcae..6635.js gzip 6.63 kB 6.63 kB
webpack-50be..df5b.js gzip 751 B 751 B
Overall change 59.4 kB 59.4 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
polyfills-81..14d7.js gzip 31.2 kB 31.2 kB
Overall change 31.2 kB 31.2 kB
Client Pages
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
hooks-c71ae4..70cd.js gzip 887 B 887 B
index-bbee2f..528b.js gzip 227 B 227 B
link-7faf09b..eba4.js gzip 1.64 kB 1.64 kB
routerDirect..bf84.js gzip 303 B 303 B
withRouter-a..5826.js gzip 302 B 302 B
Overall change 8.09 kB 8.09 kB
Client Build Manifests
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Serverless bundles
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_error.js 1 MB 1 MB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 1 MB 1 MB
link.js 1.06 MB 1.06 MB
routerDirect.js 1.05 MB 1.05 MB
withRouter.js 1.05 MB 1.05 MB
Overall change 5.18 MB 5.18 MB
Commit: 2dbbe6c

@ijjk
Copy link
Member

ijjk commented Jan 12, 2021

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
buildDuration 13s 13s ⚠️ +22ms
nodeModulesSize 80.9 MB 80.9 MB ⚠️ +348 B
Page Load Tests Overall increase ✓
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
/ failed reqs 0 0
/ total time (seconds) 2.76 2.758 0
/ avg req/sec 905.65 906.36 +0.71
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 2.089 2.024 -0.06
/error-in-render avg req/sec 1196.89 1235.13 +38.24
Client Bundles (main, webpack, commons)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
677f882d2ed8..b025.js gzip 13.1 kB 13.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-e66dcae..6635.js gzip 6.63 kB 6.63 kB
webpack-50be..df5b.js gzip 751 B 751 B
Overall change 59.4 kB 59.4 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
polyfills-81..14d7.js gzip 31.2 kB 31.2 kB
Overall change 31.2 kB 31.2 kB
Client Pages
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
hooks-c71ae4..70cd.js gzip 887 B 887 B
index-bbee2f..528b.js gzip 227 B 227 B
link-7faf09b..eba4.js gzip 1.64 kB 1.64 kB
routerDirect..bf84.js gzip 303 B 303 B
withRouter-a..5826.js gzip 302 B 302 B
Overall change 8.09 kB 8.09 kB
Client Build Manifests
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Rendered Page Sizes
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
index.html gzip 615 B 615 B
link.html gzip 619 B 619 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
buildDuration 15.7s 15.4s -257ms
nodeModulesSize 80.9 MB 80.9 MB ⚠️ +348 B
Client Bundles (main, webpack, commons)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
677f882d2ed8..b025.js gzip 13.1 kB 13.1 kB
framework.HASH.js gzip 39 kB 39 kB
main-e66dcae..6635.js gzip 6.63 kB 6.63 kB
webpack-50be..df5b.js gzip 751 B 751 B
Overall change 59.4 kB 59.4 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
polyfills-81..14d7.js gzip 31.2 kB 31.2 kB
Overall change 31.2 kB 31.2 kB
Client Pages
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
hooks-c71ae4..70cd.js gzip 887 B 887 B
index-bbee2f..528b.js gzip 227 B 227 B
link-7faf09b..eba4.js gzip 1.64 kB 1.64 kB
routerDirect..bf84.js gzip 303 B 303 B
withRouter-a..5826.js gzip 302 B 302 B
Overall change 8.09 kB 8.09 kB
Client Build Manifests
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Serverless bundles
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_error.js 1 MB 1 MB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 1 MB 1 MB
link.js 1.06 MB 1.06 MB
routerDirect.js 1.05 MB 1.05 MB
withRouter.js 1.05 MB 1.05 MB
Overall change 5.18 MB 5.18 MB
Commit: 4cfa34f

…ite-with-image

# Conflicts:
#	packages/next/next-server/server/image-optimizer.ts
@ijjk
Copy link
Member

ijjk commented Apr 17, 2021

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
buildDuration 15.1s 15.3s ⚠️ +230ms
buildDurationCached 4.6s 4.5s -159ms
nodeModulesSize 46.2 MB 46.2 MB ⚠️ +1.38 kB
Page Load Tests Overall increase ✓
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
/ failed reqs 0 0
/ total time (seconds) 2.69 2.744 ⚠️ +0.05
/ avg req/sec 929.36 911.02 ⚠️ -18.34
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.546 1.503 -0.04
/error-in-render avg req/sec 1617.44 1662.81 +45.37
Client Bundles (main, webpack, commons)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
597-HASH.js gzip 13.3 kB 13.3 kB
778-HASH.js gzip 7.05 kB 7.05 kB
framework-HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 151 B 151 B
webpack-HASH.js gzip 993 B 993 B
Overall change 60.8 kB 60.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image 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 umarsenpai/next.js fix-external-rewrite-with-image Change
_app-HASH.js gzip 1.3 kB 1.3 kB
_error-HASH.js gzip 3.68 kB 3.68 kB
amp-HASH.js gzip 558 B 558 B
hooks-HASH.js gzip 924 B 924 B
index-HASH.js gzip 243 B 243 B
link-HASH.js gzip 1.66 kB 1.66 kB
routerDirect..HASH.js gzip 336 B 336 B
withRouter-HASH.js gzip 334 B 334 B
Overall change 9.03 kB 9.03 kB
Client Build Manifests
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_buildManifest.js gzip 349 B 349 B
Overall change 349 B 349 B
Rendered Page Sizes
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
index.html gzip 611 B 611 B
link.html gzip 616 B 616 B
withRouter.html gzip 604 B 604 B
Overall change 1.83 kB 1.83 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
buildDuration 18.9s 19.6s ⚠️ +687ms
buildDurationCached 6.3s 6.5s ⚠️ +214ms
nodeModulesSize 46.2 MB 46.2 MB ⚠️ +1.38 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
597-HASH.js gzip 13.3 kB 13.3 kB
778-HASH.js gzip 7.05 kB 7.05 kB
framework-HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 151 B 151 B
webpack-HASH.js gzip 993 B 993 B
Overall change 60.8 kB 60.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image 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 umarsenpai/next.js fix-external-rewrite-with-image Change
_app-HASH.js gzip 1.3 kB 1.3 kB
_error-HASH.js gzip 3.68 kB 3.68 kB
amp-HASH.js gzip 558 B 558 B
hooks-HASH.js gzip 924 B 924 B
index-HASH.js gzip 243 B 243 B
link-HASH.js gzip 1.66 kB 1.66 kB
routerDirect..HASH.js gzip 336 B 336 B
withRouter-HASH.js gzip 334 B 334 B
Overall change 9.03 kB 9.03 kB
Client Build Manifests
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_buildManifest.js gzip 349 B 349 B
Overall change 349 B 349 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_error.js 1.39 MB 1.39 MB
404.html 2.76 kB 2.76 kB
500.html 2.75 kB 2.75 kB
amp.amp.html 10.7 kB 10.7 kB
amp.html 1.96 kB 1.96 kB
hooks.html 2.01 kB 2.01 kB
index.js 1.39 MB 1.39 MB
link.js 1.45 MB 1.45 MB ⚠️ +2 B
routerDirect.js 1.44 MB 1.44 MB
withRouter.js 1.44 MB 1.44 MB
Overall change 7.14 MB 7.14 MB ⚠️ +2 B

Webpack 4 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
buildDuration 12.7s 12.9s ⚠️ +198ms
buildDurationCached 5.1s 4.9s -189ms
nodeModulesSize 46.2 MB 46.2 MB ⚠️ +1.38 kB
Page Load Tests Overall increase ✓
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
/ failed reqs 0 0
/ total time (seconds) 2.863 2.634 -0.23
/ avg req/sec 873.26 949.02 +75.76
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.567 1.486 -0.08
/error-in-render avg req/sec 1595.81 1682.85 +87.04
Client Bundles (main, webpack, commons)
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
677f882d2ed8..HASH.js gzip 13.4 kB 13.4 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.12 kB 7.12 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 umarsenpai/next.js fix-external-rewrite-with-image 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 umarsenpai/next.js fix-external-rewrite-with-image Change
_app-HASH.js gzip 1.28 kB 1.28 kB
_error-HASH.js gzip 3.71 kB 3.71 kB
amp-HASH.js gzip 536 B 536 B
hooks-HASH.js gzip 888 B 888 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
Overall change 8.89 kB 8.89 kB
Client Build Manifests
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image Change
_buildManifest.js gzip 371 B 371 B
Overall change 371 B 371 B
Rendered Page Sizes
vercel/next.js canary umarsenpai/next.js fix-external-rewrite-with-image 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
Commit: b15af0a

Copy link
Member

@ijjk ijjk left a comment

Choose a reason for hiding this comment

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

Thanks for the PR!

@kodiakhq kodiakhq bot merged commit 9fcfce3 into vercel:canary Apr 17, 2021
SokratisVidros pushed a commit to SokratisVidros/next.js that referenced this pull request Apr 20, 2021
…cel#21001)

This PR fixes the issue described here: vercel#20909

The _req passed to getRequestHandler doesn't have `on` function which is required by http-proxy. It throws the error e.on is not a function. We should also wait for buffer to finish writing before sending the response. 

Fixes: vercel#20909
Closes: vercel#24177
@vercel vercel locked as resolved and limited conversation to collaborators Jan 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

TypeError: e.on is not a function when using example with-zones TypeError: e.on is not a function
2 participants