New issue
Advanced search Search tips

Issue 736187 link

Starred by 1 user

Issue metadata

Status: Duplicate
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Crash on localhost when using IndexedDB

Reported by seandenn...@gmail.com, Jun 23 2017

Issue description

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

Steps to reproduce the problem:
see below

What is the expected behavior?

What went wrong?
I have a local version of my site, the page in question being https://dev.nektro.net/projects/web-notepad/ located at http://localhost:8080/projects/web-notepad/

It is a small app I made to mimic the style of notepad using custom elements v1 and stores "notes" w/ IDB

When I load the page on localhost chrome closes with no console error. On dev.nektro.net it works as intended.

I have another app I've been working on that uses IDB that I experience this same problem. I have another that uses CE w/out IDB and the crash does not occur.

This error just started happening today and my code has not changed since I noticed the error.

Did this work before? Yes 

Does this work in other browsers? N/A

Chrome version: 60.0.3112.40  Channel: beta
OS Version: 10.0
Flash Version:
 
Ok so opening the SPAs up in incognito doesn't make chrome crash but it makes me confused with what could've happened to my IDB since yesterday that's causing the crash when I haven't touched it since yesterday
Cc: rbasuvula@chromium.org
Labels: TE-NeedsTriageHelp
Unable to access the provided local host( http://localhost:8080/projects/web-notepad/) URL by in-house team.Adding respective label to triage the issue further.

Thank You! 

Comment 3 by jsb...@chromium.org, Jun 23 2017

Components: -Blink>Storage Blink>Storage>IndexedDB
Labels: Needs-Feedback
Can you go to chrome://crashes/ and see if there is a crash report ID corresponding to the crash you're seeing?

That will help us diagnose the problem.

Comment 4 by jsb...@chromium.org, Jun 23 2017

Cc: pwnall@chromium.org dmu...@chromium.org

Comment 5 Deleted

Crash ID: crash / fa201f1e40000000
Resubmitting my comment because it auto-deleted it
Project Member

Comment 7 by sheriffbot@chromium.org, Jun 23 2017

Cc: jsb...@chromium.org
Labels: -Needs-Feedback
Thank you for providing more feedback. Adding requester "jsbell@chromium.org" to the cc list and removing "Needs-Feedback" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 8 by pwnall@chromium.org, Jun 23 2017

This appears to be an OOM issue.

Comment 9 by jsb...@chromium.org, Jun 23 2017

Yeah, OOM crash on DB open.

My guess is some unhandled corruption in the database causing us to try and allocate way too much memory. 

It would help us track this down if you can email one of us (e.g. pwnall@chromium.org) the database file. You can download it via chrome://indexeddb-internals/ and look for localhost:8080 and use the 'Download' link to get a ZIP file. Note that this would contain ALL IndexedDB data from 'localhost:8080' so if you have any private data there then please DO NOT send it to us.

To recover, it's likely you can just delete the directory - go to the path listed in the 'internals' page and delete the two directories (.leveldb and .blob) for localhost:8080 then restart Chrome.

Labels: Needs-Feedback
Owner: pwnall@chromium.org
Status: Assigned (was: Unconfirmed)
Passing over to pwnall@ as this appears to be a leveldb issue, pending further investigation.

Just an update, the 2 directories consisted of 5 gb of data. There was another app I was working on along the lines of a music player and just realized I had added 800mb of songs into it (the table was [string:filename,string:name,string:artist,ArrayBuffer:file])

Deleting the folders and restarting Chrome did in fact fix the issue.
And more as a general question, but what is the difference between the leveldb and blob directories? Why does each row in the db need 8mb of metadata?
.leveldb is the basic data (serialized keys and values) or all databases within the origin. .blobs contains File or Blob values which were embedded in values, stored outside the database so the contents can be access asynchronously.

Each record should not require 8mb of metadata; if you can reproduce an unexpected size increase please let us know! 
In the zip I gathered from AppData the 5gb was split as 1gb in /.blob and 4gb in /.leveldb

the leveldb folder contained ~250 .idb files ranging from 3mb to 21mb. Would it be helpful to the team if I uploaded one of those here/emailed to pwnall?
Sadly, a single file wouldn't help too much. All the files would help. If space is the main issue (as opposed to bandwidth), I can share a Drive folder with you that will have enough quota.

Please let me know if you're willing to upload the files (and have the bandwidth / ISP data cap), and I'll work with you to make it happen.
I made a GDrive folder with the IDB data as well as a copy of the music app that I've been working on where I first noticed the issue.

https://drive.google.com/open?id=0B8fIW_a8rjCOeV9QeHJ3eVN6REU
#16: Thank you very much for the data!

I re-uploaded the files to a drive on google.com, for proper permissions and quota -- https://drive.google.com/drive/folders/0B2l2BSf0OTKyMElzalY4WXFfZEE

(non-googlers interested in working on this issue: e-mail me for access)

You can now remove the directory from your drive.

To set expectations: LevelDB memory issues are notoriously difficult to address. We'll do our best, but please don't expect a fix in the near or medium-term future. Once I figure out what happened, I'll try to provide a workaround that you can use to avoid triggering the crash in your apps.
Mergedinto: 810564
Status: Duplicate (was: Assigned)
I'm guessing this was because of the sizes of the items, and our scaling issues for databases > 2GB. Duping to a similar bug. Will be addressed in the coming quarters.
May have also been because I was storing the files in `ArrayBuffer`s instead of `Blob`s

Sign in to add a comment