Pregunta

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?

¿Fue útil?

Solución

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top