Cron Job to clear Rails Cache

The rails file cache is something that keeps growing.
Here are some 'handy' snippets.

Delete all files older then 7 days. (replace -delete with -print to test it)

find ./tmp/cache/ -type f -mtime +7 -delete

Delete all empty folders. (mindepth prevents the deletion of the root folder)

find ./tmp/cache/ -type d -empty -delete -mindepth 1

The whenever.rb I use

job_type :command_in_path, "cd :path && :task :output"

every :day, at: "0:40" do
  command_in_path "find ./tmp/cache/ -type f -mtime +7 -delete"
end

every :day, at: "1:10" do
  command_in_path "find ./tmp/cache/ -type d -empty -delete -mindepth 1"
end
Share

Spree Issues config.action_view.raise_on_missing_translations

I'm working on a Rails Spree 4.1 app.
I enabled raising exception on missing translations via the option config.action_view.raise_on_missing_translations in config/environment/development.rb.
It's nice to know I a tranlsation is missing.

This was working fine, until I included the spree_mollie_gateway.

I couldn't boot the rails application anymore. It constantly raised:

gems/i18n-1.8.3/lib/i18n.rb:373:in `handle_exception': translation missing: nl.spree.validation.must_be_int (I18n::MissingTranslationData)

The woraround I now use is this: (config/development.rb)
Just enable it after the GEM is loaded

# Raises error for missing translations.
  config.action_view.raise_on_missing_translations = false
  Rails.application.config.to_prepare do
    ActionView::Base.raise_on_missing_translations = true
  end
Share

FreeBSD, MySQL out of swap space

My FreeBSD server is giving a lot of swap errors. Every day the daily reporting email was filled with kernel messages like these:

my.server.com kernel log messages:
+swap_pager_getswapspace(31): failed
+swap_pager_getswapspace(32): failed
 ... and many more ...

After figuring out which process was causing this, it seemed MySQL was to blame.
That was odd, because these are the number of mysqltuner is reporting about my configuration:

[--] Physical Memory     : 8.0G
[--] Max MySQL memory    : 845.4M

Max 850 MB

After a lot of googling, reading MySQL, it seemd the performance schema could be to blame. Because is is completely stored in memory.

Now for several days in a row, I don't have the swaperrors ☺️
To disable the MySQL permance schema place the following in /usr/local/etc/mysql/my.cnf

[mysqld]
performance_schema = 0

Btw. I'm not sure if I need the performance scheme ..

⚠️ Followup a few weeks later

Unfortunately this isn't the solution. MySQL is still running out of swap space. I simply don't get it, because the memory usage should be limited

Share

Bundle Hangs on bundle update

I finally found a reason why sometimes my 'bundle update' hangs infinitely.. It keeps showing dots... and takes forever..

bundle audit
Resolving dependencies...........   *sigh* ...

I have some gems that are available only for authorized users.
When the ssh keychain is still locked (haven't entered a password for my ssh-key yet) Bundler keeps running infinitely without showing any password entry...

Share