This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 484136 - Investigate making the entire JS bundle a worker
Summary: Investigate making the entire JS bundle a worker
Status: RESOLVED WONTFIX
Alias: None
Product: Orion (Archived)
Classification: ECD
Component: JS Tools (show other bugs)
Version: 11.0   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: 12.0   Edit
Assignee: Michael Rennie CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on: 489172 489670
Blocks: 486482
  Show dependency tree
 
Reported: 2015-12-10 13:11 EST by Michael Rennie CLA
Modified: 2016-05-17 11:58 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Rennie CLA 2015-12-10 13:11:01 EST
We tried this once before, but now that the platform has some support for plugins being workers we should try again.

This would save us a tonne of data cloning, and allow us to directly talk to the Tern server.
Comment 1 Michael Rennie CLA 2015-12-10 13:17:30 EST
I made a branch for the experiment:
http://git.eclipse.org/c/orion/org.eclipse.orion.client.git/log/?h=mrennie/jsplugin-worker

There are still quite a few rough spots:
1. we can no longer dark launch things (worker don;t have access to localStorage)
2. we can no longer use metrics - the metrics support references ‘window’ which is not accessible from workers
3. consistent load timeouts in target sites
4. The file client does not work properly in a worker
Comment 2 Michael Rennie CLA 2015-12-31 17:23:50 EST
Some cleanup that would need to happen after the merge:

1. merge all of the message files into one (get rid of workermessages
2. get rid of most of the error handling (its 99% worker-based) and replace with platform calls
Comment 3 Michael Rennie CLA 2015-12-31 17:53:15 EST
(In reply to Michael Rennie from comment #2)
> Some cleanup that would need to happen after the merge:
> 
> 1. merge all of the message files into one (get rid of workermessages
> 2. get rid of most of the error handling (its 99% worker-based) and replace
> with platform calls

3. Remove all the worker-based code from the test suites
Comment 4 Michael Rennie CLA 2016-01-27 14:08:34 EST
(In reply to Michael Rennie from comment #2)
> Some cleanup that would need to happen after the merge:
> 
> 1. merge all of the message files into one (get rid of workermessages

This has been done in:

http://git.eclipse.org/c/orion/org.eclipse.orion.client.git/commit/?id=1fb0c60f8f77c680bf4f9ac96e91449c5d22ea30
Comment 5 Michael Rennie CLA 2016-05-17 11:58:37 EDT
After we had been running with plugins-as-workers for a week or so, there is just too much 'strangeness' to turn this on in reality. For example:

1. if a plugin stops (the worker dies) Orion is completely hosed
2. there are weird unpredictable lags - like validation support (linting) that would sometimes become completely out of sync with the editor contents
3. We lose dark-launch support - there was just no way to set this in the console to have a plugin-worker be able to honour it. We would likely need a pref UI / something else

I am going to close this as wontfix - if, in the future we have worked the kinks out of plugins-as-workers we can reopen.