WebSocket when using c# PuppeteerSharp while doing actions

This issue has been tracked since 2022-11-20.

Describe the bug
Connection to chrome is killed because of timeout while actions are takeing place

To Reproduce
using c# with PuppeteerSharp
after CONNECTION_TIMEOUT connection is lost/reset

docker run --rm \
    -p 3000:3000 \
    -e "DEFAULT_LAUNCH_ARGS=[\"--disable-gpu\",\"--disable-software-rasterizer\",\"--no-zygote\",\"--disable-features=IsolateOrigins,site-per-process\",\"--disable-site-isolation-trials\",\"--disable-web-security\",\"--disable-dev-shm-usage\"]" \
    -e "DEFAULT_IGNORE_DEFAULT_ARGS=true" \
    -e "CONNECTION_TIMEOUT=120000" \
    browserless/chrome

If I do not set the timeout the connection is aborted after 60sec (which is the default value)

Expected behavior
timeout only happening when no actions are taking place

Screenshots
This is on ubuntu/docker when connection from win10 maschine

2022-11-20T13:50:33.655Z browserless:chrome-helper Chrome PID: 71
2022-11-20T13:50:33.656Z browserless:chrome-helper Finding prior pages
2022-11-20T13:50:33.678Z browserless:chrome-helper Found 1 pages
2022-11-20T13:50:33.679Z browserless:chrome-helper Setting up page Unknown
2022-11-20T13:50:33.679Z browserless:chrome-helper Injecting download dir "/usr/src/app/workspace"
2022-11-20T13:50:33.679Z browserless:system Chrome launched 179ms
2022-11-20T13:50:33.679Z browserless:system Got chrome instance
2022-11-20T13:50:33.679Z browserless:job RN4N5SAP6DS7VJTRF4BBOMYXA8L9TWYR: Starting session.
2022-11-20T13:50:33.680Z browserless:job RN4N5SAP6DS7VJTRF4BBOMYXA8L9TWYR: Proxying request to /devtools/browser route: ws://127.0.0.1:42151/devtools/browser/4b21ab93-8e16-4a61-a6c4-90154f88a4ab.
2022-11-20T13:50:33.689Z browserless:chrome-helper Setting up file:// protocol request rejection
2022-11-20T13:50:44.428Z browserless:chrome-helper Setting up page Unknown
2022-11-20T13:50:44.428Z browserless:chrome-helper Injecting download dir "/usr/src/app/workspace"
2022-11-20T13:50:44.428Z browserless:chrome-helper Setting up file:// protocol request rejection
2022-11-20T13:51:03.006Z browserless:chrome-helper Setting up page Unknown
2022-11-20T13:51:03.006Z browserless:chrome-helper Injecting download dir "/usr/src/app/workspace"
2022-11-20T13:51:03.007Z browserless:chrome-helper Setting up file:// protocol request rejection
2022-11-20T13:51:26.039Z browserless:chrome-helper Setting up page Unknown
2022-11-20T13:51:26.039Z browserless:chrome-helper Injecting download dir "/usr/src/app/workspace"
2022-11-20T13:51:26.040Z browserless:chrome-helper Setting up file:// protocol request rejection
2022-11-20T13:51:49.917Z browserless:chrome-helper Setting up page Unknown
2022-11-20T13:51:49.917Z browserless:chrome-helper Injecting download dir "/usr/src/app/workspace"
2022-11-20T13:51:49.918Z browserless:chrome-helper Setting up file:// protocol request rejection
2022-11-20T13:52:12.870Z browserless:chrome-helper Setting up page Unknown
2022-11-20T13:52:12.870Z browserless:chrome-helper Injecting download dir "/usr/src/app/workspace"
2022-11-20T13:52:12.870Z browserless:chrome-helper Setting up file:// protocol request rejection
2022-11-20T13:52:33.500Z browserless:server RN4N5SAP6DS7VJTRF4BBOMYXA8L9TWYR: Recording timedout stat.
2022-11-20T13:52:33.500Z browserless:job RN4N5SAP6DS7VJTRF4BBOMYXA8L9TWYR: Job has timed-out, closing the WebSocket.
2022-11-20T13:52:33.501Z browserless:job RN4N5SAP6DS7VJTRF4BBOMYXA8L9TWYR: Cleaning up job
2022-11-20T13:52:33.501Z browserless:job RN4N5SAP6DS7VJTRF4BBOMYXA8L9TWYR: Browser not needed, closing
2022-11-20T13:52:33.501Z browserless:chrome-helper Shutting down browser with close command
2022-11-20T13:52:33.501Z browserless:job RN4N5SAP6DS7VJTRF4BBOMYXA8L9TWYR: Browser cleanup complete.
2022-11-20T13:52:33.502Z browserless:server Current workload complete.
2022-11-20T13:52:33.502Z browserless:chrome-helper Sending SIGKILL signal to browser process 71
2022-11-20T13:52:33.516Z browserless:chrome-helper Removing temp data-dir /tmp/browserless-data-dir-XWK2ER
2022-11-20T13:52:33.599Z browserless:chrome-helper Garbage collecting and removing listeners
2022-11-20T13:52:33.672Z browserless:chrome-helper Temp dir /tmp/browserless-data-dir-XWK2ER removed successfully

