Geo: Error 500 when viewing commit signatures
If you view a commit on a secondary that has a signature, you will see a "Something went wrong" at the top header. It looks like by default we attempt to create a cached signature:
We should avoid this if the database is in read-only mode.
Started GET "/root/rouge/commits/master/signatures?utf8=%E2%9C%93&search=" for 71.198.254.86 at 2018-02-06 08:28:19 +0000
Processing by Projects::CommitsController#signatures as */*
Parameters: {"utf8"=>"✓", "search"=>"", "namespace_id"=>"root", "project_id"=>"rouge", "id"=>"master"}
Completed 500 Internal Server Error in 351ms (ActiveRecord: 41.2ms | Elasticsearch: 0.0ms)
ActiveRecord::StatementInvalid (PG::ReadOnlySqlTransaction: ERROR: cannot execute INSERT in a read-only transaction
: INSERT INTO "gpg_signatures" ("gpg_key_primary_keyid", "commit_sha", "project_id", "verification_status", "created_at", "updated_at") VALUES ('\x4aee18f83afdeb23', '\x966efcb7a1cfa1d1851f8f44d292426de2b5d006', 1, 5, '2018-02-06 08:28:20.222961', '2018-02-06 08:28:20.222961') RETURNING "id"):
config/initializers/active_record_locking.rb:12:in `_create_record'
lib/gitlab/gpg/commit.rb:63:in `block in create_cached_signature!'
lib/gitlab/gpg/commit.rb:51:in `block in using_keychain'
lib/gitlab/gpg.rb:89:in `optimistic_using_tmp_keychain'
lib/gitlab/gpg.rb:71:in `block in using_tmp_keychain'
lib/gitlab/gpg.rb:70:in `synchronize'
lib/gitlab/gpg.rb:70:in `using_tmp_keychain'
lib/gitlab/gpg/commit.rb:37:in `using_keychain'
lib/gitlab/gpg/commit.rb:62:in `create_cached_signature!'
lib/gitlab/gpg/commit.rb:23:in `signature'
app/models/commit.rb:285:in `signature'
app/controllers/projects/commits_controller.rb:42:in `block (4 levels) in signatures'
app/controllers/projects/commits_controller.rb:39:in `map'
app/controllers/projects/commits_controller.rb:39:in `block (3 levels) in signatures'
app/controllers/projects/commits_controller.rb:36:in `block in signatures'
lib/gitlab/gitaly_client.rb:274:in `allow_n_plus_1_calls'
app/controllers/projects/commits_controller.rb:35:in `signatures'
lib/gitlab/i18n.rb:47:in `with_locale'
lib/gitlab/i18n.rb:53:in `with_user_locale'
app/controllers/application_controller.rb:333:in `set_locale'
lib/gitlab/middleware/multipart.rb:95:in `call'
lib/gitlab/request_profiler/middleware.rb:14:in `call'
lib/gitlab/middleware/go.rb:17:in `call'
lib/gitlab/etag_caching/middleware.rb:11:in `call'
lib/gitlab/middleware/read_only.rb:31:in `call'
lib/gitlab/request_context.rb:18:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:27:in `call'