Frequently hitting 'unreachable' errors with many source maps in memory
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, rust, wasm
- Área
- tooling
Línea de trabajo
Comienza en lib/source-map-consumer.js, alrededor de BasicSourceMapConsumer._parseMappings, _getMappingsPtr y originalPositionFor; después inspecciona lib/wasm.js y la ruta del fallo de WebAssembly indicada. Reproduce la carga de trabajo con muchos SourceMapConsumers y confirma si un fallo de asignación provoca el error unreachable. Se considera terminado cuando los llamadores pueden distinguir esta condición de memoria y recuperarse descartando los datos almacenados en caché.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I'm operating a service which sourcemaps JavaScript Self-Profiling data from production. We have several versions of our app running concurrently, with different source maps. The service keeps an LRU cache of SourceMapConsumers with a size limit roughly calculated from smc._mappings.length. This lets us keep around 100 SourceMapConsumers active at a time before running into the WebAssembly memory limit.
However, we often see unreachable errors like the following:
RuntimeError: unreachable
at wasm://wasm/0002f63a:wasm-function[54]:0xb65c
at wasm://wasm/0002f63a:wasm-function[22]:0x9647
at BasicSourceMapConsumer._parseMappings (/work/node_modules/source-map/lib/source-map-consumer.js:306:47)
at BasicSourceMapConsumer._getMappingsPtr (/work/node_modules/source-map/lib/source-map-consumer.js:289:12)
at /work/node_modules/source-map/lib/source-map-consumer.js:500:16
at Object.withMappingCallback (/work/node_modules/source-map/lib/wasm.js:125:13)
at BasicSourceMapConsumer.originalPositionFor (/work/node_modules/source-map/lib/source-map-consumer.js:496:16)
at file:///work/dist/mapTrace.js:44:34
at file:///work/dist/mapTrace.js:53:11
at Array.map (<anonymous>)
I believe this indicates an out-of-memory error, where source-map's rust code tries to allocate something but can't.
Could it be possible to gracefully recover from this? I believe Rust doesn't really support graceful recovery from OOM, but perhaps source-map could check whether there's enough memory available to allocate for a SourceMapConsumer before allocating, and throw some other kind of error? That would allow using that signal to drop some old data from our cache.
- Lenguaje dominante
- JavaScript
- Estrellas
- 3.7k
- Forks
- 370
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de mozilla/source-map
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
mozilla/source-map#530 ·
-
allow wasm to be bundled Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
mozilla/source-map#527 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
mozilla/source-map#524 · 6 comentarios ·
-
source map seems like not work, is there some hints from the perspective of source-map tool? Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
mozilla/source-map#516 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
mozilla/source-map#510 · 1 reacción ·
Todos los issues de mozilla/source-map
Issues similares
-
bug confirmed issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
open-webui/open-webui#30750 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Mend: dependency security vulnerability untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100