this is on minikube (with default params) when connection within the same k8s cluster

2022-11-20T13:19:52.283Z browserless:system Got chrome instance
2022-11-20T13:19:52.283Z browserless:job 6S0QRMHI94MBGR39JNANNQ6U8HU05ECW: Starting session.
2022-11-20T13:19:52.283Z browserless:job 6S0QRMHI94MBGR39JNANNQ6U8HU05ECW: Proxying request to /devtools/browser route: ws://127.0.0.1:34851/devtools/browser/43690537-cf75-42bb-bfc8-2b7966e3dd64.
2022-11-20T13:19:52.284Z browserless:chrome-helper Setting up file:// protocol request rejection
2022-11-20T13:20:03.230Z browserless:chrome-helper Setting up page Unknown
2022-11-20T13:20:03.230Z browserless:chrome-helper Injecting download dir "/usr/src/app/workspace"
2022-11-20T13:20:03.230Z browserless:chrome-helper Setting up file:// protocol request rejection
2022-11-20T13:20:25.086Z browserless:chrome-helper Setting up page Unknown
2022-11-20T13:20:25.086Z browserless:chrome-helper Injecting download dir "/usr/src/app/workspace"
2022-11-20T13:20:25.087Z browserless:chrome-helper Setting up file:// protocol request rejection
2022-11-20T13:20:52.090Z browserless:server 6S0QRMHI94MBGR39JNANNQ6U8HU05ECW: Recording timedout stat.
2022-11-20T13:20:52.090Z browserless:job 6S0QRMHI94MBGR39JNANNQ6U8HU05ECW: Job has timed-out, closing the WebSocket.
2022-11-20T13:20:52.090Z browserless:job 6S0QRMHI94MBGR39JNANNQ6U8HU05ECW: Cleaning up job
2022-11-20T13:20:52.090Z browserless:job 6S0QRMHI94MBGR39JNANNQ6U8HU05ECW: Browser not needed, closing
2022-11-20T13:20:52.090Z browserless:chrome-helper Shutting down browser with close command
2022-11-20T13:20:52.090Z browserless:job 6S0QRMHI94MBGR39JNANNQ6U8HU05ECW: Browser cleanup complete.
2022-11-20T13:20:52.091Z browserless:server Current workload complete.
2022-11-20T13:20:52.091Z browserless:chrome-helper Sending SIGKILL signal to browser process 217
2022-11-20T13:20:52.104Z browserless:chrome-helper Removing temp data-dir /tmp/browserless-data-dir-EQIlao
2022-11-20T13:20:52.107Z browserless:server Error with inbound socket Error [ERR_STREAM_WRITE_AFTER_END]: write after end
Error [ERR_STREAM_WRITE_AFTER_END]: write after end
    at new NodeError (node:internal/errors:387:5)
    at _write (node:internal/streams/writable:321:11)
    at Socket.Writable.write (node:internal/streams/writable:336:10)
    at Socket.ondata (node:internal/streams/readable:754:22)
    at Socket.emit (node:events:513:28)
    at addChunk (node:internal/streams/readable:315:12)
    at readableAddChunk (node:internal/streams/readable:289:9)
    at Socket.Readable.push (node:internal/streams/readable:228:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
2022-11-20T13:20:52.181Z browserless:chrome-helper Garbage collecting and removing listeners
2022-11-20T13:20:52.280Z browserless:chrome-helper Temp dir /tmp/browserless-data-dir-EQIlao removed successfully

Additional context
sounds similar to #228

andyMrtnzP wrote this answer on 2022-12-17

2022-11-20T13:50:33.679Z browserless:job RN4N5SAP6DS7VJTRF4BBOMYXA8L9TWYR: Starting session
....
2022-11-20T13:52:33.500Z browserless:server RN4N5SAP6DS7VJTRF4BBOMYXA8L9TWYR: Recording timedout stat.

Looks like expected behavior, browserless will timeout jobs that meet the CONNECTION_TIMEOUT, regardless of whether the browser is sitting idle or doing something. Are you trying to remove the timeout entirely?

andyMrtnzP wrote this answer on 2023-02-06

Closing this one for lack of activity. Let us know if we should reopen this

More Details About Repo
Owner Name browserless
Repo Name chrome
Full Name browserless/chrome
Language TypeScript
Created Date 2017-11-17
Updated Date 2023-03-22
Star Count 5309
Watcher Count 47
Fork Count 516
Issue Count 29

YOU MAY BE INTERESTED

Issue Title Created Date Updated Date