{"action":"opened","issue":{"url":"https://api.github.com/repos/whosonfirst/go-mapzen-whosonfirst-s3/issues/2","labels_url":"https://api.github.com/repos/whosonfirst/go-mapzen-whosonfirst-s3/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/whosonfirst/go-mapzen-whosonfirst-s3/issues/2/comments","events_url":"https://api.github.com/repos/whosonfirst/go-mapzen-whosonfirst-s3/issues/2/events","html_url":"https://github.com/whosonfirst/go-mapzen-whosonfirst-s3/issues/2","id":109199921,"number":2,"title":"Why do HTTP HEAD requests request in a freak-out-and-die loop?","user":{"login":"thisisaaronland","id":12658759,"avatar_url":"https://avatars.githubusercontent.com/u/12658759?v=3","gravatar_id":"","url":"https://api.github.com/users/thisisaaronland","html_url":"https://github.com/thisisaaronland","followers_url":"https://api.github.com/users/thisisaaronland/followers","following_url":"https://api.github.com/users/thisisaaronland/following{/other_user}","gists_url":"https://api.github.com/users/thisisaaronland/gists{/gist_id}","starred_url":"https://api.github.com/users/thisisaaronland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thisisaaronland/subscriptions","organizations_url":"https://api.github.com/users/thisisaaronland/orgs","repos_url":"https://api.github.com/users/thisisaaronland/repos","events_url":"https://api.github.com/users/thisisaaronland/events{/privacy}","received_events_url":"https://api.github.com/users/thisisaaronland/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-09-30T23:20:54Z","updated_at":"2015-09-30T23:20:54Z","closed_at":null,"body":"Note: The same number / frequency of PUT requests are processed just fine...\r\n\r\n```\r\n$> ./sync -bucket com.mapzen.debug -credentials creds -root /usr/local/mapzen/whosonfirst-data/data/101\r\nSKIP /716/257/101716257.geojson because it is unchanged\r\nSKIP /721/173/101721173.geojson because it is unchanged\r\nSKIP /724/103/101724103.geojson because it is unchanged\r\nSKIP /723/001/101723001.geojson because it is unchanged\r\nSKIP /715/191/101715191.geojson because it is unchanged\r\nSKIP /727/001/101727001.geojson because it is unchanged\r\nSKIP /725/099/101725099.geojson because it is unchanged\r\nSKIP /719/001/101719001.geojson because it is unchanged\r\nSKIP /713/063/101713063.geojson because it is unchanged\r\nSKIP /720/001/101720001.geojson because it is unchanged\r\nSKIP /726/387/101726387.geojson because it is unchanged\r\nSKIP /722/057/101722057.geojson because it is unchanged\r\nSKIP /712/265/101712265.geojson because it is unchanged\r\npanic: runtime error: invalid memory address or nil pointer dereference\r\n[signal 0xb code=0x1 addr=0x38 pc=0x43f573]\r\n\r\ngoroutine 7 [running]:\r\ncom.mapzen/whosonfirst/s3.func·002()\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/com.mapzen/whosonfirst/s3/sync.go:124 +0x143\r\ngithub.com/jeffail/tunny.func·001(0x67d620, 0xc208296000, 0x0, 0x0)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/tunny.go:196 +0x67\r\ngithub.com/jeffail/tunny.(*tunnyDefaultWorker).TunnyJob(0xc208038058, 0x67d620, 0xc208296000, 0x0, 0x0)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/tunny.go:90 +0x50\r\ngithub.com/jeffail/tunny.(*workerWrapper).Loop(0xc20803af90)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/worker.go:54 +0x162\r\ncreated by github.com/jeffail/tunny.(*workerWrapper).Open\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/worker.go:80 +0x165\r\n\r\ngoroutine 1 [semacquire]:\r\nsync.(*WaitGroup).Wait(0xc2080403d0)\r\n\t/usr/local/mapzen/golang/go/src/sync/waitgroup.go:132 +0x169\r\ngithub.com/MichaelTJones/walk.Walk(0x7ffff897e83d, 0x2b, 0xc208028990, 0x0, 0x0)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/MichaelTJones/walk/walk.go:159 +0x2cb\r\ngithub.com/whosonfirst/go-mapzen-whosonfirst-crawl/src/com.mapzen/whosonfirst.Crawler.Crawl(0x7ffff897e83d, 0x2b, 0xc20803acc0, 0x0, 0x0)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/whosonfirst/go-mapzen-whosonfirst-crawl/src/com.mapzen/whosonfirst/crawl.go:45 +0xcb\r\ncom.mapzen/whosonfirst/s3.Sync.SyncDirectory(0x782cd0, 0xb, 0xc2080e0000, 0x7ffff897e7ff, 0x10, 0xc208064400, 0x20, 0x20, 0xc2080c6000, 0x20, ...)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/com.mapzen/whosonfirst/s3/sync.go:91 +0x2e9\r\nmain.main()\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/bin/sync.go:58 +0x3d9\r\n\r\ngoroutine 5 [chan receive]:\r\nmain.func·001(0xc208058120)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/bin/sync.go:51 +0x5b\r\ncreated by main.main\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/bin/sync.go:55 +0x357\r\n\r\ngoroutine 6 [chan send]:\r\ngithub.com/jeffail/tunny.(*workerWrapper).Loop(0xc20803af60)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/worker.go:51 +0xbf\r\ncreated by github.com/jeffail/tunny.(*workerWrapper).Open\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/worker.go:80 +0x165\r\n\r\ngoroutine 8 [chan send]:\r\ngithub.com/jeffail/tunny.(*workerWrapper).Loop(0xc20803afc0)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/worker.go:61 +0x232\r\ncreated by github.com/jeffail/tunny.(*workerWrapper).Open\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/worker.go:80 +0x165\r\n\r\ngoroutine 9 [select]:\r\nnet/http.(*persistConn).roundTrip(0xc20835e2c0, 0xc208029700, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/http/transport.go:1082 +0x7ad\r\nnet/http.(*Transport).RoundTrip(0xc208186630, 0xc2083ea0d0, 0xc2082294a0, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/http/transport.go:235 +0x558\r\nnet/http.send(0xc2083ea0d0, 0x7fa2f16a7e38, 0xc208186630, 0x43, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/http/client.go:219 +0x4fc\r\nnet/http.(*Client).send(0xc208230360, 0xc2083ea0d0, 0x43, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/http/client.go:142 +0x15b\r\nnet/http.(*Client).doFollowingRedirects(0xc208230360, 0xc2083ea0d0, 0x806a08, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/http/client.go:367 +0xb25\r\nnet/http.(*Client).Do(0xc208230360, 0xc2083ea0d0, 0x773b50, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/http/client.go:174 +0xa4\r\ngithub.com/goamz/goamz/s3.(*S3).run(0xc2080e0000, 0xc208382100, 0x0, 0x0, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/goamz/goamz/s3/s3.go:1015 +0x4eb\r\ngithub.com/goamz/goamz/s3.(*Bucket).Head(0xc208382090, 0xc2083420c0, 0x1a, 0xc2080f80c0, 0x20, 0x0, 0x0)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/goamz/goamz/s3/s3.go:322 +0x1f3\r\ncom.mapzen/whosonfirst/s3.func·002()\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/com.mapzen/whosonfirst/s3/sync.go:122 +0x13e\r\ngithub.com/jeffail/tunny.func·001(0x67d620, 0xc208342100, 0x0, 0x0)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/tunny.go:196 +0x67\r\ngithub.com/jeffail/tunny.(*tunnyDefaultWorker).TunnyJob(0xc208038068, 0x67d620, 0xc208342100, 0x0, 0x0)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/tunny.go:90 +0x50\r\ngithub.com/jeffail/tunny.(*workerWrapper).Loop(0xc20803aff0)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/worker.go:54 +0x162\r\ncreated by github.com/jeffail/tunny.(*workerWrapper).Open\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/jeffail/tunny/worker.go:80 +0x165\r\n\r\n...\r\n\r\ngoroutine 229 [IO wait]:\r\nnet.runtime_pollWait(0x7f1c5a26bc18, 0x77, 0xc8207e8ab0)\r\n\t/usr/local/mapzen/golang/go/src/runtime/netpoll.go:157 +0x60\r\nnet.(*pollDesc).Wait(0xc8203e5b10, 0x77, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/fd_poll_runtime.go:73 +0x3a\r\nnet.(*pollDesc).WaitWrite(0xc8203e5b10, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/fd_poll_runtime.go:82 +0x36\r\nnet.(*netFD).connect(0xc8203e5ab0, 0x0, 0x0, 0x7f1c5a26b8f0, 0xc8207d9c60, 0x0, 0x0, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/fd_unix.go:114 +0x1f6\r\nnet.(*netFD).dial(0xc8203e5ab0, 0x7f1c583d7130, 0x0, 0x7f1c583d7130, 0xc8202acd20, 0x0, 0x0, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/sock_posix.go:137 +0x351\r\nnet.socket(0x7cf818, 0x3, 0x2, 0x1, 0x0, 0xc8202acd00, 0x7f1c583d7130, 0x0, 0x7f1c583d7130, 0xc8202acd20, ...)\r\n\t/usr/local/mapzen/golang/go/src/net/sock_posix.go:89 +0x411\r\nnet.internetSocket(0x7cf818, 0x3, 0x7f1c583d7130, 0x0, 0x7f1c583d7130, 0xc8202acd20, 0x0, 0x0, 0x0, 0x1, ...)\r\n\t/usr/local/mapzen/golang/go/src/net/ipsock_posix.go:160 +0x141\r\nnet.dialTCP(0x7cf818, 0x3, 0x0, 0xc8202acd20, 0x0, 0xc800000000, 0x0, 0x1, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/tcpsock_posix.go:171 +0x11e\r\nnet.dialSingle(0xc82076e200, 0x7f1c583d70a0, 0xc8202acd20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/dial.go:364 +0x3f5\r\nnet.dialSerial.func1(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/dial.go:336 +0x75\r\nnet.dial(0x7cf818, 0x3, 0x7f1c583d70a0, 0xc8202acd20, 0xc8204735f8, 0x0, 0x0, 0x0, 0x0, 0x0, ...)\r\n\t/usr/local/mapzen/golang/go/src/net/fd_unix.go:40 +0x60\r\nnet.dialSerial(0xc82076e200, 0xc8207e8aa0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/dial.go:338 +0x760\r\nnet.(*Dialer).Dial(0xc820473870, 0x7cf818, 0x3, 0xc8207d93c0, 0x14, 0x0, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/dial.go:232 +0x50f\r\nnet.DialTimeout(0x7cf818, 0x3, 0xc8207d93c0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/dial.go:193 +0xa2\r\ngithub.com/goamz/goamz/s3.(*S3).run.func1(0x7cf818, 0x3, 0xc8207d93c0, 0x14, 0x0, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/go-mapzen-whosonfirst-s3/src/github.com/goamz/goamz/s3/s3.go:990 +0x94\r\nnet/http.(*Transport).dial(0xc820331ef0, 0x7cf818, 0x3, 0xc8207d93c0, 0x14, 0x0, 0x0, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/http/transport.go:499 +0x79\r\nnet/http.(*Transport).dialConn(0xc820331ef0, 0x0, 0x81e1c0, 0x5, 0xc8207d93c0, 0x14, 0xc82042e240, 0x0, 0x0)\r\n\t/usr/local/mapzen/golang/go/src/net/http/transport.go:596 +0x19a9\r\nnet/http.(*Transport).getConn.func4(0xc820331ef0, 0x0, 0x81e1c0, 0x5, 0xc8207d93c0, 0x14, 0xc820540540)\r\n\t/usr/local/mapzen/golang/go/src/net/http/transport.go:549 +0x66\r\ncreated by net/http.(*Transport).getConn\r\n\t/usr/local/mapzen/golang/go/src/net/http/transport.go:551 +0x265\r\n```"}}