Commit 3b76d298 authored by Stan Hu's avatar Stan Hu

Fix exception handling in Gitaly autodetection

In SELinux, the file cannot be written, and `Errno::EACCES`, not
`Errno::ACCESS` is thrown.

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/65328
parent 11f82c89
---
title: Fix exception handling in Gitaly autodetection
merge_request: 31285
author:
type: fixed
......@@ -413,7 +413,7 @@ module Gitlab
metadata_file = File.read(storage_metadata_file_path(storage))
metadata_hash = JSON.parse(metadata_file)
metadata_hash['gitaly_filesystem_id']
rescue Errno::ENOENT, Errno::ACCESS, JSON::ParserError
rescue Errno::ENOENT, Errno::EACCES, JSON::ParserError
nil
end
......
......@@ -17,6 +17,16 @@ describe Gitlab::GitalyClient do
})
end
describe '.filesystem_id_from_disk' do
it 'catches errors' do
[Errno::ENOENT, Errno::EACCES, JSON::ParserError].each do |error|
allow(File).to receive(:read).with(described_class.storage_metadata_file_path('default')).and_raise(error)
expect(described_class.filesystem_id_from_disk('default')).to be_nil
end
end
end
describe '.stub_class' do
it 'returns the gRPC health check stub' do
expect(described_class.stub_class(:health_check)).to eq(::Grpc::Health::V1::Health::Stub)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment