Giter Club home page Giter Club logo

Comments (7)

angelozerr avatar angelozerr commented on May 26, 2024

It's very hard to help you, I had never this problem -(

The basic idea is that synchFiles is synchronized to avoid sending several time the same files to tern server. synchFiles is called every time for each feature (completion, validation, hover, hyprlink)

If you have every time this problem, could you investiaget it. Thank's!

from angularjs-eclipse.

vrubezhny avatar vrubezhny commented on May 26, 2024

No, I didn't reproduced this deadlock on the next run (I have had to kill my eclipse when it was deadlocked and restarted it again). But probably it could be eventually reproduced. So, it's better to investigate on this issue... I'll try to do it if I'll have a time and the deadlock will be reproduced.

from angularjs-eclipse.

vrubezhny avatar vrubezhny commented on May 26, 2024

I suppose, that the actual reason was the printing out the whole text of Tern request into the console... I have such a broken line in my console: the text is written as a single line of about 1,4Mb of characters. I've dumped that line into a file and that file cannot be opened by gedit (notepad is the analogue of that editor in windows):

$ ls -alp ~/text
-rw-rw-r--. 1 me me 1440507 Mar 5 02:25 /home/me/text

IMHO, having such lines in Eclipse's console could be a HUGE problem for Eclipse. So, I'd propose to trim the response string that is logged into a Console somehow if this deadlock problem returns.

from angularjs-eclipse.

angelozerr avatar angelozerr commented on May 26, 2024

You are right, tern console should be improved. I had do that quicly (copy/paste from http://ant.apache.org/ivy/ivyde/) because I need that when I developped the tern angular plugin.

It should be very cool if you can provide a patch with your idea about triming otherwise I will do that when I will have time.

from angularjs-eclipse.

vrubezhny avatar vrubezhny commented on May 26, 2024

Looks like I'm a victim of this issue: https://bugs.eclipse.org/bugs/show_bug.cgi?id=421303 - Deadlock in IOConsoleOutputStream.

IOConsoleOutputStream.streamAppended() waits on an object that is never being notified.

In addition to the deadlock, I've got the following exception in my Error Log:

!ENTRY tern.eclipse.ide.core 4 0 2014-03-05 19:06:48.425
!MESSAGE Cannot start node process.

!ENTRY org.eclipse.angularjs.ui 4 0 2014-03-05 19:06:49.462
!MESSAGE Error while tern validator.
!STACK 0
tern.TernException: tern.server.nodejs.process.NodejsProcessException: Cannot start node process.
at tern.server.nodejs.NodejsTernServer.request(NodejsTernServer.java:293)
at tern.eclipse.ide.core.IDETernProject.request(IDETernProject.java:640)
at tern.eclipse.ide.core.IDETernProject.request(IDETernProject.java:634)
at org.eclipse.angularjs.internal.ui.validation.HTMLAngularContentValidator.find(HTMLAngularContentValidator.java:112)
at org.eclipse.angularjs.internal.ui.validation.HTMLAngularContentValidator.doValidate(HTMLAngularContentValidator.java:61)
at org.eclipse.angularjs.internal.ui.validation.AbstractValidator.validate(AbstractValidator.java:144)
at org.eclipse.angularjs.internal.ui.validation.AbstractValidator.validate(AbstractValidator.java:126)
at org.eclipse.angularjs.internal.ui.validation.AbstractValidator.validate(AbstractValidator.java:110)
at org.eclipse.wst.sse.ui.internal.reconcile.validator.ReconcileStepForValidator.validate(ReconcileStepForValidator.java:381)
at org.eclipse.wst.sse.ui.internal.reconcile.validator.ReconcileStepForValidator.reconcileModel(ReconcileStepForValidator.java:259)
at org.eclipse.jface.text.reconciler.AbstractReconcileStep.reconcile(AbstractReconcileStep.java:95)
at org.eclipse.wst.sse.ui.internal.reconcile.validator.ValidatorStrategy.reconcile(ValidatorStrategy.java:269)
at org.eclipse.wst.sse.ui.internal.reconcile.DocumentRegionProcessor.process(DocumentRegionProcessor.java:321)
at org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor.process(StructuredRegionProcessor.java:258)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:691)
Caused by: tern.server.nodejs.process.NodejsProcessException: Cannot start node process.
at tern.server.nodejs.process.NodejsProcess.start(NodejsProcess.java:318)
at tern.server.nodejs.NodejsTernServer.getBaseURL(NodejsTernServer.java:181)
at tern.server.nodejs.NodejsTernServer.makeRequest(NodejsTernServer.java:154)
at tern.server.nodejs.NodejsTernServer.request(NodejsTernServer.java:285)
... 14 more

No changes were made comparing with my yesterday's configuration and the test project. All is the same, but Node.js wasn't able to be started.

from angularjs-eclipse.

vrubezhny avatar vrubezhny commented on May 26, 2024

Stacktrace for today's deadlock: http://ur1.ca/grefu

What's done in my fix: I've just added a Job (Non-UI) that adds a message to the TernConsole without being blocked on UI-thread. So, from any thread we're just sending our text message to the Console, and it puts our message into its document on UI-thread, but our thread doesn't waits for that and doesn't care when actually its message will be delivered to the Console's document.

The console itself uses UI-Job to flush its buffer into the Console Document. The buffer isn't flushed immediately, it's flushed when it's size exceeds 16000 characters. This is why all seemed to work for me until the huge "files" document arrived to be sent to console. If I was waiting for content assist to appear at the moment of such a flushing - the Console's UI-Job was blocked by Content Assist (sitting in UI Thread) which was blocked in its turn by the Validation. That's it.

After my fix all looks working for me.

from angularjs-eclipse.

angelozerr avatar angelozerr commented on May 26, 2024

Patch of Victor fixes the deadlock problem.

from angularjs-eclipse.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.