mail icon indicating copy to clipboard operation
mail copied to clipboard

Cannot Load Such File mail/indifferent_hash. Maybe zeitwerk?

Open metaskills opened this issue 2 years ago • 5 comments

Just created a new Rails v7.0.4 app and got the latest mail v2.8.0. Seems the new version broke Rails with the following error. If I downgrade to 2.7.1, everything works fine with this new Rails app in production env.

"errorMessage": "cannot load such file -- mail/indifferent_hash",
"errorType": "Init<LoadError>",
"stackTrace": [
"/app/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'",
"/app/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'",
"/app/vendor/bundle/ruby/3.1.0/gems/mail-2.8.0/lib/mail.rb:14:in `<module:Mail>'",
"/app/vendor/bundle/ruby/3.1.0/gems/mail-2.8.0/lib/mail.rb:3:in `<top (required)>'",
"/app/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'",
"/app/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'",
"/app/vendor/bundle/ruby/3.1.0/gems/actionmailer-7.0.4/lib/action_mailer/base.rb:3:in `<top (required)>'",
"/app/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'",
"/app/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'",
"/app/app/mailers/application_mailer.rb:1:in `<top (required)>'",

metaskills avatar Dec 04 '22 00:12 metaskills

Same issue :-]

UPDATE

chmod 644 /var/lib/gems/3.0.0/gems/mail-2.8.0/lib/mail/indifferent_hash.rb
chmod 644 /var/lib/gems/3.0.0/gems/mail-2.8.0/lib/mail/fields.rb
chmod 644 /var/lib/gems/3.0.0/gems/mail-2.8.0/lib/mail/elements.rb 

Fixed the problem.

andriesfilmer avatar Dec 04 '22 15:12 andriesfilmer

Perhaps a gem packing issue? Here is what I see when I fetch and unpack the gem. Seems elements.rb, fields.rb, and indifferent_hash.rb lack some read perms. Could be more in some sub dirs? Maybe a repush to rubygems?

gem fetch mail
gem unpack mail-2.8.0.gem
ls ./mail-2.8.0/
ls ./mail-2.8.0/lib/mail
-rw-r--r--   1 kencollins  staff   3.4K Dec  4 18:09 attachments_list.rb
-rw-r--r--   1 kencollins  staff   9.3K Dec  4 18:09 body.rb
-rw-r--r--   1 kencollins  staff   1.9K Dec  4 18:09 check_delivery_params.rb
-rw-r--r--   1 kencollins  staff   1.7K Dec  4 18:09 configuration.rb
-rw-r--r--   1 kencollins  staff   2.4K Dec  4 18:09 constants.rb
drwxr-xr-x  14 kencollins  staff   448B Dec  4 18:09 elements/
-rw-r-----   1 kencollins  staff   960B Dec  4 18:09 elements.rb
drwxr-xr-x  10 kencollins  staff   320B Dec  4 18:09 encodings/
-rw-r--r--   1 kencollins  staff   9.6K Dec  4 18:09 encodings.rb
-rw-r--r--   1 kencollins  staff   573B Dec  4 18:09 envelope.rb
-rw-r--r--   1 kencollins  staff   8.7K Dec  4 18:09 field.rb
-rw-r--r--   1 kencollins  staff   2.0K Dec  4 18:09 field_list.rb
drwxr-xr-x  41 kencollins  staff   1.3K Dec  4 18:09 fields/
-rw-r-----   1 kencollins  staff   2.2K Dec  4 18:09 fields.rb
-rw-r--r--   1 kencollins  staff   7.4K Dec  4 18:09 header.rb
-rw-r-----   1 kencollins  staff   3.8K Dec  4 18:09 indifferent_hash.rb
-rw-r--r--   1 kencollins  staff   8.2K Dec  4 18:09 mail.rb
drwxr-xr-x   4 kencollins  staff   128B Dec  4 18:09 matchers/
-rw-r--r--   1 kencollins  staff    66K Dec  4 18:09 message.rb
drwxr-xr-x   5 kencollins  staff   160B Dec  4 18:09 multibyte/
-rw-r--r--   1 kencollins  staff   3.5K Dec  4 18:09 multibyte.rb
drwxr-xr-x   4 kencollins  staff   128B Dec  4 18:09 network/
-rw-r--r--   1 kencollins  staff   836B Dec  4 18:09 network.rb
-rw-r--r--   1 kencollins  staff   446B Dec  4 18:09 parser_tools.rb
drwxr-xr-x  34 kencollins  staff   1.1K Dec  4 18:09 parsers/
-rw-r--r--   1 kencollins  staff   522B Dec  4 18:09 parsers.rb
-rw-r--r--   1 kencollins  staff   3.1K Dec  4 18:09 part.rb
-rw-r--r--   1 kencollins  staff   3.3K Dec  4 18:09 parts_list.rb
-rw-r--r--   1 kencollins  staff   1.4K Dec  4 18:09 smtp_envelope.rb
-rw-r--r--   1 kencollins  staff    16K Dec  4 18:09 utilities.rb
drwxr-xr-x   3 kencollins  staff    96B Dec  4 18:09 values/
-rw-r--r--   1 kencollins  staff   233B Dec  4 18:09 version.rb
-rw-r--r--   1 kencollins  staff   655B Dec  4 18:09 yaml.rb

metaskills avatar Dec 04 '22 23:12 metaskills

This seems to be related to #1489

awendt avatar Dec 05 '22 10:12 awendt

Now that 2.8.0 is released. Maybe time to fix it? How is this gem packaged and pushed to rubygems?

metaskills avatar Dec 05 '22 14:12 metaskills

This is a duplicate of #1489 . Maybe this issue should be closed to help keep the list of open issues concise and manageable for the project's maintainers :)

benlangfeld avatar Dec 06 '22 13:12 benlangfeld