0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

~memo~ vagrant up で JSON::ParserError

Last updated at Posted at 2022-02-17

vagrant up 中にパソコンがエラーで強制終了されてしまった後、vagrant upの最後に下記のようなエラーが出るようになりました。

C:/HashiCorp/Vagrant/embedded/mingw64/lib/ruby/2.4.0/json/common.rb:156:in `parse': 751: unexpected token at '' (JSON::ParserError)
        from C:/HashiCorp/Vagrant/embedded/mingw64/lib/ruby/2.4.0/json/common.rb:156:in `parse'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.1/gems/vagrant-2.2.1/lib/vagrant/action/builtin/mixin_synced_folders.rb:237:in `cached_synced_folders'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.1/gems/vagrant-2.2.1/lib/vagrant/action/builtin/mixin_synced_folders.rb:77:in `save_synced_folders'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.1/gems/vagrant-2.2.1/lib/vagrant/action/builtin/synced_folders.rb:129:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.1/gems/vagrant-2.2.1/lib/vagrant/action/warden.rb:34:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.1/gems/vagrant-2.2.1/lib/vagrant/action/builtin/synced_folder_cleanup.rb:28:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.1/gems/vagrant-2.2.1/lib/vagrant/action/warden.rb:34:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.1/gems/vagrant-2.2.1/plugins/synced_folders/nfs/action_cleanup.rb:25:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.1/gems/vagrant-2.2.1/lib/vagrant/action/warden.rb:34:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/2.2.1/gems/vagrant-2.2.1/plugins/providers/virtualbox/action/prepare_nfs_valid_ids.rb:12:in `call'
:
:
(略)

ネットで少し調べたところ、vagrant destroyしてupしたら良いと書いてあったりしたのですが、今までのデータがなくなるのも嫌だし、特に困ることなく普通に使用できていたので見て見ぬふりをしていたのですがw、少し時間ができたので原因調査しました。

common.rbのエラー箇所の前に p caller を書いてvagrant upし辿っていくと、
「synced_foldersファイルがJSON::Parserでパースできない」
とのこと。

synced_foldersは
#{Vagrantfileがあるフォルダ}/.vagrant/machines/#{マシン名}/virtualbox
の中にあり、開いてみるとnull文字のみが書かれていて中身が壊れてしまっていたようでした。

このマシンではsynced_foldersは使用していなかったので、synced_foldersの中にデフォルト設定の

{"virtualbox":{"/vagrant":{"guestpath":"/vagrant","hostpath":"#{Vagrantfileがあるフォルダフルパス}","disabled":false,"__vagrantfile":true}}}

と記述して保存、vagrant upを試すとエラーが出なくなりました♪

同じことはそうそう起きないかなと思うので、このエラー自体の備忘録というよりは、
ちゃんとエラー元追いかけたら解決できることも多いよ(しかもrubyやし)という備忘録です :sweat:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?