Bug #436

Assertions in SpiderMonkey caused by call-scene subscription handler

Added by Michael Troß over 1 year ago. Updated 7 months ago.

Status:Closed Start date:08/27/2010
Priority:(P2) High Due date:
Assignee:Christoph Hofmann % Done:

0%

Category:-
Target version:0.9.0-alpha3
Severity:Major Target:
Story points-
Velocity based estimate-

Description

A subscription of the kind

  <subscription event-name="callScene" handler-name="javascript">
    <parameter>
      <parameter name="filename">callScene-email.js</parameter>
    </parameter>
  </subscription>

with a script like

var sBody="";
var sSubject="(digitalSTROM) Szenenaufruf";
var fHandle=false;

switch (raisedEvent.parameter.sceneID)
{
        case "0":
                sBody="Szene 0 wurde ausgeloest\n";
                sBody+="Raum: " + getProperty("/apartment/zones/zone" + raisedEvent.parameter.zoneID + "/name");
        break;
        case "5":
                sBody="Szene 1 wurde ausgeloest\n";
                sBody+="Raum: " + getProperty("/apartment/zones/zone" + raisedEvent.parameter.zoneID + "/name");
        break;
        case "40": //autostandby
                sBody="Autostandby wurde ausgeloest\n";
                sBody+="Raum: " + getProperty("/apartment/zones/zone" + raisedEvent.parameter.zoneID + "/name");
                fHandle=true;
        break;

        case "41":  //klingel
                sBody="Die Klingel wurde ausgeloest";
                fHandle=true;
        break;

        case "42":  //Alarm
        break;

        case "43":  //Panic
        break;
}

if(fHandle)
{
        var oParameter={};
        oParameter.email_server="x.y.z";
        oParameter.login="login";
        oParameter.password="password";
        oParameter.sender="sender";
        oParameter.receiver="receiver";
        oParameter.subject=sSubject;
        oParameter.body=sBody;

        var evt = event("forwardEmail",oParameter );
        evt.raise();
}

genereates SpiderMonkey assertion failures and leads to dss aborts.


Related issues

related to Bug #408: Assertion failure in SpiderMonkey Closed 06/28/2010

Associated revisions

Revision 2f3d0ff6
Added by Patrick Stählin over 1 year ago

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

Closes #408, #436
References #455

History

Updated by Miguel Rodriguez over 1 year ago

  • Status changed from New to Assigned
  • Assignee set to Patrick Stählin
  • Priority changed from (P3) Normal to (P2) High
  • Target version set to 0.9.0-alpha3
  • Severity changed from Normal to Major

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 Christoph Hofmann

Updated by Christoph Hofmann 9 months ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF