Vm2: Бесконечный цикл в Promise.then зависает весь процесс

Созданный на 12 янв. 2018  ·  4Комментарии  ·  Источник: patriksimek/vm2

Этот код игнорирует таймаут и зависает процесс:

'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')

И Обещание не может быть легко отключено: #74.

Все 4 Комментарий

Readme.md

ВАЖНО: Timeout не эффективен для NodeVM, поэтому он не защищен от while (true) {} или подобного зла.

@awiebe , за исключением того, что я использую VM , а не NodeVM .

К сожалению, это еще одно ограничение функции тайм-аута узла — она не работает для асинхронных вызовов, даже если они выполняются в песочнице.

Эта проблема была автоматически помечена как устаревшая, поскольку в последнее время в ней не было активности. Он будет закрыт, если никакой дальнейшей активности не произойдет. Спасибо за ваш вклад.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

seanc picture seanc  ·  3Комментарии

patriksimek picture patriksimek  ·  5Комментарии

somebody1234 picture somebody1234  ·  4Комментарии

CapacitorSet picture CapacitorSet  ·  13Комментарии

XmiliaH picture XmiliaH  ·  19Комментарии