berkshelf / ridley

A reliable Chef API client with a clean syntax
Other
231 stars 85 forks source link

Delete Permission denied with metadata.json during upload #292

Closed carpnick closed 9 years ago

carpnick commented 9 years ago

This is related to PR #281. The below stackstrace happens when uploading to a chef-server on my windows machine. So somehow the file delete call is failing. Only thing I can come up with is the file is still in use. Validated that #281 is in 4.1 locally.

My environment: ChefDK 0.3.5 Windows 7 64 bit

Command and stacktrace performed (scrubbed):

C:\code\Internal\cookbooks\app_service>berks upload --no-freeze
Uploaded app_service (0.0.1) to: 'https://xxx.xxx.xxx.xxx:443/organizations/org'
Uploaded lib_win_nxlog (1.0.0) to: 'https://xxx.xxx.xxx.xxx/organizations/org'

C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/ridley-4.1.0/lib/ridley/resources/cookbook_resource.rb:233:in `delete': Permission denied - C:/Use
rs/ncarpenter/.berkshelf/cookbooks/eis_lib_win_powershell-1.0.0/metadata.json (Errno::EACCES)
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/ridley-4.1.0/lib/ridley/resources/cookbook_resource.rb:233:in `upload'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `public_send'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `dispatch'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:63:in `dispatch'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/tasks/task_thread.rb:21:in `block in create'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/thread_handle.rb:13:in `block in initialize'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/actor_system.rb:32:in `block in get_thread'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/internal_pool.rb:130:in `call'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/internal_pool.rb:130:in `block in create'
        from (celluloid):0:in `remote procedure call'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:92:in `value'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/uploader.rb:54:in `block (2 levels) in upload'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/uploader.rb:50:in `each'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/uploader.rb:50:in `block in upload'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/ridley-4.1.0/lib/ridley/client.rb:38:in `open'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/ridley-4.1.0/lib/ridley.rb:51:in `open'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf.rb:144:in `ridley_connection'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/uploader.rb:49:in `upload'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/uploader.rb:36:in `run'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/berksfile.rb:541:in `upload'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cli.rb:208:in `upload'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cli.rb:52:in `dispatch'
        from C:/opscode/chefdk/embedded/lib/ruby/gems/2.0.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
        from C:/opscode/chefdk/embedded/apps/berkshelf/lib/berkshelf/cli.rb:27:in `execute!'
        from C:/opscode/chefdk/embedded/apps/berkshelf/bin/berks:5:in `<top (required)>'
        from C:/opscode/chefdk/bin/berks:38:in `load'
        from C:/opscode/chefdk/bin/berks:38:in `<main>'
reset commented 9 years ago

@carpnick yeah it's the file is still in use. That's why we've only seen this on Windows.