Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails: syck has been removed, psych is used instead

I receive this message during capistrano deploy of my rails project:

syck has been removed, psych is used instead

Versions:

gem 'rails', '=3.2.13'
ruby 2.0.0p247

As i know ruby use native yamler "Psych".

There is no any yamler in Gemfile.

In my boot.rb:

require 'yaml'
YAML::ENGINE.yamler = 'psych'

What could be the problem?

like image 665
Andrey Skuratovsky Avatar asked Oct 08 '13 12:10

Andrey Skuratovsky


1 Answers

This probably means that yamler is being assigned in a gem somewhere. You can see how the message is being generated here: https://github.com/ruby/ruby/blob/8a896179ada36b4fc0f50d75500c801a3097924a/lib/yaml.rb

If yamler = 'syck' is called, the warning is produced.

I searched through my gems and found I had an older version of newrelic_rpm which had the following line which was causing the issue: YAML::ENGINE.yamler = 'syck' if defined?(YAML::ENGINE)

Updating the newrelic gem fixed the issue for me. Best of luck.

like image 188
Puhlze Avatar answered Sep 23 '22 13:09

Puhlze