Question

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?

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top