[SERVER-7776] Review v8 preemption mechanism Created: 27/Nov/12 Updated: 11/Jul/16 Resolved: 21/Dec/12 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | JavaScript |
| Affects Version/s: | None |
| Fix Version/s: | 2.3.2 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Ben Becker | Assignee: | Ben Becker |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||
| Participants: | |||||||||||||||||||||
| Description |
|
Verify the __interruptSpecToIsolate and __interruptSpecToThreadId maps are populated and used correctly; specifically with regards to eval(). KillOp() needs to cleanly preempt any running script. Issues have been observed like isolates being shutdown during native function execution, which may result in trying to dereference an empty handle (e.g. |
| Comments |
| Comment by auto [ 26/Dec/12 ] | ||||||||||||||
|
Author: {u'date': u'2012-12-26T20:20:04Z', u'email': u'ben.becker@10gen.com', u'name': u'Ben Becker'}Message: | ||||||||||||||
| Comment by auto [ 25/Dec/12 ] | ||||||||||||||
|
Author: {u'date': u'2012-12-25T03:40:14Z', u'email': u'ben.becker@10gen.com', u'name': u'Ben Becker'}Message: | ||||||||||||||
| Comment by auto [ 25/Dec/12 ] | ||||||||||||||
|
Author: {u'date': u'2012-12-25T03:29:00Z', u'email': u'ben.becker@10gen.com', u'name': u'Ben Becker'}Message: | ||||||||||||||
| Comment by auto [ 24/Dec/12 ] | ||||||||||||||
|
Author: {u'date': u'2012-12-24T00:34:04Z', u'email': u'ben.becker@10gen.com', u'name': u'Ben Becker'}Message: | ||||||||||||||
| Comment by auto [ 21/Dec/12 ] | ||||||||||||||
|
Author: {u'date': u'2012-12-21T20:57:06Z', u'email': u'ben.becker@10gen.com', u'name': u'Ben Becker'}Message: | ||||||||||||||
| Comment by auto [ 10/Dec/12 ] | ||||||||||||||
|
Author: {u'date': u'2012-12-10T21:53:38Z', u'email': u'ben.becker@10gen.com', u'name': u'Ben Becker'}Message: | ||||||||||||||
| Comment by auto [ 10/Dec/12 ] | ||||||||||||||
|
Author: {u'date': u'2012-12-10T21:21:31Z', u'email': u'ben.becker@10gen.com', u'name': u'Ben Becker'}Message: | ||||||||||||||
| Comment by Ben Becker [ 30/Nov/12 ] | ||||||||||||||
|
We should remove the __interruptSpecToThreadId map as we only use the __interruptSpecToIsolate map. This is primarily for correctness, but also saves us from maintaining a second map. We should also consider making __interruptSpecToIsolate an unordered_map. While this doesn't appear to be an issue, I did notice http://code.google.com/p/v8/issues/detail?id=708. I'm not sure if that's still an issue, but if so, the following function may kill the wrong thread, or never kill a thread:
|