Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

watch mode triggers unsolicided messages to Workers

Aberta
#65,044 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
55/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
javascript, node.js
Domínio
backend

Direção de pesquisa

Comece executando a reprodução relatada com main.mjs, worker.js e node --watch; em seguida, rastreie o tratamento do worker e do modo watch que emite a mensagem "watch:require". Considera-se concluído quando o worker não recebe nenhuma mensagem não solicitada neste caso e há cobertura de regressão para o comportamento consistentemente reproduzível.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Version

24.19.0, 26.6.0

Platform
Linux 05338a186e89 6.18.33.1-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Fri Jun  5 01:12:21 UTC 2026 x86_64 Linux
Subsystem

worker

What steps will reproduce the bug?

given the following two files:

// main.mjs
import { Worker } from 'worker_threads'
const worker = new Worker('./worker.js')
worker.on('message', console.log)
// worker.js (can be empty)

it can be reproduced using node --watch main.mjs.

The behavior is identical when using an equivalent main.cjs instead.

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

reproduces consistently

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

applications should not receive unexpected (and undocumented) messages by the engine.

What do you see instead?

Unsolicided "watch:require" messages are sent.

Additional information

This issue effects v24 and v26, as can be seen in the following log (tested with node.js v22.23.1, v23.11.1, v24.19.0, v25.9.0, v26.6.0; note that I aborted each run with ctrl+c)

$ docker run --rm -v .:/app -w /app node:22-alpine   node --watch main.mjs
Completed running 'main.mjs'. Waiting for file changes before restarting...

$ docker run --rm -v .:/app -w /app node:23-alpine   node --watch main.mjs                                                 
Completed running 'main.mjs'                  

$ docker run --rm -v .:/app -w /app node:24-alpine   node --watch main.mjs
{ 'watch:require': [ '/app/worker.js' ] }
Completed running 'main.mjs'. Waiting for file changes before restarting...

$ docker run --rm -v .:/app -w /app node:25-alpine   node --watch main.mjs
Completed running 'main.mjs'. Waiting for file changes before restarting...

$ docker run --rm -v .:/app -w /app node:26-alpine   node --watch main.mjs
{ 'watch:require': [ '/app/worker.js' ] }
Completed running 'main.mjs'. Waiting for file changes before restarting...

Though robust message handling code should always validate and check received messages, such unexpected messages can lead to unexpected behavior, e.g. crashes. This unexpected node.js behavior leads to the following issue downstream with an XML schema validating library: https://github.com/noppa/xmllint-wasm/issues/37

Linguagem predominante
JavaScript
Estrelas
122k
Forks
37.4k
Merge médio
4d 2h
PRs com merge (30d)
277

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de nodejs/node

Todas as issues de nodejs/node

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.