Bug #408
Assertion failure in SpiderMonkey
| Status: | Closed | Start date: | 06/28/2010 | |
|---|---|---|---|---|
| Priority: | (P1) Urgent | Due date: | ||
| Assignee: | Michael Troß | % Done: | 0% |
|
| Category: | - | |||
| Target version: | 0.9.0-alpha3 | |||
| Severity: | Normal | Target: | ||
| Story points | - | |||
| Velocity based estimate | - |
Description
Assertion failure: !rt->gcRunning, at jsgc.c:1393
2010-06-27_21:02:17.71287 [2010-06-27 21:02:16][Debug] EventInterpreter: called. 2010-06-27_21:02:17.71657 [2010-06-27 21:02:16][Info] EventInterpreter: Done processing event 'openDoor' 2010-06-27_21:02:17.73206 p%9%e 2010-06-27_21:02:17.73566 2010-06-27_21:02:17.74217 got response 2010-06-27_21:02:17.74803 Assertion failure: !rt->gcRunning, at jsgc.c:1393 2010-06-27_21:02:17.75753 Aborted 2010-06-27_21:02:19.11813 compiled WITH_TESTS 2010-06-27_21:02:19.12329 running tests 2010-06-27_21:02:19.12853 Test setup error: test tree is empty 2010-06-27_21:02:19.14101 done running tests 2010-06-27_21:02:19.80294 [2010-06-27 21:02:19][Info] Setting property '/config/jslogdirectory' to '/var/log/dss' 2010-06-27_21:02:19.81678 [2010-06-27 21:02:19][Info] Loading config file /usr/share/dss/data/config.xml 2010-06-27_21:02:19.82155 [2010-06-27 21:02:19][Info] Loading config directory /usr/share/dss/data/config.d 2010-06-27_21:02:19.83668 [2010-06-27 21:02:19][Info] Loading config from /usr/share/dss/data/config.d/iphone.xml 2010-06-27_21:02:19.84129 [2010-06-27 21:02:19][Info] Loading config from /usr/share/dss/data/config.d/bitinterface.xml 2010-06-27_21:02:19.89173 [2010-06-27 21:02:19][Info] Setting property '/config/jslogdirectory' to '/var/log/dss' 2010-06-27_21:02:20.37295 [2010-06-27 21:02:19][Info] No logfile configured, logging to stdout 2010-06-27_21:02:20.37761 [2010-06-27 21:02:19][Info] DSS starting up.... 2010-06-27_21:02:20.38194 [2010-06-27 21:02:19][Info] DSS v0.8.0-alpha3 (c5963a83348799d4e5fb0fb404163c500b2fe940) (jin@469)
Related issues
Associated revisions
Reworked threading internals of JS bindings
- Each entry point into the ScriptContext needs a ScriptLock of
this context.
- Don't create JSRequests all over the place
- Use JS_SetContextThread on each entry-point (JSContextThread)
- Create local roots when allocating values
- Use reentrant-locks only with properties which need to be
reentrant.
- Fixed tests
History
Updated by Miguel Rodriguez over 1 year ago
- Status changed from New to Assigned
- Assignee set to Patrick Stählin
- Target version set to 0.9.0-alpha1
Updated by Miguel Rodriguez over 1 year ago
- Priority changed from (P3) Normal to (P1) Urgent
Updated by Patrick Stählin over 1 year ago
- Status changed from Assigned to Resolved
- Assignee changed from Patrick Stählin to Michael Troß
Updated by Michael Troß over 1 year ago
- Status changed from Resolved to Assigned
- Assignee changed from Michael Troß to Patrick Stählin
Still present with 0.8.0:
2010-08-03_03:48:47.93463 ....Assertion failure: !rt->gcRunning, at jsgc.c:1393
DSS v0.8.0 (094cf4c2fe89461f96d0ca1bffe1e19aff8df19d)
Updated by Michael Troß over 1 year ago
- Status changed from Assigned to Resolved
- Assignee changed from Patrick Stählin to Michael Troß
resolved by http://gitorious.digitalstrom.org/dss/dss-mainline/merge_requests/143,
has to be verified with 0.9.0-alpha1
Updated by Michael Troß over 1 year ago
- Status changed from Resolved to Assigned
- Assignee changed from Michael Troß to Patrick Stählin
Bug is still present in
DSS v0.9.0-alpha1 (67669fa356fd44250ba56b814fe801363c5b8303)
Assertion failure: !rt->gcRunning, at jsgc.c:1393 Aborted
Updated by Miguel Rodriguez over 1 year ago
- Target version changed from 0.9.0-alpha1 to 0.9.0-alpha3
Updated by Christoph Hofmann over 1 year ago
You can choose how fast the dSS crashes!
I use the following script (which simply does nothing):
root@dSS11-CH-Home:/usr/share/dss/data/subscriptions.d# cat subscriptions_test.xml
<subscriptions version="1">
<subscription event-name="running" handler-name="javascript">
<parameter>
<parameter name="filename">/usr/share/dss/data/scripts/test.js</parameter>
</parameter>
</subscription>
</subscriptions>
root@dSS11-CH-Home:/usr/share/dss/data/scripts# cat test.js
function testListener(f) {
DS485.setCallback(testListener, 0xff, 2 * 1000);
return true;
}
keepContext();
DS485.setCallback(testListener, 0xff, 2 * 1000);
This script lets crash the dSS every 10 seconds. If testListener() returns false instead of true, the dSS crashes every 70 seconds. If return value is false and timeout is 10*1000 (instead of 2*1000), the dSS crashes only every 60-80 minutes.
Updated by Patrick Stählin over 1 year ago
If you are returning true the original handler won't be uninstalled and we'll end up with 2^n listeners after n timeouts, this crashes on my machine after seconds because we can't allocate any threads anymore. I don't think we'll fix that as the future of the DS485 interface is uncertain.
When returning false, I can't reproduce the error on my laptop.
Updated by Patrick Stählin over 1 year ago
This is most probably caused by a non-thread-safe build of SpiderMonkey. See #455 for details.
Updated by Patrick Stählin over 1 year ago
- Status changed from Assigned to Resolved
- Assignee changed from Patrick Stählin to Michael Troß