Starting rails server on 3.0.5 gives Psych::SyntaxError - Parsing YAML

Hello,

I just updated to using Rails 3.0.5 and was on Ruby 1.9.2p0 but replaced that with 1.9.2p180 to try and get the over problem below but am unable to. After creating a new project and adding a few gems to Gemfile and bundle install (and update to make sure) when I try to start the server with "rails s" command I get the error below - no other controllers/models/views added.

I have Googled around and I find two things

1. Suggestion to add the two lines below to the top of boot.rb file

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

.... but it doesn't work ... gives another YAML parsing error

2. I see in some posts/places that the issue has been identified and fixed and someone (Aaron?) is in the process of updating the releases - so I did a bundle update to make sure I have the latest stuff and got the latest Ruby version. Still get the error below.

It would seem like I am missing something simple and obvious here otherwise I would expect lot more posts on this topic in this forum but I don't see any here. Thanks for your help and pointers to get over this - I am in a Windows 7 box. If I need to revert back to some older version of Ruby/Rails to get past this error I am happy to do that - just starting out migrating from 2.3.8 to 3.0.

Thanks, -S

C:/Ruby192/lib/ruby/1.9.1/psych.rb:148:in `parse': couldn't parse YAML at line 36 column 5 (Psych::SyntaxError)         from C:/Ruby192/lib/ruby/1.9.1/psych.rb:148:in `parse_stream'         from C:/Ruby192/lib/ruby/1.9.1/psych.rb:119:in `parse'         from C:/Ruby192/lib/ruby/1.9.1/psych.rb:106:in `load'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/application/configuration.rb:88:in `database_configuration'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.5/ lib/active_record/railtie.rb:58:in `block (2 levels) in <class:Railtie>'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.5/ lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.5/ lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.5/ lib/active_support/lazy_load_hooks.rb:26:in `on_load'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.5/ lib/active_record/railtie.rb:57:in `block in <class:Railtie>'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/initializable.rb:25:in `instance_exec'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/initializable.rb:25:in `run'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/initializable.rb:50:in `block in run_initializers'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/initializable.rb:49:in `each'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/initializable.rb:49:in `run_initializers'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/application.rb:134:in `initialize!'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/application.rb:77:in `method_missing'         from C:/rails3/agd/config/environment.rb:5:in `<top (required)>'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.5/ lib/active_support/dependencies.rb:239:in `require'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.5/ lib/active_support/dependencies.rb:239:in `block in require'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.5/ lib/active_support/dependencies.rb:225:in `block in load_dependency'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.5/ lib/active_support/dependencies.rb:596:in `new_constants_in'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.5/ lib/active_support/dependencies.rb:225:in `load_dependency'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.5/ lib/active_support/dependencies.rb:239:in `require'         from C:/rails3/agd/config.ru:3:in `block in <main>'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.2/lib/rack/ builder.rb:46:in `instance_eval'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.2/lib/rack/ builder.rb:46:in `initialize'         from C:/rails3/agd/config.ru:1:in `new'         from C:/rails3/agd/config.ru:1:in `<main>'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.2/lib/rack/ builder.rb:35:in `eval'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.2/lib/rack/ builder.rb:35:in `parse_file'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.2/lib/rack/ server.rb:162:in `app'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.2/lib/rack/ server.rb:248:in `wrapped_app'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.2/lib/rack/ server.rb:213:in `start'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/commands/server.rb:65:in `start'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/commands.rb:30:in `block in <top (required)>'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/commands.rb:27:in `tap'         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.5/lib/ rails/commands.rb:27:in `<top (required)>'

It would seem like I am missing something simple and obvious here otherwise I would expect lot more posts on this topic in this forum but I don't see any here. Thanks for your help and pointers to get over this - I am in a Windows 7 box. If I need to revert back to some older version of Ruby/Rails to get past this error I am happy to do that - just starting out migrating from 2.3.8 to 3.0.

Sounds to me like there is a syntax error in your database.yml file (possibly at line 36)

Fred

Hi,

I have the same problem; I re-installed ruby & rails

ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] Rails 3.0.5

I got this parsing error, when psyche.rb tried to parse my de.yml locale file which contains a German umlaut:

de:     previous: zurück     next: weiter

When I change this file to

de:     previous: zurueck     next: weiter

the problem does not appear anymore. What in the hell is a locale file worth when it cannot contain local characters? Did anyone test this code with a different file than en.yml?

claus-michael

Hi,

I have the same problem; I re-installed ruby & rails

ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] Rails 3.0.5

I got this parsing error, when psyche.rb tried to parse my de.yml locale file which contains a German umlaut:

de: previous: zurück next: weiter

When I change this file to

de: previous: zurueck next: weiter

the problem does not appear anymore. What in the hell is a locale file worth when it cannot contain local characters? Did anyone test this code with a different file than en.yml?

Well the presence of things like this

suggests that it is possible. Did you try quoting your strings?

Fred

Frederick Cheung wrote in post #990818:

Frederick Cheung wrote in post #990818:

>> de: >> worth when it cannot contain local characters? Did anyone test this code >> with a different file than en.yml?

> Well the presence of things like this >https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/hi.yml > suggests that it is possible. Did you try quoting your strings?

> Fred

Hi Fred,

no - quoting doesn't help :frowning: would be quite a task to quote everything in a large de.yml file...

I suppose that the parser does not like UTF-8.

I doubt it's that - I've had utf8 i18n files before. YAML is quite sensitive to whitespace (space versus tabs etc). If you can trim your file down to a minimal file that doesn't parse you may find your answer.

Fred

We had this happen to a custom YML file... culprit ended up being two dashes instead of the required three dashes to start off the yaml file... only came up for a colleague using ruby 1.9.x...

I notice none of my locale files have any dashes at all though, but for what it's worth...

I doubt it's that - I've had utf8 i18n files before. YAML is quite sensitive to whitespace (space versus tabs etc). If you can trim your file down to a minimal file that doesn't parse you may find your answer.

Fred

my de.yml consists of three lines:

de:     previous: zurück     next: weiter

This one fails. When I change 'zurück' to 'zurueck', it works. It seems apparent that the umlaut 'ü' causes the problem. Or any other idea?

Claus-Michael