)]}'
{"go/objectserver/replicator.go":[{"author":{"_account_id":2828,"name":"Michael Barton","email":"mike@weirdlooking.com","username":"redbo"},"change_message_id":"834f9aa57a80dd6340ac608da55233d5d98977c9","unresolved":false,"context_lines":[{"line_number":67,"context_line":"\tToDevices  []*hummingbird.Device `json:\"to_devices\"`"},{"line_number":68,"context_line":"}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"type DeviceProgress struct {"},{"line_number":71,"context_line":"\tPartitionsDone   uint64"},{"line_number":72,"context_line":"\tPartitionsTotal  uint64"},{"line_number":73,"context_line":"\tStartDate        time.Time"}],"source_content_type":"text/x-go","patch_set":1,"id":"dab17558_83cce16a","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":28},"updated":"2016-05-17 18:05:05.000000000","message":"We should stop exporting things that don\u0027t really need to be exported.","commit_id":"2d33ed14cf908fba71d7dfb6d4566f01f9161d23"},{"author":{"_account_id":2828,"name":"Michael Barton","email":"mike@weirdlooking.com","username":"redbo"},"change_message_id":"834f9aa57a80dd6340ac608da55233d5d98977c9","unresolved":false,"context_lines":[{"line_number":508,"context_line":"\tdefer r.LogPanics(fmt.Sprintf(\"PANIC REPLICATING DEVICE: %s\", dev.Device))"},{"line_number":509,"context_line":"\tdefer r.devGroup.Done()"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"\tif _, ok :\u003d r.deviceProgress[dev.Device]; !ok {"},{"line_number":512,"context_line":"\t\tdp :\u003d \u0026DeviceProgress{"},{"line_number":513,"context_line":"\t\t\tdev:        dev,"},{"line_number":514,"context_line":"\t\t\tStartDate:  time.Now(),"}],"source_content_type":"text/x-go","patch_set":1,"id":"dab17558_6379fd2e","line":511,"range":{"start_line":511,"start_character":0,"end_line":511,"end_character":48},"updated":"2016-05-17 18:05:05.000000000","message":"This needs to not access a shared map from multiple goroutines.  I think the statsReporter can create this the first time it gets a deviceProgressPassInit message instead.\n\nThen the canceler has to work a little different, but I think it\u0027ll end up cleaner.","commit_id":"2d33ed14cf908fba71d7dfb6d4566f01f9161d23"}]}
