- Published on
Kitchen converge re-run error on Windows against Vagrant with synced folder
The case
Running kitchen converge
on Windows using Chef-DK against a .kitchen.yml vagrant server with a synced folder:
- Succeeds the first time
- Fails every following attempt stating there is "No such file or directory"
Strangely enough:
- The mentioned file does exist (both locally and remote)
- Manually deleting the mounted folder solves the problem
The error
Where kitchen converge
would normally display "Removing non-cookbook files before transfer" it now produces the following errors.
On screen:
-----> Starting Kitchen (v1.2.1)
-----> Converging <default-ubuntu-1404>...
Preparing files for transfer
Resolving cookbook dependencies with Berkshelf 3.1.5...
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: Failed to complete #converge action: [No such file or directory - C:/Users/bravo-kernel/AppData/Local/Temp/default-ubuntu-1404-sandbox-20141014-5236-n5f95k/cookbooks/vagrant-hexo/blogs/default-ubuntu-1404/demo/node_modules/hexo-renderer-stylus/node_modules/nib/node_modules/stylus/node_modules/glob/node_modules/inherits/inherits_browser.js]
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration
**.kitchen/logs/kitchen.log:**
I, [2014-10-14T18:09:33.513287 #5236] INFO -- Kitchen: -----> Starting Kitchen (v1.2.1)
I, [2014-10-14T18:09:37.866034 #5236] INFO -- Kitchen: -----> Converging <default-ubuntu-1404>...
E, [2014-10-14T18:09:44.489123 #5236] ERROR -- Kitchen: ------Exception-------
E, [2014-10-14T18:09:44.489123 #5236] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2014-10-14T18:09:44.489123 #5236] ERROR -- Kitchen: Message: Failed to complete #converge action: [No such file or directory - C:/Users/bravo-kernel/AppData/Local/Temp/default-ubuntu-1404-sandbox-20141014-5236-n5f95k/cookbooks/vagrant-hexo/blogs/default-ubuntu-1404/demo/node_modules/hexo-renderer-stylus/node_modules/nib/node_modules/stylus/node_modules/glob/node_modules/inherits/inherits_browser.js]
E, [2014-10-14T18:09:44.489123 #5236] ERROR -- Kitchen: ---Nested Exception---
E, [2014-10-14T18:09:44.489123 #5236] ERROR -- Kitchen: Class: Errno::ENOENT
E, [2014-10-14T18:09:44.489123 #5236] ERROR -- Kitchen: Message: No such file or directory - C:/Users/bravo-kernel/AppData/Local/Temp/default-ubuntu-1404-sandbox-20141014-5236-n5f95k/cookbooks/vagrant-hexo/blogs/default-ubuntu-1404/demo/node_modules/hexo-renderer-stylus/node_modules/nib/node_modules/stylus/node_modules/glob/node_modules/inherits/inherits_browser.js
E, [2014-10-14T18:09:44.489123 #5236] ERROR -- Kitchen: ------Backtrace-------
The cause
The reason is so obvious one might never consider it at all:
The path to the non-cookbook file to be deleted exceeds the maximum of 255 characters supported by the Windows platform causing the kitchen delete command to fail.
The solution
Since there does not seem to be a solid solution (yet) resort to one of the following workarounds:
- Shortening the path by moving the user's sandbox directory to a higher level (e.g. directly unde r C:)
- Shortening the path by changing the directory structure on the remote node