{"action":"created","comment":{"url":"https://api.github.com/repos/ceph/ceph/pulls/comments/24168376","id":24168376,"diff_hunk":"@@ -1040,6 +1040,7 @@ namespace librados\n     friend class ObjectWriteOperation;  // copy_from needs to see our IoCtxImpl\n \n     IoCtxImpl *io_ctx_impl;\n+    std::list<std::string> *cached_pool_names;","path":"src/include/rados/librados.hpp","position":13,"original_position":13,"commit_id":"2e29f04737ec81b230f809b8b82a2aa5b2e140fc","original_commit_id":"2e29f04737ec81b230f809b8b82a2aa5b2e140fc","user":{"login":"liewegas","id":433031,"avatar_url":"https://avatars.githubusercontent.com/u/433031?v=3","gravatar_id":"","url":"https://api.github.com/users/liewegas","html_url":"https://github.com/liewegas","followers_url":"https://api.github.com/users/liewegas/followers","following_url":"https://api.github.com/users/liewegas/following{/other_user}","gists_url":"https://api.github.com/users/liewegas/gists{/gist_id}","starred_url":"https://api.github.com/users/liewegas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liewegas/subscriptions","organizations_url":"https://api.github.com/users/liewegas/orgs","repos_url":"https://api.github.com/users/liewegas/repos","events_url":"https://api.github.com/users/liewegas/events{/privacy}","received_events_url":"https://api.github.com/users/liewegas/received_events","type":"User","site_admin":false},"body":"On Thu, 5 Feb 2015, rzarzynski wrote:\n> \n> In src/include/rados/librados.hpp:\n> \n> > @@ -1040,6 +1040,7 @@ namespace librados\n> >      friend class ObjectWriteOperation;  // copy_from needs to see our IoCtxImpl\n> >  \n> >      IoCtxImpl *io_ctx_impl;\n> > +    std::list<std::string> *cached_pool_names;\n> \n> Poking with raw pointers is error prone, I know. Storing the std::list just as the member of IoCtx would be much better\n> solution. Unfortunately, it looks like the const variant of get_pool_name() must be able to modify the list too. Maybe\n> could we address that via some kind of smart pointer? On the other hand the librados doesn't seem to use such things\n> currently, so it could be an introduction of unwanted dependency...\n\nAh, that's what the 'mutable' keyword is for:\n\n mutable std::list<std::string> cached_pool_names;\n","created_at":"2015-02-05T15:05:12Z","updated_at":"2015-02-05T15:05:12Z","html_url":"https://github.com/ceph/ceph/pull/3515#discussion_r24168376","pull_request_url":"https://api.github.com/repos/ceph/ceph/pulls/3515","_links":{"self":{"href":"https://api.github.com/repos/ceph/ceph/pulls/comments/24168376"},"html":{"href":"https://github.com/ceph/ceph/pull/3515#discussion_r24168376"},"pull_request":{"href":"https://api.github.com/repos/ceph/ceph/pulls/3515"}}},"pull_request":{"url":"https://api.github.com/repos/ceph/ceph/pulls/3515","id":28179901,"html_url":"https://github.com/ceph/ceph/pull/3515","diff_url":"https://github.com/ceph/ceph/pull/3515.diff","patch_url":"https://github.com/ceph/ceph/pull/3515.patch","issue_url":"https://api.github.com/repos/ceph/ceph/issues/3515","number":3515,"state":"open","locked":false,"title":"librados: Wip 10458 - rectify the pool name caching in IoCtxImpl.","user":{"login":"rzarzynski","id":1891217,"avatar_url":"https://avatars.githubusercontent.com/u/1891217?v=3","gravatar_id":"","url":"https://api.github.com/users/rzarzynski","html_url":"https://github.com/rzarzynski","followers_url":"https://api.github.com/users/rzarzynski/followers","following_url":"https://api.github.com/users/rzarzynski/following{/other_user}","gists_url":"https://api.github.com/users/rzarzynski/gists{/gist_id}","starred_url":"https://api.github.com/users/rzarzynski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rzarzynski/subscriptions","organizations_url":"https://api.github.com/users/rzarzynski/orgs","repos_url":"https://api.github.com/users/rzarzynski/repos","events_url":"https://api.github.com/users/rzarzynski/events{/privacy}","received_events_url":"https://api.github.com/users/rzarzynski/received_events","type":"User","site_admin":false},"body":"Fixes: #10458\r\nSigned-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>","created_at":"2015-01-28T09:46:20Z","updated_at":"2015-02-05T15:05:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"109eb5b8295efc354dcc5578cd0f95fcfccbb553","assignee":{"login":"liewegas","id":433031,"avatar_url":"https://avatars.githubusercontent.com/u/433031?v=3","gravatar_id":"","url":"https://api.github.com/users/liewegas","html_url":"https://github.com/liewegas","followers_url":"https://api.github.com/users/liewegas/followers","following_url":"https://api.github.com/users/liewegas/following{/other_user}","gists_url":"https://api.github.com/users/liewegas/gists{/gist_id}","starred_url":"https://api.github.com/users/liewegas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liewegas/subscriptions","organizations_url":"https://api.github.com/users/liewegas/orgs","repos_url":"https://api.github.com/users/liewegas/repos","events_url":"https://api.github.com/users/liewegas/events{/privacy}","received_events_url":"https://api.github.com/users/liewegas/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/ceph/ceph/milestones/5","labels_url":"https://api.github.com/repos/ceph/ceph/milestones/5/labels","id":862053,"number":5,"title":"hammer","description":"","creator":{"login":"liewegas","id":433031,"avatar_url":"https://avatars.githubusercontent.com/u/433031?v=3","gravatar_id":"","url":"https://api.github.com/users/liewegas","html_url":"https://github.com/liewegas","followers_url":"https://api.github.com/users/liewegas/followers","following_url":"https://api.github.com/users/liewegas/following{/other_user}","gists_url":"https://api.github.com/users/liewegas/gists{/gist_id}","starred_url":"https://api.github.com/users/liewegas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liewegas/subscriptions","organizations_url":"https://api.github.com/users/liewegas/orgs","repos_url":"https://api.github.com/users/liewegas/repos","events_url":"https://api.github.com/users/liewegas/events{/privacy}","received_events_url":"https://api.github.com/users/liewegas/received_events","type":"User","site_admin":false},"open_issues":13,"closed_issues":38,"state":"open","created_at":"2014-11-11T16:32:01Z","updated_at":"2015-02-05T14:55:58Z","due_on":"2015-03-30T22:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/ceph/ceph/pulls/3515/commits","review_comments_url":"https://api.github.com/repos/ceph/ceph/pulls/3515/comments","review_comment_url":"https://api.github.com/repos/ceph/ceph/pulls/comments/{number}","comments_url":"https://api.github.com/repos/ceph/ceph/issues/3515/comments","statuses_url":"https://api.github.com/repos/ceph/ceph/statuses/2e29f04737ec81b230f809b8b82a2aa5b2e140fc","head":{"label":"rzarzynski:wip-10458","ref":"wip-10458","sha":"2e29f04737ec81b230f809b8b82a2aa5b2e140fc","user":{"login":"rzarzynski","id":1891217,"avatar_url":"https://avatars.githubusercontent.com/u/1891217?v=3","gravatar_id":"","url":"https://api.github.com/users/rzarzynski","html_url":"https://github.com/rzarzynski","followers_url":"https://api.github.com/users/rzarzynski/followers","following_url":"https://api.github.com/users/rzarzynski/following{/other_user}","gists_url":"https://api.github.com/users/rzarzynski/gists{/gist_id}","starred_url":"https://api.github.com/users/rzarzynski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rzarzynski/subscriptions","organizations_url":"https://api.github.com/users/rzarzynski/orgs","repos_url":"https://api.github.com/users/rzarzynski/repos","events_url":"https://api.github.com/users/rzarzynski/events{/privacy}","received_events_url":"https://api.github.com/users/rzarzynski/received_events","type":"User","site_admin":false},"repo":{"id":29937571,"name":"ceph","full_name":"rzarzynski/ceph","owner":{"login":"rzarzynski","id":1891217,"avatar_url":"https://avatars.githubusercontent.com/u/1891217?v=3","gravatar_id":"","url":"https://api.github.com/users/rzarzynski","html_url":"https://github.com/rzarzynski","followers_url":"https://api.github.com/users/rzarzynski/followers","following_url":"https://api.github.com/users/rzarzynski/following{/other_user}","gists_url":"https://api.github.com/users/rzarzynski/gists{/gist_id}","starred_url":"https://api.github.com/users/rzarzynski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rzarzynski/subscriptions","organizations_url":"https://api.github.com/users/rzarzynski/orgs","repos_url":"https://api.github.com/users/rzarzynski/repos","events_url":"https://api.github.com/users/rzarzynski/events{/privacy}","received_events_url":"https://api.github.com/users/rzarzynski/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rzarzynski/ceph","description":"Ceph is a distributed object, block, and file storage platform ","fork":true,"url":"https://api.github.com/repos/rzarzynski/ceph","forks_url":"https://api.github.com/repos/rzarzynski/ceph/forks","keys_url":"https://api.github.com/repos/rzarzynski/ceph/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rzarzynski/ceph/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rzarzynski/ceph/teams","hooks_url":"https://api.github.com/repos/rzarzynski/ceph/hooks","issue_events_url":"https://api.github.com/repos/rzarzynski/ceph/issues/events{/number}","events_url":"https://api.github.com/repos/rzarzynski/ceph/events","assignees_url":"https://api.github.com/repos/rzarzynski/ceph/assignees{/user}","branches_url":"https://api.github.com/repos/rzarzynski/ceph/branches{/branch}","tags_url":"https://api.github.com/repos/rzarzynski/ceph/tags","blobs_url":"https://api.github.com/repos/rzarzynski/ceph/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rzarzynski/ceph/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rzarzynski/ceph/git/refs{/sha}","trees_url":"https://api.github.com/repos/rzarzynski/ceph/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rzarzynski/ceph/statuses/{sha}","languages_url":"https://api.github.com/repos/rzarzynski/ceph/languages","stargazers_url":"https://api.github.com/repos/rzarzynski/ceph/stargazers","contributors_url":"https://api.github.com/repos/rzarzynski/ceph/contributors","subscribers_url":"https://api.github.com/repos/rzarzynski/ceph/subscribers","subscription_url":"https://api.github.com/repos/rzarzynski/ceph/subscription","commits_url":"https://api.github.com/repos/rzarzynski/ceph/commits{/sha}","git_commits_url":"https://api.github.com/repos/rzarzynski/ceph/git/commits{/sha}","comments_url":"https://api.github.com/repos/rzarzynski/ceph/comments{/number}","issue_comment_url":"https://api.github.com/repos/rzarzynski/ceph/issues/comments/{number}","contents_url":"https://api.github.com/repos/rzarzynski/ceph/contents/{+path}","compare_url":"https://api.github.com/repos/rzarzynski/ceph/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rzarzynski/ceph/merges","archive_url":"https://api.github.com/repos/rzarzynski/ceph/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rzarzynski/ceph/downloads","issues_url":"https://api.github.com/repos/rzarzynski/ceph/issues{/number}","pulls_url":"https://api.github.com/repos/rzarzynski/ceph/pulls{/number}","milestones_url":"https://api.github.com/repos/rzarzynski/ceph/milestones{/number}","notifications_url":"https://api.github.com/repos/rzarzynski/ceph/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rzarzynski/ceph/labels{/name}","releases_url":"https://api.github.com/repos/rzarzynski/ceph/releases{/id}","created_at":"2015-01-27T22:12:49Z","updated_at":"2015-02-03T14:51:14Z","pushed_at":"2015-02-04T09:07:07Z","git_url":"git://github.com/rzarzynski/ceph.git","ssh_url":"git@github.com:rzarzynski/ceph.git","clone_url":"https://github.com/rzarzynski/ceph.git","svn_url":"https://github.com/rzarzynski/ceph","homepage":"http://ceph.com","size":107051,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ceph:master","ref":"master","sha":"5e8981709ab1c45936fd0e722693f8320c1b9a6d","user":{"login":"ceph","id":1015767,"avatar_url":"https://avatars.githubusercontent.com/u/1015767?v=3","gravatar_id":"","url":"https://api.github.com/users/ceph","html_url":"https://github.com/ceph","followers_url":"https://api.github.com/users/ceph/followers","following_url":"https://api.github.com/users/ceph/following{/other_user}","gists_url":"https://api.github.com/users/ceph/gists{/gist_id}","starred_url":"https://api.github.com/users/ceph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ceph/subscriptions","organizations_url":"https://api.github.com/users/ceph/orgs","repos_url":"https://api.github.com/users/ceph/repos","events_url":"https://api.github.com/users/ceph/events{/privacy}","received_events_url":"https://api.github.com/users/ceph/received_events","type":"Organization","site_admin":false},"repo":{"id":2310495,"name":"ceph","full_name":"ceph/ceph","owner":{"login":"ceph","id":1015767,"avatar_url":"https://avatars.githubusercontent.com/u/1015767?v=3","gravatar_id":"","url":"https://api.github.com/users/ceph","html_url":"https://github.com/ceph","followers_url":"https://api.github.com/users/ceph/followers","following_url":"https://api.github.com/users/ceph/following{/other_user}","gists_url":"https://api.github.com/users/ceph/gists{/gist_id}","starred_url":"https://api.github.com/users/ceph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ceph/subscriptions","organizations_url":"https://api.github.com/users/ceph/orgs","repos_url":"https://api.github.com/users/ceph/repos","events_url":"https://api.github.com/users/ceph/events{/privacy}","received_events_url":"https://api.github.com/users/ceph/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ceph/ceph","description":"Ceph is a distributed object, block, and file storage platform ","fork":false,"url":"https://api.github.com/repos/ceph/ceph","forks_url":"https://api.github.com/repos/ceph/ceph/forks","keys_url":"https://api.github.com/repos/ceph/ceph/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ceph/ceph/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ceph/ceph/teams","hooks_url":"https://api.github.com/repos/ceph/ceph/hooks","issue_events_url":"https://api.github.com/repos/ceph/ceph/issues/events{/number}","events_url":"https://api.github.com/repos/ceph/ceph/events","assignees_url":"https://api.github.com/repos/ceph/ceph/assignees{/user}","branches_url":"https://api.github.com/repos/ceph/ceph/branches{/branch}","tags_url":"https://api.github.com/repos/ceph/ceph/tags","blobs_url":"https://api.github.com/repos/ceph/ceph/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ceph/ceph/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ceph/ceph/git/refs{/sha}","trees_url":"https://api.github.com/repos/ceph/ceph/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ceph/ceph/statuses/{sha}","languages_url":"https://api.github.com/repos/ceph/ceph/languages","stargazers_url":"https://api.github.com/repos/ceph/ceph/stargazers","contributors_url":"https://api.github.com/repos/ceph/ceph/contributors","subscribers_url":"https://api.github.com/repos/ceph/ceph/subscribers","subscription_url":"https://api.github.com/repos/ceph/ceph/subscription","commits_url":"https://api.github.com/repos/ceph/ceph/commits{/sha}","git_commits_url":"https://api.github.com/repos/ceph/ceph/git/commits{/sha}","comments_url":"https://api.github.com/repos/ceph/ceph/comments{/number}","issue_comment_url":"https://api.github.com/repos/ceph/ceph/issues/comments/{number}","contents_url":"https://api.github.com/repos/ceph/ceph/contents/{+path}","compare_url":"https://api.github.com/repos/ceph/ceph/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ceph/ceph/merges","archive_url":"https://api.github.com/repos/ceph/ceph/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ceph/ceph/downloads","issues_url":"https://api.github.com/repos/ceph/ceph/issues{/number}","pulls_url":"https://api.github.com/repos/ceph/ceph/pulls{/number}","milestones_url":"https://api.github.com/repos/ceph/ceph/milestones{/number}","notifications_url":"https://api.github.com/repos/ceph/ceph/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ceph/ceph/labels{/name}","releases_url":"https://api.github.com/repos/ceph/ceph/releases{/id}","created_at":"2011-09-01T21:41:26Z","updated_at":"2015-02-05T14:55:58Z","pushed_at":"2015-02-05T14:57:45Z","git_url":"git://github.com/ceph/ceph.git","ssh_url":"git@github.com:ceph/ceph.git","clone_url":"https://github.com/ceph/ceph.git","svn_url":"https://github.com/ceph/ceph","homepage":"http://ceph.com","size":349078,"stargazers_count":1109,"watchers_count":1109,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":587,"mirror_url":null,"open_issues_count":104,"forks":587,"open_issues":104,"watchers":1109,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ceph/ceph/pulls/3515"},"html":{"href":"https://github.com/ceph/ceph/pull/3515"},"issue":{"href":"https://api.github.com/repos/ceph/ceph/issues/3515"},"comments":{"href":"https://api.github.com/repos/ceph/ceph/issues/3515/comments"},"review_comments":{"href":"https://api.github.com/repos/ceph/ceph/pulls/3515/comments"},"review_comment":{"href":"https://api.github.com/repos/ceph/ceph/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/ceph/ceph/pulls/3515/commits"},"statuses":{"href":"https://api.github.com/repos/ceph/ceph/statuses/2e29f04737ec81b230f809b8b82a2aa5b2e140fc"}}}}