{"action":"created","issue":{"url":"https://api.github.com/repos/ManageIQ/manageiq/issues/9981","repository_url":"https://api.github.com/repos/ManageIQ/manageiq","labels_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/9981/labels{/name}","comments_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/9981/comments","events_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/9981/events","html_url":"https://github.com/ManageIQ/manageiq/pull/9981","id":166859429,"number":9981,"title":"Fix Caching Issues for MiqHyperVDisk","user":{"login":"jerryk55","id":6118503,"avatar_url":"https://avatars.githubusercontent.com/u/6118503?v=3","gravatar_id":"","url":"https://api.github.com/users/jerryk55","html_url":"https://github.com/jerryk55","followers_url":"https://api.github.com/users/jerryk55/followers","following_url":"https://api.github.com/users/jerryk55/following{/other_user}","gists_url":"https://api.github.com/users/jerryk55/gists{/gist_id}","starred_url":"https://api.github.com/users/jerryk55/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jerryk55/subscriptions","organizations_url":"https://api.github.com/users/jerryk55/orgs","repos_url":"https://api.github.com/users/jerryk55/repos","events_url":"https://api.github.com/users/jerryk55/events{/privacy}","received_events_url":"https://api.github.com/users/jerryk55/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ManageIQ/manageiq/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/ManageIQ/manageiq/labels/smart%20state","name":"smart state","color":"5319e7"}],"state":"open","locked":false,"assignee":{"login":"roliveri","id":2810177,"avatar_url":"https://avatars.githubusercontent.com/u/2810177?v=3","gravatar_id":"","url":"https://api.github.com/users/roliveri","html_url":"https://github.com/roliveri","followers_url":"https://api.github.com/users/roliveri/followers","following_url":"https://api.github.com/users/roliveri/following{/other_user}","gists_url":"https://api.github.com/users/roliveri/gists{/gist_id}","starred_url":"https://api.github.com/users/roliveri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roliveri/subscriptions","organizations_url":"https://api.github.com/users/roliveri/orgs","repos_url":"https://api.github.com/users/roliveri/repos","events_url":"https://api.github.com/users/roliveri/events{/privacy}","received_events_url":"https://api.github.com/users/roliveri/received_events","type":"User","site_admin":false},"assignees":[{"login":"roliveri","id":2810177,"avatar_url":"https://avatars.githubusercontent.com/u/2810177?v=3","gravatar_id":"","url":"https://api.github.com/users/roliveri","html_url":"https://github.com/roliveri","followers_url":"https://api.github.com/users/roliveri/followers","following_url":"https://api.github.com/users/roliveri/following{/other_user}","gists_url":"https://api.github.com/users/roliveri/gists{/gist_id}","starred_url":"https://api.github.com/users/roliveri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roliveri/subscriptions","organizations_url":"https://api.github.com/users/roliveri/orgs","repos_url":"https://api.github.com/users/roliveri/repos","events_url":"https://api.github.com/users/roliveri/events{/privacy}","received_events_url":"https://api.github.com/users/roliveri/received_events","type":"User","site_admin":false}],"milestone":null,"comments":4,"created_at":"2016-07-21T16:14:07Z","updated_at":"2016-07-21T19:46:30Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ManageIQ/manageiq/pulls/9981","html_url":"https://github.com/ManageIQ/manageiq/pull/9981","diff_url":"https://github.com/ManageIQ/manageiq/pull/9981.diff","patch_url":"https://github.com/ManageIQ/manageiq/pull/9981.patch"},"body":"Purpose or Intent\r\n-----------------\r\nSeveral caching issues have been uncovered and will be addressed here.\r\nSimilar changes will be necessary in the MiqDiskCache MiqDisk module but\r\nwill be addressed via separate pull request.\r\n\r\n1) Cache requests where the request overlapped an existing cache entry\r\nboth at the start and end resulted in new entry duplicating the existing\r\nentry plus the data at start and end.  This will instead be addressed by\r\ncreating new entries for the start and end and using the existing entry.\r\nThis is a performance issue.\r\n\r\n2) Cache requests where the end of the request (but not the start) was present\r\nin an existing cache entry used the incorrect offset into the entry for the data\r\nreturned. This is a data integrity issue.\r\n\r\n3) The range of blocks cached for new entries was determined incorrectly.\r\nDepending upon the request from the disk module less data might be cached than required.\r\nThis is a performance issue.\r\n\r\n4) Concatenating cache entries with recursive calls to bread_cached used the \"+\"\r\noperator and will be changed to \"<<\" to eliminate some temporary buffer allocation\r\nand speed things up a little.\r\n\r\n@roliveri thanks for your help resolving these.  Please review.  @Fryguy @chessbyte you may also be interested in reviewing."},"comment":{"url":"https://api.github.com/repos/ManageIQ/manageiq/issues/comments/234362771","html_url":"https://github.com/ManageIQ/manageiq/pull/9981#issuecomment-234362771","issue_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/9981","id":234362771,"user":{"login":"miq-bot","id":7806257,"avatar_url":"https://avatars.githubusercontent.com/u/7806257?v=3","gravatar_id":"","url":"https://api.github.com/users/miq-bot","html_url":"https://github.com/miq-bot","followers_url":"https://api.github.com/users/miq-bot/followers","following_url":"https://api.github.com/users/miq-bot/following{/other_user}","gists_url":"https://api.github.com/users/miq-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/miq-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miq-bot/subscriptions","organizations_url":"https://api.github.com/users/miq-bot/orgs","repos_url":"https://api.github.com/users/miq-bot/repos","events_url":"https://api.github.com/users/miq-bot/events{/privacy}","received_events_url":"https://api.github.com/users/miq-bot/received_events","type":"User","site_admin":false},"created_at":"2016-07-21T19:46:30Z","updated_at":"2016-07-21T19:46:30Z","body":"<rubocop />Checked commits https://github.com/jerryk55/manageiq/compare/21d69a879f0da3678d449ce13fc442b3422ac03b~...203bccb464136b4e292cb260710437c1041dae90 with ruby 2.2.5, rubocop 0.37.2, and haml-lint 0.16.1\n1 file checked, 1 offense detected\n\n**gems/pending/Scvmm/miq_hyperv_disk.rb**\n- [ ] :exclamation: - [Line 134](https://github.com/jerryk55/manageiq/blob/203bccb464136b4e292cb260710437c1041dae90/gems/pending/Scvmm/miq_hyperv_disk.rb#L134), Col 92 - [Style/TrailingWhitespace](http://rubydoc.info/gems/rubocop/0.37.2/RuboCop/Cop/Style/TrailingWhitespace) - Trailing whitespace detected.\n"}}
{"actor":{"display_login":"miq-bot"}}