En una aplicación JavaScript compleja (con jQuery y Ember), el JavaScript ocasionalmente se bloquea aleatoriamente, durante la carga de la página o cuando realizo una acción en la página. El error es el siguiente (screenshot):Google Chrome: Cómo depurar errores aleatorios "Número máximo de la pila de llamadas excedidas"
Uncaught RangeError: Maximum call stack size exceeded
Class.proto
Class.proto
...
... con varias páginas de líneas traza Class.proto
pila, pero no hay información de la fuente/línea en absoluto, incluso en la parte inferior de la traza.
Sé que esto apunta a la recursión infinita, y esto podría ocurrir en el sistema de eventos, pero no hay un punto de partida obvio para mí.
He podido reproducir este solo en Chrome Canary (22.0.1209.0), no Chrome estable o Firefox. La aplicación no está hablando con ningún servicio externo ni realiza ninguna solicitud de Ajax.
Dado que ocurre ocasionalmente, y sin causa aparente, y como no hay un rastro de pila utilizable, tengo problemas para encontrar la causa.
Mi pregunta es: ¿Qué puedo hacer para solucionar este problema?
Probablemente ya haya considerado esto, pero como esto solo está sucediendo en la versión canaria, ¿podría ser un error canario? ¿Has probado las compilaciones beta o dev Chrome para ver si el problema ocurre allí? –
Puede identificar la función problemática en el generador de perfiles. Debe ser la pieza más larga. – katspaugh
Existe una alta probabilidad de que sea un error canario. – JL235