Skip to content

fix(session): eliminate memory leak in session managers - #53

Merged
DudaGod merged 1 commit into
masterfrom
TESTPLANE-1114.backport_session_listener_cleanup
Sep 24, 2026
Merged

DudaGod merged 1 commit into
masterfrom
TESTPLANE-1114.backport_session_listener_cleanup

Conversation

@DudaGod

@DudaGod DudaGod commented Sep 23, 2026

Copy link
Copy Markdown
Member

I backported webdriverio#14972 to make session managers register and remove event listeners with the same function references. This prevents listeners from accumulating across session reloads and deletion.

I preserved the fork-specific ContextManager behavior while resolving the upstream conflicts: the disabled classic/BiDi result listener remains disabled, and its test reflects the listeners that are actually registered by this fork.

This change intentionally does not handle failures inside the asynchronous navigationStarted listener. I verified separately that the getTree unhandled-rejection scenario still reproduces on top of this backport; that behavior will be addressed in a follow-up.

Upstream: webdriverio#14972

Checks:

  • pnpm compile:all:core
  • pnpm compile:all:main
  • pnpm exec vitest --config vitest.config.ts --run packages/webdriverio/tests/session (3 files, 10 tests)
  • pnpm exec tsc -p packages/webdriverio/tsconfig.json --noEmit
  • pnpm exec eslint on all changed source and test files

@pkg-pr-new

pkg-pr-new Bot commented Sep 23, 2026

Copy link
Copy Markdown

Open in StackBlitz

@testplane/devtools

npm i https://pkg.pr.new/gemini-testing/webdriverio/@testplane/devtools@53

eslint-plugin-wdio

npm i https://pkg.pr.new/gemini-testing/webdriverio/eslint-plugin-wdio@53

@wdio/allure-reporter

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/allure-reporter@53

@wdio/appium-service

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/appium-service@53

@wdio/browser-runner

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/browser-runner@53

@wdio/browserstack-service

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/browserstack-service@53

@wdio/cli

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/cli@53

@wdio/concise-reporter

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/concise-reporter@53

@testplane/wdio-config

npm i https://pkg.pr.new/gemini-testing/webdriverio/@testplane/wdio-config@53

@wdio/cucumber-framework

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/cucumber-framework@53

@wdio/dot-reporter

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/dot-reporter@53

@wdio/firefox-profile-service

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/firefox-profile-service@53

@wdio/globals

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/globals@53

@wdio/jasmine-framework

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/jasmine-framework@53

@wdio/json-reporter

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/json-reporter@53

@wdio/junit-reporter

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/junit-reporter@53

@wdio/lighthouse-service

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/lighthouse-service@53

@wdio/local-runner

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/local-runner@53

@testplane/wdio-logger

npm i https://pkg.pr.new/gemini-testing/webdriverio/@testplane/wdio-logger@53

@wdio/mocha-framework

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/mocha-framework@53

@testplane/wdio-protocols

npm i https://pkg.pr.new/gemini-testing/webdriverio/@testplane/wdio-protocols@53

@testplane/wdio-repl

npm i https://pkg.pr.new/gemini-testing/webdriverio/@testplane/wdio-repl@53

@wdio/reporter

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/reporter@53

@wdio/runner

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/runner@53

@wdio/sauce-service

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/sauce-service@53

@wdio/shared-store-service

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/shared-store-service@53

@wdio/smoke-test-cjs-service

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/smoke-test-cjs-service@53

@wdio/smoke-test-reporter

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/smoke-test-reporter@53

@wdio/smoke-test-service

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/smoke-test-service@53

@wdio/spec-reporter

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/spec-reporter@53

@wdio/static-server-service

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/static-server-service@53

@wdio/sumologic-reporter

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/sumologic-reporter@53

@wdio/testingbot-service

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/testingbot-service@53

@testplane/wdio-types

npm i https://pkg.pr.new/gemini-testing/webdriverio/@testplane/wdio-types@53

@testplane/wdio-utils

npm i https://pkg.pr.new/gemini-testing/webdriverio/@testplane/wdio-utils@53

@wdio/webdriver-mock-service

npm i https://pkg.pr.new/gemini-testing/webdriverio/@wdio/webdriver-mock-service@53

@testplane/webdriver

npm i https://pkg.pr.new/gemini-testing/webdriverio/@testplane/webdriver@53

@testplane/webdriverio

npm i https://pkg.pr.new/gemini-testing/webdriverio/@testplane/webdriverio@53

commit: 2e4dd47

@DudaGod
DudaGod marked this pull request as ready for review September 24, 2026 10:48
@DudaGod
DudaGod merged commit 27d7a83 into master Sep 24, 2026
14 of 36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants