New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 897644 link

Starred by 2 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug



Sign in to add a comment

<input> leaks memory if <input type="password"> exists

Reported by michael....@uni-due.de, Oct 22

Issue description

UserAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36

Steps to reproduce the problem:
1. website with <input type="password">, static or create with JS
2. Use webserver to load that website
3. create and remove new <input> fields

What is the expected behavior?
Memory usage and number of DOM nodes should stay constant (after GC). Like in "file.PNG" (website loaded with "file:///C:/...").

What went wrong?
Memory usage and number of DOM nodes raises (webserver.PNG).
In my real application the memory usage raises very fast because not just the <input> nodes stay in memory but also all DOM nodes in the "neighborhood". The Memory usage raises permanently until the memory is exhausted.

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: 70.0.3538.67  Channel: stable
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version: 

Same results with Ubuntu 18.04.
 
index.html
520 bytes View Download
webserver.js
143 bytes View Download
file.PNG
84.5 KB View Download
webserver.PNG
85.6 KB View Download
Labels: Needs-Triage-M70
Components: Blink>Forms
Components: -Blink>Forms UI>Browser>Autofill
Cc: krajshree@chromium.org
Labels: Triaged-ET Needs-Feedback
Unable to reproduce the issue on win-7 and win-10 using chrome reported version #70.0.3538.67 and latest canary #72.0.3592.0.
Attached a screen cast for reference.

Following are the steps followed to reproduce the issue.
------------
1. Opened index.html using a webserver.
2. Created and removed new <input> fields.
3. Observed that memory usage and number of DOM nodes stayed constant as expected.

reporter@ - Could you please check the attached screen cast and please let us know if anything missed from our end. Also please check the issue on latest canary #72.0.3592.0 by creating a new profile without any apps and extensions and please let us know if the issue still persist or not.

Thanks...!!

897644.mp4
1.3 MB View Download
Thanks for your reply.
All my tests were done with a profile without any apps or extensions. A college of mine can reproduce the issue on win-10 with chromium #72.0.3593.0.

But after watching the screen cast, I suspect we misunderstood.
For this issue it is mandatory to create and remove <input> FIELDS (not just the user input). I'm doing that with setIntervall for 10 seconds (see script in index.html).
Project Member

Comment 6 by sheriffbot@chromium.org, Oct 26

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
I recorded the screen with Chromium #72.0.3595.2 on Ubuntu 18.04. I created a more complete example which additionally shows leaking is stopped after the password field was removed. The Steps of the test:
0) <0sec: start recording memory
1)  0sec: page refresh
2) GC triggered manually
3)  3sec: start to create and remove <input> fields (interval=300ms)
4) 13sec: stop interval (it runs 10000/300> 33 times)
5) GC triggered manually
6) 16sec: remove password field
7) GC triggered manually
8) 19sec: start to create and remove <input> fields (interval=300ms) (like step 3))
9) 29sec: stop interval (it runs 10000/300> 33 times)
10) GC triggered manually

Results:
- Number of DOM nodes increases from 25 to 73 (step 2 vs step 5).
- Old nodes are not removed after removing tge password field (step 5 vs step 7).
- After removing the password field the number of nodes stay constant 73 (step 7 vs step 10).
inputFieldLeak.mp4
684 KB View Download
index.html
1.1 KB View Download
Cc: phanindra.mandapaka@chromium.org
Labels: Needs-Feedback
As per comment #5 and comment #7, retried the issue on latest chromium 72.0.3610.0 using windows 10 and ubuntu 14.04.
Steps:
-----
1. Launched chromium  
2. Opened given index.html file using a web server 
3. Navigated to Dev tools > Performance > started recording 
4. Tried to click GC trigger manually 
As we are observed that the recording stops at 3 seconds 

@Reporter: Could you please check the attached screen cast and let us know if anything missed from our end. If possible provide any  inputs for further triaging it.


897644.mp4
5.4 MB View Download
Thanks for your reply.
Unfortunately our tests are very different: 
I described 10 steps (about 30 seconds).
Your test ended after step 2. You should use the other record button (and stop the recording manually after step 10).

Project Member

Comment 10 by sheriffbot@chromium.org, Nov 13

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: swarnasree.mukkala@chromium.org
Labels: Target-72 FoundIn-72 M-72 FoundIn-71 FoundIn-70 OS-Linux OS-Mac
Status: Untriaged (was: Unconfirmed)
Able to reproduce the issue on reported chromium version #70.0.3538.0 and latest chromium #72.0.3622.0 using Mac 10.13.6, Windows 10 and Ubuntu 17.10.
Note: As we could not download the branch builds of chromium, hence checked on the above versions.

The behavior is seen from old M-60 builds(#60.0.3112.0). This is a non-regression issue, hence marking it as untriaged and requesting someone from the dev team to look into the issue.
Thanks.!

Sign in to add a comment