7824: Merge branch 'master' into 7824-arvls-arvput-collection-api-usage
[arvados.git] / services / api / config / application.rb
index e7002ddf1acdf639a1b6b62823ae643f49dc38ec..f3f6424b2dac260ac1973859296aa0dec5c42070 100644 (file)
@@ -36,13 +36,20 @@ module Server
 
     I18n.enforce_available_locales = false
 
+    # Before using the filesystem backend for Rails.cache, check
+    # whether we own the relevant directory. If we don't, using it is
+    # likely to either fail or (if we're root) pollute it and cause
+    # other processes to fail later.
     default_cache_path = Rails.root.join('tmp', 'cache')
     if not File.owned?(default_cache_path)
-      # If we don't own the cache dir, using it will either fail or
-      # (if we're root) pollute it so other processes fail later.
-      STDERR.puts("Defaulting to memory cache, because #{default_cache_path} " \
-                  "owner (uid=#{File::Stat.new(default_cache_path).uid}) " \
-                  "is not me (uid=#{Process.euid})")
+      if File.exist?(default_cache_path)
+        why = "owner (uid=#{File::Stat.new(default_cache_path).uid}) " +
+          "is not me (uid=#{Process.euid})"
+      else
+        why = "does not exist"
+      end
+      STDERR.puts("Defaulting to memory cache, " +
+                  "because #{default_cache_path} #{why}")
       config.cache_store = :memory_store
     end
   end