Skip to content

dev command should run actions in an isolated process #110

@purplecabbage

Description

@purplecabbage

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions