Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Frequently hitting 'unreachable' errors with many source maps in memory

Abierto
#476 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de mozilla/source-map

Todos los issues de mozilla/source-map

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.