nodejs / nodejs/node

RISC-V: "Illegal instruction" crash when vector instructions detected by V8

Abierto
#64,538 36 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

riscv64 v8 engine
Lenguaje dominante
JavaScript
Estrellas
122k
Forks
37.4k
Merge medio
4 d 2 h
PR fusionados (30 d)
283

Descripción

Version

v26.5.0 (but any v26 and above is affected)

Platform
Linux firefly 6.18.3 #2 SMP PREEMPT_DYNAMIC Wed May 13 16:58:11 CST 2026 riscv64 GNU/Linux
Subsystem

V8

What steps will reproduce the bug?

run npm or any node-gyp on a SpacemiT-K3 board. Also fails in the build-addons step with make run-ci as that executes node-gyp. Other boards such as the SpacemiT-K1 do not show the crash (Both should have vector instructions available)

How often does it reproduce? Is there a required condition?

100% of the time

What is the expected behavior? Why is that the expected behavior?

There should be no crash when running npm

What do you see instead?

Illegal Instruction

Additional information

Based on the fact that https://github.com/sxa/node/commit/1ecdd388f13391c55cffd9aea580770e1d26a952 fixes it seems likely that this was introduced as part of the vector instructions introduced in https://github.com/v8/v8/commit/de361fd2544a89c0c94fd820f987378edbb98fce - I haven't yet tracked it down to any specific operation in that function. At the moment I've also only determined that it fixes the initial crash and hopefully that doesn' uncover more issues.

FYI @luhenry @luyahan @nodejs/platform-riscv64

Split out from https://github.com/nodejs/build/issues/4099#issuecomment-4935757486

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.

Línea de trabajo

Reproducir con npm o node-gyp en un SpacemiT-K3 bajo riscv64 Linux y comparar con un K1; comprobar también la ruta build-addons ejecutada por make run-ci. Leer el cambio de instrucciones vectoriales de V8 de361fd2544a89c0c94fd820f987378edbb98fce junto con el workaround reportado 1ecdd388f13391c55cffd9aea580770e1d26a952. Se considera terminado cuando estos comandos ya no provoquen Illegal Instruction en K3 sin introducir regresiones en K1.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript, linux, node.js
Área
backend, operating-systems
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Activo
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.