adobe / brackets

An open source code editor for the web, written in JavaScript, HTML and CSS.
http://brackets.io
MIT License
33.26k stars 7.64k forks source link

Sudden white screen in Bracket when trying to edit any JS file #12617

Open soniajay80 opened 8 years ago

soniajay80 commented 8 years ago

Hi, bracketwhiteissue Bracket editor become white and also not responding when i try to edit some content. It is not a fixed time pattern issue, sometime within 1 or 2 min it will happen but sometime after 10 min,

Below are my environment and Bracket version details:

Bracket Version: Release 1.7 build 1.7.0-16898 (release b0a363b71) OS : Windows 7 Enterprise SP-1 and Windows 8.1 Pro

petetnt commented 8 years ago

Hey there @soniajay80,

next time you are using Brackets, could you open your Developer Tools (from Debug -> Show Developer Tools) if by some chance the developer tools wouldn't hard crash too and we would get some errors to log by. Just keep the window open and then check the Console in the tools when the hard crash occurs.

ilyachch commented 8 years ago

/utils/EventDispatcher.js:125 Possible memory leak: 16 'activeEditorChange' listeners attached to Object {_eventHandlers: Object, _EventDispatcher: true}

some of same arrors were before fail

caleb87 commented 7 years ago

This also happens to me several times per day. I'll try to get a log posted.

surendra-pichkaari commented 7 years ago

Hi, screenshot 34 I kept Developer Tools open like you said and image of console at the time of whitescreen. Hope you can solve this issue.

zaggino commented 7 years ago

Seems like a CEF crash to me :-/

surendra-pichkaari commented 7 years ago

what does that mean?

ficristo commented 7 years ago

CEF stands for Chromium Embedded Framework, you can find it at https://bitbucket.org/chromiumembedded/cef Basically it let us have access to the underlyng OS while building Brackets with web technologies. I hit similar problems when running our test suite, which can use a lot of CPU and memory. It is possible that your workflow could cause a crash of CEF, so maybe we need to update our version.

It would interesting to know if you still hit this problem with https://github.com/zaggino/brackets-electron/ (It is a fork of Brackets which uses a differrent shell, electron instead of CEF)

zaggino commented 7 years ago

Guys I have replicated this with running a script. Basically it dumps about 5 databases to the hard drive in a way that it first deletes the old dumps and then writes them to disk, leading to a lot of deletes and creates reported by file watchers in very short time. Talking about 1000+ files deleted and then created again in less than a second.

The culprit seems to be tons of calls (possibly recursive) to _addSearchResultsForEntry https://github.com/adobe/brackets/blob/master/src/search/FindInFiles.js#L756

This also crashes Brackets-Electron btw

petetnt commented 7 years ago

Nice job debugging the issue @zaggino 👍

gem0303 commented 7 years ago

Constantly getting this crash. As noted, it only seems to occur when editing js files and it happens whether or not I have extensions loaded. Is there any known workaround? I don't want to switch text editors but this workflow is unsustainable. :(

edit: I saw a comment above that (I think) says this error occurs when there's programs using a lot of CPU and memory. I have Adobe Photoshop CC 2017 running while working which is a huge resource hog. I just reduced the amount of RAM Photoshop uses to see if there's any improvement in Brackets.

edit #2: I lowered the RAM and opened a smaller PS file, and was able to work for several hours without interruption. I opened a larger PS file and within 10 minutes had a crash. Pete requested I post my Brackets Health Report.

{
    "uuid": "4bf26be5-5ef6-4e23-98ae-70f077d63d1f",
    "snapshotTime": 1483741610531,
    "os": "win",
    "userAgent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Brackets/1.8.0.0 Chrome/49.0.2623.110 Safari/537.36",
    "osLanguage": "en-GB",
    "bracketsLanguage": "en-GB",
    "bracketsVersion": "1.8.0-17108",
    "fileStats": {
        "openedFileExt": {
            "css": 15,
            "js": 13,
            "html": 8
        },
        "workingSetFileExt": {
            "css": 1
        }
    },
    "ProjectDetails": {
        "prj-1187525310": {
            "numFiles": 14,
            "cacheSize": 118680
        }
    },
    "projectLoadTimes": ":296",
    "fileOpenTimes": ":677",
    "ModuleDepsResolved": 644,
    "AppStartupTime": 2170,
    "prefNodeSearchDisabled": false,
    "prefInstantSearchDisabled": false,
    "installedExtensions": [
        {
            "name": "brackets-semicolon-terminator",
            "version": "0.9.2"
        },
        {
            "name": "raven",
            "version": "1.0.5"
        },
        {
            "name": "brackets-css-color-preview",
            "version": "0.0.7"
        },
        {
            "name": "fdecampredon.brackets-tslint",
            "version": "0.1.1"
        },
        {
            "name": "rhuno.replace.in.selection",
            "version": "1.0.0"
        },
        {
            "name": "work-heatmap",
            "version": "1.1.0"
        },
        {
            "name": "dnbard.extensions-rating",
            "version": "0.7.4"
        },
        {
            "name": "edc.brackets-snippets",
            "version": "1.8.1"
        },
        {
            "name": "jonwolfe.file-tree-exclude",
            "version": "0.6.3"
        },
        {
            "name": "ivogabe.icons",
            "version": "1.5.7"
        },
        {
            "name": "le717.html-skeleton",
            "version": "1.4.3"
        },
        {
            "name": "brackets-emmet",
            "version": "1.2.2"
        }
    ],
    "bracketsTheme": "raven"
}
gem0303 commented 7 years ago

