adobe / aio-cli-plugin-app-dev

App Builder CLI - dev command
Apache License 2.0
0 stars 2 forks source link

dev command should run actions in an isolated process #110

Open purplecabbage opened 1 month ago

purplecabbage commented 1 month ago

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

Smartphone (please complete the following information):

Additional context Add any other context about the problem here.

aiojbot commented 1 month ago

JIRA issue created: https://jira.corp.adobe.com/browse/ACNA-3201