)]}'
{"go/objectserver/replicator.go":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"11f08fbdd54492952197fa55423e98514255457d","unresolved":false,"context_lines":[{"line_number":937,"context_line":"\t\t\tcontinue"},{"line_number":938,"context_line":"\t\t}"},{"line_number":939,"context_line":"\t\tif replicator.Rings[policy.Index], err \u003d hummingbird.GetRing(\"object\", hashPathPrefix, hashPathSuffix, policy.Index); err !\u003d nil {"},{"line_number":940,"context_line":"\t\t\treturn nil, fmt.Errorf(fmt.Sprintf(\"Unable to load ring for Policy %d.\", policy.Index))"},{"line_number":941,"context_line":"\t\t}"},{"line_number":942,"context_line":"\t}"},{"line_number":943,"context_line":"\tdevices_flag :\u003d flags.Lookup(\"devices\")"}],"source_content_type":"text/x-go","patch_set":1,"id":"ba5da102_be310fef","line":940,"updated":"2016-10-26 18:48:13.000000000","message":"Why not simply fmt.Errorf(\"Unable to load ring for Policy %d.\", policy.Index)?","commit_id":"e1b96bc7f9e0a0ab5f7687c92903073bc0a46a17"}],"go/probe/base.go":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"7ec46894d16410c0101cebad99b99119fe0110ff","unresolved":false,"context_lines":[{"line_number":239,"context_line":"\t\treplicator, err :\u003d objectserver.NewReplicator(conf, \u0026flag.FlagSet{})"},{"line_number":240,"context_line":"\t\tif err !\u003d nil {"},{"line_number":241,"context_line":"\t\t\tlog.Fatal(err)"},{"line_number":242,"context_line":"\t\t}"},{"line_number":243,"context_line":"\t\treplicator.(*objectserver.Replicator).Rings[0] \u003d env.ring"},{"line_number":244,"context_line":"\t\treplicator.(*objectserver.Replicator).Rings[1] \u003d env.ring"},{"line_number":245,"context_line":"\t\ttrs.Config.Handler \u003d replicator.(*objectserver.Replicator).GetHandler()"}],"source_content_type":"text/x-go","patch_set":2,"id":"7a77a97e_fd5e0944","line":242,"updated":"2016-11-15 18:45:49.000000000","message":"ok. If I remove my object ring file I now see:\n\n  % go test ./probe/ -run TestReplicationHandoff -v\n\u003d\u003d\u003d RUN   TestReplicationHandoff\n2016/11/15 18:31:05 base.go:241: Unable to load ring for Policy 0.\nexit status 1\nFAIL\t_/home/swift/swift/go/probe\t0.010s\n\non feature/hummingbird I see:\n\n  $ go test ./probe/ -run TestReplicationHandoff -v\n\u003d\u003d\u003d RUN   TestReplicationHandoff\n--- FAIL: TestReplicationHandoff (0.00s)\npanic: interface conversion: hummingbird.Daemon is nil, not *objectserver.Replicator [recovered]\n\tpanic: interface conversion: hummingbird.Daemon is nil, not *objectserver.Replicator\n\ngoroutine 10 [running]:\npanic(0x8eb060, 0xc82000f700)\n\t/usr/local/go/src/runtime/panic.go:481 +0x3e6\ntesting.tRunner.func1(0xc8200722d0)\n\t/usr/local/go/src/testing/testing.go:467 +0x192\npanic(0x8eb060, 0xc82000f700)\n\t/usr/local/go/src/runtime/panic.go:443 +0x4e9\n_/home/swift/swift/go/probe.NewEnvironment(0x0, 0x0, 0x0, 0x0)\n\t/home/swift/swift/go/probe/base.go:238 +0x1cc8\n_/home/swift/swift/go/probe.TestReplicationHandoff(0xc8200722d0)\n\t/home/swift/swift/go/probe/replicator_test.go:28 +0x34\ntesting.tRunner(0xc8200722d0, 0xe04f30)\n\t/usr/local/go/src/testing/testing.go:473 +0x98\ncreated by testing.RunTests\n\t/usr/local/go/src/testing/testing.go:582 +0x892\nexit status 2\nFAIL\t_/home/swift/swift/go/probe\t0.017s","commit_id":"2fdd2c480e9acb23a4233e59ae14df0a069474e1"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"7ec46894d16410c0101cebad99b99119fe0110ff","unresolved":false,"context_lines":[{"line_number":248,"context_line":"\t\tauditor, err :\u003d objectserver.NewAuditor(conf, \u0026flag.FlagSet{})"},{"line_number":249,"context_line":"\t\tif err !\u003d nil {"},{"line_number":250,"context_line":"\t\t\tlog.Fatal(err)"},{"line_number":251,"context_line":"\t\t}"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"\t\tenv.ring.(*FakeRing).devices \u003d append(env.ring.(*FakeRing).devices, \u0026hummingbird.Device{"},{"line_number":254,"context_line":"\t\t\tId: i, Device: \"sda\", Ip: host, Port: port, Region: 0, ReplicationIp: trsHost, ReplicationPort: trsPort, Weight: 1, Zone: i,"}],"source_content_type":"text/x-go","patch_set":2,"id":"7a77a97e_5d1e1dbb","line":251,"updated":"2016-11-15 18:45:49.000000000","message":"ok; if I understand correctly, NewAuditor will only return an err if the conf is missing an object-auditor section, but that section is set at line 234 so at the moment we\u0027ll never see an error, but this is good for the future.\n\nIf I comment out line 234 I now see:\n\n  \u003d\u003d\u003d RUN   TestReplicationHandoff\n2016/11/15 18:30:07 base.go:250: Unable to find object-auditor config section\nexit status 1\nFAIL\t_/home/swift/swift/go/probe\t0.013s\n\non feature/hummingbird I see:\n\n  \u003d\u003d\u003d RUN   TestReplicationHandoff\n--- FAIL: TestReplicationHandoff (0.00s)\npanic: interface conversion: hummingbird.Daemon is nil, not *objectserver.AuditorDaemon [recovered]\n\tpanic: interface conversion: hummingbird.Daemon is nil, not *objectserver.AuditorDaemon\n\ngoroutine 10 [running]:\npanic(0x8eb020, 0xc82000f7c0)\n\t/usr/local/go/src/runtime/panic.go:481 +0x3e6\ntesting.tRunner.func1(0xc8200722d0)\n\t/usr/local/go/src/testing/testing.go:467 +0x192\npanic(0x8eb020, 0xc82000f7c0)\n\t/usr/local/go/src/runtime/panic.go:443 +0x4e9\n_/home/swift/swift/go/probe.NewEnvironment(0x0, 0x0, 0x0, 0x0)\n\t/home/swift/swift/go/probe/base.go:254 +0x173f\n_/home/swift/swift/go/probe.TestReplicationHandoff(0xc8200722d0)\n\t/home/swift/swift/go/probe/replicator_test.go:28 +0x34\ntesting.tRunner(0xc8200722d0, 0xe04f30)\n\t/usr/local/go/src/testing/testing.go:473 +0x98\ncreated by testing.RunTests\n\t/usr/local/go/src/testing/testing.go:582 +0x892\nexit status 2\nFAIL\t_/home/swift/swift/go/probe\t0.023s","commit_id":"2fdd2c480e9acb23a4233e59ae14df0a069474e1"}]}