Hi Pete,

I just updated my original comment with my Brackets Health Report.

On Fri, Jan 6, 2017 at 11:01 AM, Pete Nykänen notifications@github.com wrote:

@gem0303 https://github.com/gem0303 sorry to hear that you have issues.

If reducing Adobe Photoshop RAM usage doesn't help, could you post your Health Report (under Help-menu).

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/adobe/brackets/issues/12617#issuecomment-270949809, or mute the thread https://github.com/notifications/unsubscribe-auth/AI8t2y_KYmDWo0HBr9PUjQ8x39qvPX9sks5rPnNMgaJpZM4JUC-d .

petetnt commented 7 years ago

Yeah sorry about that @gem0303, I responded but then remembered that Zaggino had already nailed down the cause. Thanks for your health report though!

Wonder if we should throttle/queue _addSearchResultsForEntry

zaggino commented 7 years ago

@petetnt one of the causes, not all of them, it still happens to me from time to time but I can't replicate consistently. I think tern code analysis running in the worker is to blame.

trevorbest commented 7 years ago

I was getting this a lot yesterday, interestingly, not 100% sure but whilst having a folder open on a network drive rather than local.

gem0303 commented 7 years ago

@ficristo

It would interesting to know if you still hit this problem with https://github.com/zaggino/brackets-electron/

I just installed Brackets Electron and unfortunately still had the white screen crash, as @zaggino mentioned.

Is there anything I can do to fix the crashes? If not, will this issue be resolved in Brackets 1.9 and what is its expected release date?

I'm really bummed to switch away from Brackets because I love it, but I can't be productive with it anymore.

ficristo commented 7 years ago

Could you leave open the developer tools and see if there are some errors when the crash happens? And do you have some step to reproduce? For the network drive I think our current watching mechanism is not good at least on macOS. (Probably we should check if it is a network drive and switch to the polling mode)

zaggino commented 7 years ago

@ficristo I'm 90% sure it's something doing infinite loops in browser process, first guess would be js code hints, we updated it recently and it's using webworker. https://github.com/adobe/brackets/pull/11948 should fix this. If this was the watching mechanism, it wouldn't crash electron, the processes are separate there.

gem0303 commented 7 years ago

Thanks for the quick replies. I'm using Notepad++ at work and it works well enough, but it's no Brackets!

developer tools

@ficristo I've kept it open before and never had any error messages when the crash occurs.

Repro steps

The only 100% consistent thing that crashes it is editing a js file (normally they're rather long files, but I'm not sure if the size of the js file has any impact).

It will crash whether or not Adobe Photoshop is open, whether or not I have a network folder open, and also whether or not I have extensions loaded. I've reinstalled Brackets a couple times, too. I'm running Win 10. Health report is posted several comments up.

I didn't have these issues at all until a month or two ago, so something must've changed with my workflow or work computer to exacerbate the issue. Off the top of my head, my computer has had the following changes recently: -- new graphics card -- BIOS update -- switched to a monitor with 2,560-by-1,440 resolution

Can't think of anything that changed with my workflow or programs, besides normal Adobe or browser updates.

@zaggino Should I try/is it possible to disable js code hints?

zaggino commented 7 years ago

@gem0303 try deleting extensions\default\JavaScriptCodeHints folder from your Brackets installation. Just to see if it helps (you might also want to move it so you can move it back)

gem0303 commented 7 years ago

Apologies for the huge delay in reporting back. I removed the JavaScriptCodeHints folder as @zaggino suggested and have not had any further issues with Brackets crashing. Thanks so much for the help!

gravsten commented 6 years ago

FYI, this problem has become a crucial issue since Brackets 1.11 added several default extensions... leading to repeated hangs whenever one moves from one tab to another (if a JS file), and sometimes a complete "white screen" crash. How can such a productivity killer be allowed and enabled by default in a production software, this is beyond me. My solution (after considering moving to SublimeText 3) was to disable the following default extensions:

Not sure which one is the real culprit, just hoping the next release of Brackets will show some better sense.

moeiscool commented 6 years ago

omg. i lost much changes, very sad i am. can't open logs. i crys. this happen much. i try different text editor now. i know no one cares but i wanted to vent anyway.

petetnt commented 6 years ago

Sorry about that @moeiscool. We do care though. Could you share your Health Report (Help -> Health Report) and details about your operating system?

gravsten commented 6 years ago

After taking a second look at SublimeText 3, I found it uses much less RAM, is much faster, has the much needed multiline Search & Replace (even with RegEx!), no hangs, no white screen and no crash.

