Error 500 : PG statement timeout error when fetching issues via the API using the search param
https://sentry.gitlab.net/gitlab/gitlabcom/issues/1728693/?referrer=gitlab_plugin
PG::QueryCanceled: ERROR: canceling statement due to statement timeout
active_record/connection_adapters/postgresql_adapter.rb:675:in `exec_params'
@connection.exec_params(sql, type_casted_binds)
active_record/connection_adapters/postgresql_adapter.rb:675:in `block (2 levels) in exec_no_cache'
@connection.exec_params(sql, type_casted_binds)
active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
yield
active_support/concurrency/share_lock.rb:187:in `yield_shares'
yield
active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
@lock.yield_shares(compatible: [:load]) do
...
(169 additional frame(s) were not displayed)
ActiveRecord::QueryCanceled: PG::QueryCanceled: ERROR: canceling statement due to statement timeout
ActiveRecord::QueryCanceled: PG::QueryCanceled: ERROR: canceling statement due to statement timeout
Example Rails log: https://log.gprd.gitlab.net/app/kibana#/discover/doc/AW5F1e45qthdGjPJueGO/pubsub-rails-inf-gprd-003269?id=e1_ku3MBmXVrub9d5cWU
{
"_index": "pubsub-rails-inf-gprd-003269",
"_type": "_doc",
"_id": "e1_ku3MBmXVrub9d5cWU",
"_score": 1,
"_ignored": [
"json.remote_ip"
],
"_source": {
"@timestamp": "2020-08-04T23:53:26.532Z",
"type": "pubsub-duplicate-rails-inf-gprd",
"message_id": "1417322189259247",
"publish_time": "2020-08-04T23:53:26.443Z",
"json": {
"path": "/api/v4/projects/gitlab%2Dorg%2Fquality%2Ftestcases/issues",
"severity": "INFO",
"redis_write_bytes": 108,
"redis_shared_state_calls": 2,
"redis_shared_state_duration_s": 0.000389,
"meta.user": "gitlab-qa",
"method": "GET",
"environment": "gprd",
"duration_s": 15.44258,
"tier": "sv",
"params": [
{
"key": "search",
"value": "\"./qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb\" \"Plan Epics milestone dates API updates epic dates when removing issue\""
}
],
"fqdn": "api-18-sv-gprd.c.gitlab-production.internal",
"redis_duration_s": 0.000389,
"meta.caller_id": "/api/:version/projects/:id/issues",
"shard": "default",
"view_duration_s": 0.40967,
"exception.message": "PG::QueryCanceled: ERROR: canceling statement due to statement timeout\n",
"redis_calls": 2,
"tag": "rails.api",
"exception.backtrace": [
"lib/gitlab/pagination/offset_pagination.rb:32:in `paginate_with_limit_optimization'",
"lib/gitlab/pagination/offset_pagination.rb:14:in `paginate'",
"lib/api/helpers/pagination.rb:7:in `paginate'",
"lib/api/issues.rb:164:in `block (2 levels) in <class:Issues>'",
"ee/lib/gitlab/ip_address_state.rb:10:in `with'",
"ee/lib/omni_auth/strategies/group_saml.rb:41:in `other_phase'",
"ee/lib/gitlab/jira/middleware.rb:19:in `call'"
],
"db_duration_s": 15.03291,
"queue_duration_s": 11.296844,
"hostname": "api-18-sv-gprd",
"user_id": 1614863,
"correlation_id": "MGeylyXMmua",
"time": "2020-08-04T23:52:37.822Z",
"redis_shared_state_write_bytes": 108,
"stage": "main",
"username": "gitlab-qa",
"host": "gitlab.com",
"route": "/api/:version/projects/:id/issues",
"status": 500,
"type": "api",
"exception.class": "ActiveRecord::QueryCanceled",
"remote_ip": "34.74.139.142, 10.216.1.21, 34.74.139.142",
"meta.project": "gitlab-org/quality/testcases",
"ua": "Gitlab Ruby Gem 4.11.0",
"meta.root_namespace": "gitlab-org"
},
"ecs": {
"version": "1.4.0"
},
"host": {
"name": "pubsub-duplicate-rails-inf-gprd"
}
},
"fields": {
"json.expiry_to": [],
"json.user_id": [
"1.614863e+06"
],
"@timestamp": [
"2020-08-04T23:53:26.532Z"
],
"publish_time": [
"2020-08-04T23:53:26.443Z"
],
"json.time": [
"2020-08-04T23:52:37.822Z"
],
"json.expiry_from": [],
"json.created_at": []
}
}
Edited by Mark Lapierre