Vm2: Endlosschleife in Promise. Dann hängt der gesamte Prozess

Erstellt am 12. Jan. 2018  ·  4Kommentare  ·  Quelle: patriksimek/vm2

Dieser Code ignoriert das Timeout und hängt den Prozess auf:

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

Und Promise lässt sich nicht einfach deaktivieren: #74.

stale

Alle 4 Kommentare

Readme.md

WICHTIG: Timeout ist für NodeVM nicht wirksam, daher ist es nicht immun gegen while (true) {} oder ähnliches Übel.

@awiebe außer, ich verwende VM , nicht NodeVM .

Leider ist dies eine weitere Einschränkung der Timeout-Funktion des Knotens – sie funktioniert nicht für asynchrone Aufrufe, selbst wenn sie in der Sandbox ausgeführt werden.

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität gab. Es wird geschlossen, wenn keine weiteren Aktivitäten stattfinden. Vielen Dank für Ihre Beiträge.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen