)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"6933bcfa88d8df675802b5c667c82fd63542fb35","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The GetVolumeStats RPC call returns the count of objects and quarantined"},{"line_number":10,"context_line":"objects in a volume."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This will be used (at least) to remove empty volumes"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"While there, add missing debug log of the GetKvState function"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfbec78f_6b945945","line":12,"updated":"2019-05-04 23:29:26.000000000","message":"I think this could have lots of uses - but for the purpose of removing empty volumes (which should be not infrequent) I think we could do with a lot less IO in the index server","commit_id":"a40676ac76e0c292e9528436f0ff5e088a90aa97"}],"go/swift-rpc-losf/rpc.go":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"6933bcfa88d8df675802b5c667c82fd63542fb35","unresolved":false,"context_lines":[{"line_number":311,"context_line":"\t}"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"\t// Iterate over all objects"},{"line_number":314,"context_line":"\tit :\u003d s.kv.NewIterator(objectPrefix)"},{"line_number":315,"context_line":"\tdefer it.Close()"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"\tfor it.SeekToFirst(); it.Valid(); it.Next() {"}],"source_content_type":"text/x-go","patch_set":1,"id":"dfbec78f_4bc6356a","line":314,"updated":"2019-05-04 23:29:26.000000000","message":"Short of being the auditor, this is something you never want to have to write!!  :rofl:","commit_id":"a40676ac76e0c292e9528436f0ff5e088a90aa97"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"6933bcfa88d8df675802b5c667c82fd63542fb35","unresolved":false,"context_lines":[{"line_number":315,"context_line":"\tdefer it.Close()"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"\tfor it.SeekToFirst(); it.Valid(); it.Next() {"},{"line_number":318,"context_line":"\t\tvolumeIndex, _, err :\u003d DecodeObjectValue(it.Value())"},{"line_number":319,"context_line":"\t\tif err !\u003d nil {"},{"line_number":320,"context_line":"\t\t\treqlog.Error(\"failed to decode object value\")"},{"line_number":321,"context_line":"\t\t\ts.statsd_c.Increment(\"load_objects_by_volume.fail\")"}],"source_content_type":"text/x-go","patch_set":1,"id":"dfbec78f_eba049a8","line":318,"updated":"2019-05-04 23:29:26.000000000","message":"this is a lot of keys just to find the volume that doesn\u0027t have any objects in it","commit_id":"a40676ac76e0c292e9528436f0ff5e088a90aa97"}]}
