adobe / adobe/aio-cli-plugin-app-dev
dev command should run actions in an isolated process
- 主要言語
- JavaScript
- スター
- 2
- フォーク
- 5
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
**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.
コントリビューションガイド
調査の方向性
再現手順に示されている `aio app dev` コマンドとアクション `main` のエントリーポイントから始めます。10秒間のスリープを含めて2つのアクションを同時に実行し、`before` と `after` の間で `process.env.__OW_ACTIVATION_ID` が変化するか確認します。同時実行されたアクションが互いのプロセス環境に影響を与えなくなれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, node.js
- 領域
- cli
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100