Skip to content

[Bug Report][3.13.5] VOverlay leaks its router guards (and the parent component) when mounted and unmounted in the same tick #23176

Description

@conorbdaly

Environment

Vuetify Version: 3.13.4
Vue Version: 3.5.27
OS: Windows

Steps to reproduce

  1. Open DevTools → Memory panel directly (avoid the Elements panel — see note below).
  2. Navigate to /#/a?variant=select-big
  3. Take a heap snapshot (or note the JS heap size).
  4. Navigate to /#/b?variant=select-big, then back to /#/a?variant=select-big. This is one full cycle — TestBlock (containing a single with no other content on the page) is fully destroyed and recreated.
  5. Take another heap snapshot.
  6. Repeat step 4-5 several times.

Expected Behavior

Memory usage remains consistent over route change

Actual Behavior

Memory grows by a small, consistent, unbounded amount every single cycle. It does not plateau over many repetitions.

Reproduction Link

https://github.com/conorbdaly/v-select-leak

Other comments

See repo readme for more detail. Note that this is a minimal reproduction, in our production app we are seeing a substantial ~25MB leak when navigating pages with lots of dropdown and dropdown items.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

E: routerT: bugFunctionality that does not work as intended/expected

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions