{"action":"created","comment":{"url":"https://api.github.com/repos/qgis/QGIS/pulls/comments/207653102","pull_request_review_id":143317130,"id":207653102,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNzY1MzEwMg==","diff_hunk":"@@ -1141,6 +1143,32 @@ def testCurveToMultipolygon(self):\n         self.assertEqual(g.childCount(), 1)\n         self.assertTrue(g.childGeometry(0).vertexCount() > 3)\n \n+    def testConcurrency(self):","path":"tests/src/python/test_provider_postgres.py","position":15,"original_position":15,"commit_id":"56885e19aa3a4b72b9d4b5fb4dae115813fcc47e","original_commit_id":"56885e19aa3a4b72b9d4b5fb4dae115813fcc47e","user":{"login":"nyalldawson","id":1829991,"node_id":"MDQ6VXNlcjE4Mjk5OTE=","avatar_url":"https://avatars1.githubusercontent.com/u/1829991?v=4","gravatar_id":"","url":"https://api.github.com/users/nyalldawson","html_url":"https://github.com/nyalldawson","followers_url":"https://api.github.com/users/nyalldawson/followers","following_url":"https://api.github.com/users/nyalldawson/following{/other_user}","gists_url":"https://api.github.com/users/nyalldawson/gists{/gist_id}","starred_url":"https://api.github.com/users/nyalldawson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nyalldawson/subscriptions","organizations_url":"https://api.github.com/users/nyalldawson/orgs","repos_url":"https://api.github.com/users/nyalldawson/repos","events_url":"https://api.github.com/users/nyalldawson/events{/privacy}","received_events_url":"https://api.github.com/users/nyalldawson/received_events","type":"User","site_admin":false},"body":"What do you think about moving this test to the base provider test suite, so that all providers are checked for this issue?","created_at":"2018-08-03T20:03:59Z","updated_at":"2018-08-03T20:04:07Z","html_url":"https://github.com/qgis/QGIS/pull/7519#discussion_r207653102","pull_request_url":"https://api.github.com/repos/qgis/QGIS/pulls/7519","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/qgis/QGIS/pulls/comments/207653102"},"html":{"href":"https://github.com/qgis/QGIS/pull/7519#discussion_r207653102"},"pull_request":{"href":"https://api.github.com/repos/qgis/QGIS/pulls/7519"}}},"pull_request":{"url":"https://api.github.com/repos/qgis/QGIS/pulls/7519","id":205705710,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA1NzA1NzEw","html_url":"https://github.com/qgis/QGIS/pull/7519","diff_url":"https://github.com/qgis/QGIS/pull/7519.diff","patch_url":"https://github.com/qgis/QGIS/pull/7519.patch","issue_url":"https://api.github.com/repos/qgis/QGIS/issues/7519","number":7519,"state":"open","locked":false,"title":"Fix freeze with `get_feature`","user":{"login":"m-kuhn","id":588407,"node_id":"MDQ6VXNlcjU4ODQwNw==","avatar_url":"https://avatars1.githubusercontent.com/u/588407?v=4","gravatar_id":"","url":"https://api.github.com/users/m-kuhn","html_url":"https://github.com/m-kuhn","followers_url":"https://api.github.com/users/m-kuhn/followers","following_url":"https://api.github.com/users/m-kuhn/following{/other_user}","gists_url":"https://api.github.com/users/m-kuhn/gists{/gist_id}","starred_url":"https://api.github.com/users/m-kuhn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m-kuhn/subscriptions","organizations_url":"https://api.github.com/users/m-kuhn/orgs","repos_url":"https://api.github.com/users/m-kuhn/repos","events_url":"https://api.github.com/users/m-kuhn/events{/privacy}","received_events_url":"https://api.github.com/users/m-kuhn/received_events","type":"User","site_admin":false},"body":"Using `get_feature` in a styling or labeling expression can lead to deadlocks of the rendering.\r\n\r\nThe reason for this is, when already 4 (maximum connection count) iterators are open and the `get_feature` function is executed and tries to acquire a new connection, it will not get one and wait forever, preventing the outer iterator to ever free the lock it holds on the connection pool. I assume this gets especially tricky if we have previews being rendered in parallel and then have four iterators with nested ones open, all in deadlock state.\r\n\r\nThis pull request increases the connection pool size by 2 (from 4 to 6) and keeps the 2 connections as \"spare connections\" around, which can be used by expression functions - or other critical pieces of code.\r\n\r\nI'm not super excited about the new API that complicates QgsFeatureRequest, so if there is any input on how to improve that, it will be appreciated.\r\n\r\n**TODO**\r\n\r\n - [x] Apply to Postgres Connection Pool\r\n - [x] Apply to OGR Connection Pool\r\n - [x] Apply to SpatiaLite Connection Pool\r\n - [x] Apply to Oracle Connection Pool","created_at":"2018-08-02T11:41:06Z","updated_at":"2018-08-03T20:04:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"72be0b38000aa217aa714a7b2f7922e9f40af47f","assignee":null,"assignees":[],"requested_reviewers":[{"login":"wonder-sk","id":193367,"node_id":"MDQ6VXNlcjE5MzM2Nw==","avatar_url":"https://avatars1.githubusercontent.com/u/193367?v=4","gravatar_id":"","url":"https://api.github.com/users/wonder-sk","html_url":"https://github.com/wonder-sk","followers_url":"https://api.github.com/users/wonder-sk/followers","following_url":"https://api.github.com/users/wonder-sk/following{/other_user}","gists_url":"https://api.github.com/users/wonder-sk/gists{/gist_id}","starred_url":"https://api.github.com/users/wonder-sk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wonder-sk/subscriptions","organizations_url":"https://api.github.com/users/wonder-sk/orgs","repos_url":"https://api.github.com/users/wonder-sk/repos","events_url":"https://api.github.com/users/wonder-sk/events{/privacy}","received_events_url":"https://api.github.com/users/wonder-sk/received_events","type":"User","site_admin":false},{"login":"manisandro","id":1298852,"node_id":"MDQ6VXNlcjEyOTg4NTI=","avatar_url":"https://avatars0.githubusercontent.com/u/1298852?v=4","gravatar_id":"","url":"https://api.github.com/users/manisandro","html_url":"https://github.com/manisandro","followers_url":"https://api.github.com/users/manisandro/followers","following_url":"https://api.github.com/users/manisandro/following{/other_user}","gists_url":"https://api.github.com/users/manisandro/gists{/gist_id}","starred_url":"https://api.github.com/users/manisandro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/manisandro/subscriptions","organizations_url":"https://api.github.com/users/manisandro/orgs","repos_url":"https://api.github.com/users/manisandro/repos","events_url":"https://api.github.com/users/manisandro/events{/privacy}","received_events_url":"https://api.github.com/users/manisandro/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":310142088,"node_id":"MDU6TGFiZWwzMTAxNDIwODg=","url":"https://api.github.com/repos/qgis/QGIS/labels/Bugfix","name":"Bugfix","color":"e11d21","default":false},{"id":415943426,"node_id":"MDU6TGFiZWw0MTU5NDM0MjY=","url":"https://api.github.com/repos/qgis/QGIS/labels/Needs%20Backporting","name":"Needs Backporting","color":"5319e7","default":false}],"milestone":{"url":"https://api.github.com/repos/qgis/QGIS/milestones/13","html_url":"https://github.com/qgis/QGIS/milestone/13","labels_url":"https://api.github.com/repos/qgis/QGIS/milestones/13/labels","id":3380708,"node_id":"MDk6TWlsZXN0b25lMzM4MDcwOA==","number":13,"title":"3.4","description":"","creator":{"login":"m-kuhn","id":588407,"node_id":"MDQ6VXNlcjU4ODQwNw==","avatar_url":"https://avatars1.githubusercontent.com/u/588407?v=4","gravatar_id":"","url":"https://api.github.com/users/m-kuhn","html_url":"https://github.com/m-kuhn","followers_url":"https://api.github.com/users/m-kuhn/followers","following_url":"https://api.github.com/users/m-kuhn/following{/other_user}","gists_url":"https://api.github.com/users/m-kuhn/gists{/gist_id}","starred_url":"https://api.github.com/users/m-kuhn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m-kuhn/subscriptions","organizations_url":"https://api.github.com/users/m-kuhn/orgs","repos_url":"https://api.github.com/users/m-kuhn/repos","events_url":"https://api.github.com/users/m-kuhn/events{/privacy}","received_events_url":"https://api.github.com/users/m-kuhn/received_events","type":"User","site_admin":false},"open_issues":12,"closed_issues":128,"state":"open","created_at":"2018-05-28T11:10:30Z","updated_at":"2018-08-03T19:57:48Z","due_on":"2018-10-26T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/qgis/QGIS/pulls/7519/commits","review_comments_url":"https://api.github.com/repos/qgis/QGIS/pulls/7519/comments","review_comment_url":"https://api.github.com/repos/qgis/QGIS/pulls/comments{/number}","comments_url":"https://api.github.com/repos/qgis/QGIS/issues/7519/comments","statuses_url":"https://api.github.com/repos/qgis/QGIS/statuses/56885e19aa3a4b72b9d4b5fb4dae115813fcc47e","head":{"label":"m-kuhn:nestedConnectionPoolDeadlock","ref":"nestedConnectionPoolDeadlock","sha":"56885e19aa3a4b72b9d4b5fb4dae115813fcc47e","user":{"login":"m-kuhn","id":588407,"node_id":"MDQ6VXNlcjU4ODQwNw==","avatar_url":"https://avatars1.githubusercontent.com/u/588407?v=4","gravatar_id":"","url":"https://api.github.com/users/m-kuhn","html_url":"https://github.com/m-kuhn","followers_url":"https://api.github.com/users/m-kuhn/followers","following_url":"https://api.github.com/users/m-kuhn/following{/other_user}","gists_url":"https://api.github.com/users/m-kuhn/gists{/gist_id}","starred_url":"https://api.github.com/users/m-kuhn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m-kuhn/subscriptions","organizations_url":"https://api.github.com/users/m-kuhn/orgs","repos_url":"https://api.github.com/users/m-kuhn/repos","events_url":"https://api.github.com/users/m-kuhn/events{/privacy}","received_events_url":"https://api.github.com/users/m-kuhn/received_events","type":"User","site_admin":false},"repo":{"id":5270567,"node_id":"MDEwOlJlcG9zaXRvcnk1MjcwNTY3","name":"QGIS","full_name":"m-kuhn/QGIS","owner":{"login":"m-kuhn","id":588407,"node_id":"MDQ6VXNlcjU4ODQwNw==","avatar_url":"https://avatars1.githubusercontent.com/u/588407?v=4","gravatar_id":"","url":"https://api.github.com/users/m-kuhn","html_url":"https://github.com/m-kuhn","followers_url":"https://api.github.com/users/m-kuhn/followers","following_url":"https://api.github.com/users/m-kuhn/following{/other_user}","gists_url":"https://api.github.com/users/m-kuhn/gists{/gist_id}","starred_url":"https://api.github.com/users/m-kuhn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m-kuhn/subscriptions","organizations_url":"https://api.github.com/users/m-kuhn/orgs","repos_url":"https://api.github.com/users/m-kuhn/repos","events_url":"https://api.github.com/users/m-kuhn/events{/privacy}","received_events_url":"https://api.github.com/users/m-kuhn/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/m-kuhn/QGIS","description":"QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)","fork":true,"url":"https://api.github.com/repos/m-kuhn/QGIS","forks_url":"https://api.github.com/repos/m-kuhn/QGIS/forks","keys_url":"https://api.github.com/repos/m-kuhn/QGIS/keys{/key_id}","collaborators_url":"https://api.github.com/repos/m-kuhn/QGIS/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/m-kuhn/QGIS/teams","hooks_url":"https://api.github.com/repos/m-kuhn/QGIS/hooks","issue_events_url":"https://api.github.com/repos/m-kuhn/QGIS/issues/events{/number}","events_url":"https://api.github.com/repos/m-kuhn/QGIS/events","assignees_url":"https://api.github.com/repos/m-kuhn/QGIS/assignees{/user}","branches_url":"https://api.github.com/repos/m-kuhn/QGIS/branches{/branch}","tags_url":"https://api.github.com/repos/m-kuhn/QGIS/tags","blobs_url":"https://api.github.com/repos/m-kuhn/QGIS/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/m-kuhn/QGIS/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/m-kuhn/QGIS/git/refs{/sha}","trees_url":"https://api.github.com/repos/m-kuhn/QGIS/git/trees{/sha}","statuses_url":"https://api.github.com/repos/m-kuhn/QGIS/statuses/{sha}","languages_url":"https://api.github.com/repos/m-kuhn/QGIS/languages","stargazers_url":"https://api.github.com/repos/m-kuhn/QGIS/stargazers","contributors_url":"https://api.github.com/repos/m-kuhn/QGIS/contributors","subscribers_url":"https://api.github.com/repos/m-kuhn/QGIS/subscribers","subscription_url":"https://api.github.com/repos/m-kuhn/QGIS/subscription","commits_url":"https://api.github.com/repos/m-kuhn/QGIS/commits{/sha}","git_commits_url":"https://api.github.com/repos/m-kuhn/QGIS/git/commits{/sha}","comments_url":"https://api.github.com/repos/m-kuhn/QGIS/comments{/number}","issue_comment_url":"https://api.github.com/repos/m-kuhn/QGIS/issues/comments{/number}","contents_url":"https://api.github.com/repos/m-kuhn/QGIS/contents/{+path}","compare_url":"https://api.github.com/repos/m-kuhn/QGIS/compare/{base}...{head}","merges_url":"https://api.github.com/repos/m-kuhn/QGIS/merges","archive_url":"https://api.github.com/repos/m-kuhn/QGIS/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/m-kuhn/QGIS/downloads","issues_url":"https://api.github.com/repos/m-kuhn/QGIS/issues{/number}","pulls_url":"https://api.github.com/repos/m-kuhn/QGIS/pulls{/number}","milestones_url":"https://api.github.com/repos/m-kuhn/QGIS/milestones{/number}","notifications_url":"https://api.github.com/repos/m-kuhn/QGIS/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/m-kuhn/QGIS/labels{/name}","releases_url":"https://api.github.com/repos/m-kuhn/QGIS/releases{/id}","deployments_url":"https://api.github.com/repos/m-kuhn/QGIS/deployments","created_at":"2012-08-02T09:19:28Z","updated_at":"2018-06-21T10:11:36Z","pushed_at":"2018-08-03T14:49:18Z","git_url":"git://github.com/m-kuhn/QGIS.git","ssh_url":"git@github.com:m-kuhn/QGIS.git","clone_url":"https://github.com/m-kuhn/QGIS.git","svn_url":"https://github.com/m-kuhn/QGIS","homepage":"http://qgis.org","size":1382421,"stargazers_count":5,"watchers_count":5,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":22,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":1,"open_issues":22,"watchers":5,"default_branch":"master"}},"base":{"label":"qgis:master","ref":"master","sha":"c81c499d4453ac43b95b26d39dbd65b4a68343f9","user":{"login":"qgis","id":483444,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ4MzQ0NA==","avatar_url":"https://avatars3.githubusercontent.com/u/483444?v=4","gravatar_id":"","url":"https://api.github.com/users/qgis","html_url":"https://github.com/qgis","followers_url":"https://api.github.com/users/qgis/followers","following_url":"https://api.github.com/users/qgis/following{/other_user}","gists_url":"https://api.github.com/users/qgis/gists{/gist_id}","starred_url":"https://api.github.com/users/qgis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qgis/subscriptions","organizations_url":"https://api.github.com/users/qgis/orgs","repos_url":"https://api.github.com/users/qgis/repos","events_url":"https://api.github.com/users/qgis/events{/privacy}","received_events_url":"https://api.github.com/users/qgis/received_events","type":"Organization","site_admin":false},"repo":{"id":1690480,"node_id":"MDEwOlJlcG9zaXRvcnkxNjkwNDgw","name":"QGIS","full_name":"qgis/QGIS","owner":{"login":"qgis","id":483444,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ4MzQ0NA==","avatar_url":"https://avatars3.githubusercontent.com/u/483444?v=4","gravatar_id":"","url":"https://api.github.com/users/qgis","html_url":"https://github.com/qgis","followers_url":"https://api.github.com/users/qgis/followers","following_url":"https://api.github.com/users/qgis/following{/other_user}","gists_url":"https://api.github.com/users/qgis/gists{/gist_id}","starred_url":"https://api.github.com/users/qgis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qgis/subscriptions","organizations_url":"https://api.github.com/users/qgis/orgs","repos_url":"https://api.github.com/users/qgis/repos","events_url":"https://api.github.com/users/qgis/events{/privacy}","received_events_url":"https://api.github.com/users/qgis/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/qgis/QGIS","description":"QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)","fork":false,"url":"https://api.github.com/repos/qgis/QGIS","forks_url":"https://api.github.com/repos/qgis/QGIS/forks","keys_url":"https://api.github.com/repos/qgis/QGIS/keys{/key_id}","collaborators_url":"https://api.github.com/repos/qgis/QGIS/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/qgis/QGIS/teams","hooks_url":"https://api.github.com/repos/qgis/QGIS/hooks","issue_events_url":"https://api.github.com/repos/qgis/QGIS/issues/events{/number}","events_url":"https://api.github.com/repos/qgis/QGIS/events","assignees_url":"https://api.github.com/repos/qgis/QGIS/assignees{/user}","branches_url":"https://api.github.com/repos/qgis/QGIS/branches{/branch}","tags_url":"https://api.github.com/repos/qgis/QGIS/tags","blobs_url":"https://api.github.com/repos/qgis/QGIS/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/qgis/QGIS/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/qgis/QGIS/git/refs{/sha}","trees_url":"https://api.github.com/repos/qgis/QGIS/git/trees{/sha}","statuses_url":"https://api.github.com/repos/qgis/QGIS/statuses/{sha}","languages_url":"https://api.github.com/repos/qgis/QGIS/languages","stargazers_url":"https://api.github.com/repos/qgis/QGIS/stargazers","contributors_url":"https://api.github.com/repos/qgis/QGIS/contributors","subscribers_url":"https://api.github.com/repos/qgis/QGIS/subscribers","subscription_url":"https://api.github.com/repos/qgis/QGIS/subscription","commits_url":"https://api.github.com/repos/qgis/QGIS/commits{/sha}","git_commits_url":"https://api.github.com/repos/qgis/QGIS/git/commits{/sha}","comments_url":"https://api.github.com/repos/qgis/QGIS/comments{/number}","issue_comment_url":"https://api.github.com/repos/qgis/QGIS/issues/comments{/number}","contents_url":"https://api.github.com/repos/qgis/QGIS/contents/{+path}","compare_url":"https://api.github.com/repos/qgis/QGIS/compare/{base}...{head}","merges_url":"https://api.github.com/repos/qgis/QGIS/merges","archive_url":"https://api.github.com/repos/qgis/QGIS/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/qgis/QGIS/downloads","issues_url":"https://api.github.com/repos/qgis/QGIS/issues{/number}","pulls_url":"https://api.github.com/repos/qgis/QGIS/pulls{/number}","milestones_url":"https://api.github.com/repos/qgis/QGIS/milestones{/number}","notifications_url":"https://api.github.com/repos/qgis/QGIS/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/qgis/QGIS/labels{/name}","releases_url":"https://api.github.com/repos/qgis/QGIS/releases{/id}","deployments_url":"https://api.github.com/repos/qgis/QGIS/deployments","created_at":"2011-05-02T08:06:26Z","updated_at":"2018-08-03T19:57:56Z","pushed_at":"2018-08-03T19:57:48Z","git_url":"git://github.com/qgis/QGIS.git","ssh_url":"git@github.com:qgis/QGIS.git","clone_url":"https://github.com/qgis/QGIS.git","svn_url":"https://github.com/qgis/QGIS","homepage":"http://qgis.org","size":1446175,"stargazers_count":2149,"watchers_count":2149,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1282,"mirror_url":null,"archived":false,"open_issues_count":14,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":1282,"open_issues":14,"watchers":2149,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/qgis/QGIS/pulls/7519"},"html":{"href":"https://github.com/qgis/QGIS/pull/7519"},"issue":{"href":"https://api.github.com/repos/qgis/QGIS/issues/7519"},"comments":{"href":"https://api.github.com/repos/qgis/QGIS/issues/7519/comments"},"review_comments":{"href":"https://api.github.com/repos/qgis/QGIS/pulls/7519/comments"},"review_comment":{"href":"https://api.github.com/repos/qgis/QGIS/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/qgis/QGIS/pulls/7519/commits"},"statuses":{"href":"https://api.github.com/repos/qgis/QGIS/statuses/56885e19aa3a4b72b9d4b5fb4dae115813fcc47e"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"nyalldawson"}}