{"action":"created","issue":{"url":"https://api.github.com/repos/knorrie/btrfs-heatmap/issues/4","repository_url":"https://api.github.com/repos/knorrie/btrfs-heatmap","labels_url":"https://api.github.com/repos/knorrie/btrfs-heatmap/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/knorrie/btrfs-heatmap/issues/4/comments","events_url":"https://api.github.com/repos/knorrie/btrfs-heatmap/issues/4/events","html_url":"https://github.com/knorrie/btrfs-heatmap/issues/4","id":328681437,"node_id":"MDU6SXNzdWUzMjg2ODE0Mzc=","number":4,"title":"StopIteration when doing --sort virtual on small filesystem","user":{"login":"knorrie","id":627100,"node_id":"MDQ6VXNlcjYyNzEwMA==","avatar_url":"https://avatars3.githubusercontent.com/u/627100?v=4","gravatar_id":"","url":"https://api.github.com/users/knorrie","html_url":"https://github.com/knorrie","followers_url":"https://api.github.com/users/knorrie/followers","following_url":"https://api.github.com/users/knorrie/following{/other_user}","gists_url":"https://api.github.com/users/knorrie/gists{/gist_id}","starred_url":"https://api.github.com/users/knorrie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/knorrie/subscriptions","organizations_url":"https://api.github.com/users/knorrie/orgs","repos_url":"https://api.github.com/users/knorrie/repos","events_url":"https://api.github.com/users/knorrie/events{/privacy}","received_events_url":"https://api.github.com/users/knorrie/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-06-01T22:43:15Z","updated_at":"2018-06-02T19:45:08Z","closed_at":null,"author_association":"OWNER","body":"I'm writing tutorial documentation for python-btrfs and have a small 18GiB filesystem consisting of three 6GiB loop devices on top of files in another filesystem.\r\n\r\n```\r\n-# ./heatmap.py --sort virtual --size 8 /mnt/tutorial\r\nscope chunks\r\ngrid curve hilbert order 5 size 8 height 32 width 32 total_bytes 19327352832 bytes_per_pixel 18874368.0\r\nTraceback (most recent call last):\r\n  File \"./heatmap.py\", line 632, in <module>\r\n    main()\r\n  File \"./heatmap.py\", line 605, in main\r\n    curve=args.curve)\r\n  File \"./heatmap.py\", line 377, in walk_chunks\r\n    dev_extent_colors[block_group.flags & btrfs.BLOCK_GROUP_TYPE_MASK])\r\n  File \"./heatmap.py\", line 318, in fill\r\n    self._next_pixel()\r\n  File \"./heatmap.py\", line 239, in _next_pixel\r\n    self.y, self.x, self.linear = next(self.curve)\r\nStopIteration\r\n```\r\n\r\nBoom! That shouldn't happen!"},"comment":{"url":"https://api.github.com/repos/knorrie/btrfs-heatmap/issues/comments/394112257","html_url":"https://github.com/knorrie/btrfs-heatmap/issues/4#issuecomment-394112257","issue_url":"https://api.github.com/repos/knorrie/btrfs-heatmap/issues/4","id":394112257,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NDExMjI1Nw==","user":{"login":"knorrie","id":627100,"node_id":"MDQ6VXNlcjYyNzEwMA==","avatar_url":"https://avatars3.githubusercontent.com/u/627100?v=4","gravatar_id":"","url":"https://api.github.com/users/knorrie","html_url":"https://github.com/knorrie","followers_url":"https://api.github.com/users/knorrie/followers","following_url":"https://api.github.com/users/knorrie/following{/other_user}","gists_url":"https://api.github.com/users/knorrie/gists{/gist_id}","starred_url":"https://api.github.com/users/knorrie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/knorrie/subscriptions","organizations_url":"https://api.github.com/users/knorrie/orgs","repos_url":"https://api.github.com/users/knorrie/repos","events_url":"https://api.github.com/users/knorrie/events{/privacy}","received_events_url":"https://api.github.com/users/knorrie/received_events","type":"User","site_admin":false},"created_at":"2018-06-02T19:45:08Z","updated_at":"2018-06-02T19:45:08Z","author_association":"OWNER","body":"Euh, no.  Looking up device extents objects for each stripe would be a large waste of cpu and disk io. When the amount of stripe items in the chunk is known and the profile, we can calcute the actual total usage on disk with a few simple rules."}}
{"actor":{"display_login":"knorrie"}}