adobe / adobe/aio-cli-plugin-app-dev

dev command should run actions in an isolated process

Aperta
#110 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
JavaScript
Stelle
2
Fork
5
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

**Describe the bug**
Currently all action code is executed in the same process, which could potentially lead to errors if any action code is modifying process.env it affects the global space.

**To Reproduce**
write 2 actions where 1 is has a sleep function
```
const sleep = async (ms) => new Promise(resolve => setTimeout(resolve, ms))

// main function that will be executed by Adobe I/O Runtime
async function main (params) {

let before = process.env.__OW_ACTIVATION_ID
console.log('before', before)
await sleep(10000)
let after = process.env.__OW_ACTIVATION_ID
console.log('after', after)
return {
statusCode: 200,
body: {
before,
after,
wasCorrupted: (before !== after)
}
}
}

exports.main = main
```

aio app dev and call this action
while it is running, use curl to call the other action

**Expected behavior**
activationId has not changed when sleeper returns
```
time: 10015 ms
{
"before": "d5afdd731a1d2384c55b8bcdb1a453e6",
"after": "d5afdd731a1d2384c55b8bcdb1a453e6",
"wasCorrupted": false
}
```

**Screenshots**
```
time: 10015 ms
{
"before": "d5afdd731a1d2384c55b8bcdb1a453e6",
"after": "f53548458df5870656339859f7af28e6",
"wasCorrupted": true
}
```

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con il comando `aio app dev` e il punto di ingresso dell'azione `main` mostrato nella riproduzione. Esegui due azioni contemporaneamente, inclusa l'attesa di 10 secondi, e osserva se `process.env.__OW_ACTIVATION_ID` cambia tra `before` e `after`. È terminato quando le azioni concorrenti non influenzano più l'ambiente di processo delle altre.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript, node.js
Ambito
cli
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.