Vm2: Loop infinito em Promise.then trava todo o processo

Criado em 12 jan. 2018  ·  4Comentários  ·  Fonte: patriksimek/vm2

Este código desconsidera o tempo limite e trava o processo:

'use strict'

const {VM} = require('vm2')

const vm = new VM({
    timeout: 5000,
})

console.log('Runs')

vm.run('Promise.resolve(42).then(() => {while(true) {}})') // hangs the process

setImmediate(console.log, 'Will never run')

E a Promise não pode ser facilmente desabilitada: #74.

stale

Todos 4 comentários

Leiame.md

IMPORTANTE: o tempo limite não é eficaz para o NodeVM, portanto, não é imune a while (true) {} ou mal semelhante.

@awiebe exceto, estou usando VM , não NodeVM .

Infelizmente, essa é outra limitação do recurso de tempo limite do nó - ele não funciona para chamadas assíncronas, mesmo se estiverem em execução na sandbox.

Este problema foi marcado automaticamente como obsoleto porque não teve atividade recente. Será fechado se não ocorrer mais nenhuma atividade. Obrigado por suas contribuições.

Esta página foi útil?
0 / 5 - 0 avaliações