I miei lavoratori web Javascript stanno morendo in silenzio in luoghi casuali. Come posso eseguire il debug di questo?

StackOverflow https://stackoverflow.com/questions/4770415

Domanda

Il lavoratore web si ferma solo, senza errori o nulla. Il codice è interamente deterministico, ma morirà in punti diversi nel codice.

Modifica:. Il problema è stato che non era il mantenimento di un riferimento a miei operai, e così sembrava a morire in modo casuale quando sono stati raccolti rifiuti

È stato utile?

Soluzione

Il problema era che non ero il mantenimento di un riferimento a miei operai, e così sembrava a morire in modo casuale quando sono stati garbage collection.

Altri suggerimenti

Ho trovato una situazione simile in Firefox dove il mio operaio sembrava essere in silenzio in mancanza, dopo un numero casuale di chiamate a postMessage. Dopo più di scavo, ho trovato il vero problema. A quanto pare invocazioni del lavoratore nel Firebug è stato il problema. Firebug stava toccando un servizio in cromo di Firefox JS (codice spazio privilegiato) che stava causando il lavoratore a fallire in modo intermittente, si può vedere la patch per qui: https://bugzilla.mozilla.org/show_bug.cgi?id=651980

Fino a quando si fa tutto in accordo con il lavoratore specifica non si dovrebbe vedere questo problema. Per quanto riguarda la correzione di Firebug / Fx, dovrebbe arrivare in Firefox 5 a fine giugno. Spero che questo ti aiuta!

Lo stesso qui con un lavoratore web in silenzio non riuscendo in Firefox, ma non in cromo. Stava usando arborjs.org Chiamato in questo modo:

buildVisualization = function() {
  var sys = arbor.ParticleSystem(200, 200, 0.9); // create the system with sensible repulsion/stiffness/friction 
  sys.parameters({gravity:true}); // use center-gravity to make the graph settle nicely (ymmv) 
  sys.renderer = Renderer("#viewport"); // our newly created renderer will have its .init() method called shortly by sys... 
}

Dove Arbor è l'oggetto utilizzando un WebWorker.

ho aggiunto la linea window.sys = sys; e ora funziona come un fascino sia in Firefox e Chrome.

buildVisualization = function() {
  var sys = arbor.ParticleSystem(200, 200, 0.9); // create the system with sensible repulsion/stiffness/friction
  window.sys = sys;
  sys.parameters({gravity:true}); // use center-gravity to make the graph settle nicely (ymmv)
  sys.renderer = Renderer("#viewport"); // our newly created renderer will have its .init() method called shortly by sys...
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top