This has now become my main development tool, as I only use Brackets for the rare case of editing a RegEx string due to syntax highlighting (SublimeText 3 only highlights matching brackets in code, not in a RegEx string).

Will happily reconsider if/when Brackets solves this now 18-month old bugs that make it repeatedly hang or crash with a "white screen" of death.

petetnt commented 6 years ago

Awesome that you found a tool that works for you! If you want want to help with issues like yours, do share your Health Report and details of your usage and other related things!

Thanks.

moeiscool commented 6 years ago

@gravsten sublime text requires $ which makes it not a choice for everyone. If you think it's cheap that's fine but not everyone is willing to shell out for a text editor. I do see they have no time limit on eval but that's, in a way, stealing if you don't give something back to the devs.

@petetnt here is my health report on the project folder that crashes the most. My other project folders don't seem to be plagued by this.

I should also mention i keep 4 instances of brackets open usually. 1 for each project i am working on.. and repeatedly it's just my project, not my client's... i guess i should be sort of happy about that :P

Oh and brackets is probably the best editor there is. So please fix it! or at least add a recovery method to get our unsaved changes.

[
    {
        "snapshotTime": 1518374104980,
        "os": "win",
        "userAgent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Brackets/1.12.0.0 Chrome/49.0.2623.110 Safari/537.36",
        "osLanguage": "en-US",
        "bracketsLanguage": "en-US",
        "bracketsVersion": "1.12.0-17621",
        "fileStats": {
            "openedFileExt": {
                "ejs": 1,
                "js": 5,
                "sql": 1
            },
            "workingSetFileExt": {
                "sql": 1
            },
            "openedFileEncoding": {
                "UTF-8": 7
            }
        },
        "ProjectDetails": {
            "prj206204125": {
                "numFiles": 200,
                "cacheSize": 7124328
            },
            "prj-1322084079": {
                "numFiles": 2960,
                "cacheSize": 27821052
            },
            "prj2097739149": {
                "numFiles": 3884,
                "cacheSize": 27304234
            }
        },
        "projectLoadTimes": ":179",
        "fileOpenTimes": ":89(358)627[269]:205",
        "ModuleDepsResolved": 716,
        "AppStartupTime": 1839,
        "prefNodeSearchDisabled": false,
        "prefInstantSearchDisabled": false,
        "installedExtensions": [
            {
                "name": "brackets-markdown-preview",
                "version": "2.2.0"
            }
        ],
        "bracketsTheme": "dark-theme",
        "uuid": "6bd5-a232-cc15-18e6-d4a0",
        "olderuuid": "6bd5-a232-cc15-18e6-d4a0"
    },
    {
        "project": "brackets-service",
        "environment": "production",
        "time": "2018-02-11T18:35:07.208Z",
        "ingesttype": "dunamis",
        "data": {
            "event.guid": "471100da-9a5e-43b3-84dd-dbe1504d72bc",
            "event.user_guid": "6bd5-a232-cc15-18e6-d4a0",
            "event.dts_end": "2018-02-11T18:35:07.211Z",
            "event.category": "pingData",
            "event.subcategory": "",
            "event.type": "",
            "event.subtype": "",
            "event.user_agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Brackets/1.12.0.0 Chrome/49.0.2623.110 Safari/537.36",
            "event.language": "en-US",
            "source.name": "1.12.0-17621",
            "source.platform": "win",
            "source.version": "1.12.0-17621"
        }
    }
]
gravsten commented 6 years ago

@moeiscool Brackets was probably the best editor (I could forgive its excessive use of RAM and lack of multiline Search & Replace, considering it's free) until version 1.11 when it started to repeatedly hang on me whenever I switched tab or made any edit in a JS file (presumably due to linting).

My productivity as a developer went through the floor because suddenly any user interaction with Brackets resulted in tens of seconds of waiting for the editor to unfreeze. And that's not even taking into account the occasional white screen of death crash with unsaved changes lost forever.

Unfortunately, version 1.12 didn't fix these critical issues, which makes paying $80 for a commercial editor look very reasonable.

This is to say that I sincerely hope Brackets can fix the aforementioned issues (whether in the editor itself or in any extension peddled by it) before adding new functionality or other improvement. I am definitely in favour of open-source solutions, and it's not just about the $.

moeiscool commented 6 years ago

@gravsten ive tried atom and other editors. Brackets is the only one that makes it easy to get used to programming. It also being the younger sibling of Dreamweaver adds sentiment. I used to use Dreamweaver in elementary school. That alone makes me more productive. The nostalgia.

The number of times it does this white crash thing isn't as much of a problem as lacking features and requiring modification. I think the tool should have the necessary features to make it worth using and easy to get used to. Bugs happen, it's up to the work ethic of the developers to fix it. Seeing as how brackets has come this far and is free I am willing to follow Brackets.

Brackets is a community program. This makes society more productive and i am more willing to donate $80 to the brackets team than pay sublime for anything.

You're absolutely right, its not just about the $.