serverless / serverless/serverless

sls deploy fails when unrelated file is locked

Open
#7,380 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug cat/packaging
Dominant language
JavaScript
Stars
46.9k
Forks
5.7k
Avg merge
10h 7m
Merged PRs (30d)
57

Description

Bug Report

Description

Using Visual Studio 2019 with a c# project generated by sls create

sls deploy when VS2019 is not running works nicely. When VS2019 has the solution open I get

  Error: EBUSY: resource busy or locked, scandir 'C:\projects\led-monitor\.vs\aws-csharp\v16\Server\sqlite3\db.lock'
      at Package.resolveFilePathsFunction (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\plugins\package\lib\packageService.js:213:8)
      at Package.packageFunction (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\plugins\package\lib\packageService.js:168:17)
      at c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\plugins\package\lib\packageService.js:77:21
      at arrayMap (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\lodash\lodash.js:639:23)
      at Function.map (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\lodash\lodash.js:9554:14)
      at Package.packageService (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\plugins\package\lib\packageService.js:66:29)
  From previous event:
      at Object.package:createDeploymentArtifacts [as hook] (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\plugins\package\package.js:58:71)
      at c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\classes\PluginManager.js:490:55
  From previous event:
      at PluginManager.invoke (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\classes\PluginManager.js:490:22)
      at PluginManager.spawn (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\classes\PluginManager.js:510:17)
      at Deploy.<anonymous> (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\plugins\deploy\deploy.js:115:50)
  From previous event:
      at Object.before:deploy:deploy [as hook] (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\plugins\deploy\deploy.js:100:30)
      at c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\classes\PluginManager.js:490:55
  From previous event:
      at PluginManager.invoke (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\classes\PluginManager.js:490:22)
      at c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\classes\PluginManager.js:525:24
  From previous event:
      at PluginManager.run (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\classes\PluginManager.js:525:8)
      at c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\Serverless.js:133:33
      at processImmediate (internal/timers.js:439:21)
      at process.topLevelDomainCallback (domain.js:131:23)
  From previous event:
      at Serverless.run (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\lib\Serverless.js:120:74)
      at c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\bin\serverless.js:75:30
      at c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\node_modules\fs-extra\node_modules\graceful-fs\graceful-fs.js:136:16
      at c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\node_modules\graceful-fs\graceful-fs.js:136:16
      at c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\node_modules\graceful-fs\graceful-fs.js:57:14
      at FSReqCallback.oncomplete (fs.js:157:23)
  From previous event:
      at c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\bin\serverless.js:75:8
      at processImmediate (internal/timers.js:439:21)
      at process.topLevelDomainCallback (domain.js:131:23)
  From previous event:
      at Object.<anonymous> (c:\Users\Einstein\AppData\Local\Yarn\Data\global\node_modules\serverless\bin\serverless.js:64:4)
      at Module._compile (internal/modules/cjs/loader.js:945:30)
      at Object.Module._extensions..js (internal/modules/cjs/loader.js:962:10)
      at Module.load (internal/modules/cjs/loader.js:798:32)
      at Function.Module._load (internal/modules/cjs/loader.js:711:12)
      at Function.Module.runMain (internal/modules/cjs/loader.js:1014:10)
      at internal/main/run_main_module.js:17:11

serverless.yml

service: my-monitor

provider:
  name: aws
  runtime: dotnetcore2.1

package:
  individually: true
  exclude: 
    - ./.vs

functions:
  auth:
    handler: AuthApi::Api.AuthHandlers::Authorize

  hello:
    handler: AuthApi::Api.UserHandlers::Hello
    events:
      - http:
          path: hello/world
          method: get
          cors: true

    package:
      artifact: bin/release/netcoreapp2.1/hello.zip

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The failure is reported in lib/plugins/package/lib/packageService.js at resolveFilePathsFunction, during package:createDeploymentArtifacts. Reproduce sls deploy with Visual Studio 2019 open and the .vs/.../db.lock present, then compare behavior with the package.exclude ./.vs setting in serverless.yml. Done means deployment packaging completes without scanning the locked unrelated file.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, csharp, javascript, node.js
Domain
cli, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.