Thanks for providing a very nice package. I'm using it to normalize queries that ultimately get put into Elasticsearch. Things work fine most of the time, but it panics randomly when we turn on the full load (about 10 million queries per hour). I haven't run it with -race yet (will do soon).
I'm using PG 9.6 so I haven't upgraded the package to your version 10 code.
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x108 pc=0x6b3edb]
runtime stack:
runtime.throw(0x7678a7, 0x2a)
/usr/local/src/runtime/panic.go:605 +0x95
runtime.sigpanic()
/usr/local/src/runtime/signal_unix.go:351 +0x2b8
goroutine 56 [syscall, locked to thread]:
runtime.cgocall(0x65f240, 0xc420c77b10, 0xc420c77b18)
/usr/local/src/runtime/cgocall.go:132 +0xe4 fp=0xc420c77ae0 sp=0xc420c77aa0 pc=0x4076e4
github.com/brianbroderick/pg_log_shipper/vendor/github.com/lfittl/pg_query_go/parser._Cfunc_pg_query_normalize(0x7f4bb80008c0, 0x0, 0x0)
github.com/brianbroderick/pg_log_shipper/vendor/github.com/lfittl/pg_query_go/parser/_obj/_cgo_gotypes.go:172 +0x53 fp=0xc420c77b10 sp=0xc420c77ae0 pc=0x651113
github.com/brianbroderick/pg_log_shipper/vendor/github.com/lfittl/pg_query_go/parser.Normalize(0xc4207f5f9f, 0xf, 0x0, 0x0, 0x0, 0x0)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/vendor/github.com/lfittl/pg_query_go/parser/parser.go:45 +0x9b fp=0xc420c77b70 sp=0xc420c77b10 pc=0x65129b
github.com/brianbroderick/pg_log_shipper/vendor/github.com/lfittl/pg_query_go.Normalize(0xc4207f5f9f, 0xf, 0x4ca701, 0xc4207f5f80, 0x0, 0x3)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/vendor/github.com/lfittl/pg_query_go/pg_query.go:38 +0x35 fp=0xc420c77bb0 sp=0xc420c77b70 pc=0x6515a5
main.normalizeQuery(0xc4207f5f9f, 0xf, 0x75d138, 0x9, 0xc420da2418, 0x0, 0x0)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/normalize_query.go:11 +0x39 fp=0xc420c77c00 sp=0xc420c77bb0 pc=0x659ca9
main.parseMessage(0xc420a43560, 0x1c, 0xc420480c80)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/query.go:319 +0x6e8 fp=0xc420c77db0 sp=0xc420c77c00 pc=0x65c038
main.newQuery(0xc420879180, 0x1bb, 0x1bb, 0xc4201020d2, 0x15, 0x1bb, 0x1bb, 0x0)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/query.go:83 +0x464 fp=0xc420c77e18 sp=0xc420c77db0 pc=0x65a284
main.getMultiLog(0xc4201020d2, 0x15, 0xc42005ed00, 0x0, 0x0)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/redis.go:110 +0x452 fp=0xc420c77f18 sp=0xc420c77e18 pc=0x65e252
main.startRedisBatch(0xc4201020d2, 0x15)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/redis.go:50 +0x5c fp=0xc420c77fd0 sp=0xc420c77f18 pc=0x65dbdc
runtime.goexit()
/usr/local/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc420c77fd8 sp=0xc420c77fd0 pc=0x45d461
created by main.main
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/main.go:44 +0x161
goroutine 1 [chan receive]:
main.main()
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/main.go:49 +0x1ba
goroutine 23 [select]:
net/http.(*persistConn).writeLoop(0xc42008f7a0)
/usr/local/src/net/http/transport.go:1759 +0x165
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1187 +0xa53
goroutine 11 [IO wait]:
internal/poll.runtime_pollWait(0x7f4bdc1c6f70, 0x72, 0x0)
/usr/local/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420112518, 0x72, 0xffffffffffffff00, 0xb85600, 0xb82278)
/usr/local/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420112518, 0xc420111000, 0x1000, 0x1000)
/usr/local/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420112500, 0xc420111000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420112500, 0xc420111000, 0x1000, 0x1000, 0x4318cb, 0xc420045a40, 0x459850)
/usr/local/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc42000e0c8, 0xc420111000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/net/net.go:176 +0x6d
net/http.(*persistConn).Read(0xc42008ed80, 0xc420111000, 0x1000, 0x1000, 0xc42001a190, 0xc420022778, 0x457be0)
/usr/local/src/net/http/transport.go:1391 +0x140
bufio.(*Reader).fill(0xc420062a20)
/usr/local/src/bufio/bufio.go:97 +0x11a
bufio.(*Reader).Peek(0xc420062a20, 0x1, 0x0, 0x0, 0x1, 0xc42011e240, 0x0)
/usr/local/src/bufio/bufio.go:129 +0x3a
net/http.(*persistConn).readLoop(0xc42008ed80)
/usr/local/src/net/http/transport.go:1539 +0x185
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1186 +0xa2e
goroutine 21 [select]:
net/http.(*persistConn).writeLoop(0xc42008f680)
/usr/local/src/net/http/transport.go:1759 +0x165
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1187 +0xa53
goroutine 32 [select]:
github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic%2ev5.(*Client).sniffer(0xc420076820)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic.v5/client.go:813 +0x190
created by github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic%2ev5.NewClient
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic.v5/client.go:282 +0x882
goroutine 12 [select]:
net/http.(*persistConn).writeLoop(0xc42008ed80)
/usr/local/src/net/http/transport.go:1759 +0x165
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1187 +0xa53
goroutine 20 [IO wait]:
internal/poll.runtime_pollWait(0x7f4bdc1c6eb0, 0x72, 0x0)
/usr/local/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420104618, 0x72, 0xffffffffffffff00, 0xb85600, 0xb82278)
/usr/local/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420104618, 0xc42016e000, 0x1000, 0x1000)
/usr/local/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420104600, 0xc42016e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420104600, 0xc42016e000, 0x1000, 0x1000, 0x0, 0x0, 0xc420014d40)
/usr/local/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420124048, 0xc42016e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/net/net.go:176 +0x6d
net/http.(*persistConn).Read(0xc42008f680, 0xc42016e000, 0x1000, 0x1000, 0x2, 0xc420043e58, 0x2)
/usr/local/src/net/http/transport.go:1391 +0x140
bufio.(*Reader).fill(0xc42010c480)
/usr/local/src/bufio/bufio.go:97 +0x11a
bufio.(*Reader).Peek(0xc42010c480, 0x1, 0x0, 0x0, 0x0, 0xc42011e300, 0x0)
/usr/local/src/bufio/bufio.go:129 +0x3a
net/http.(*persistConn).readLoop(0xc42008f680)
/usr/local/src/net/http/transport.go:1539 +0x185
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1186 +0xa2e
goroutine 25 [select]:
net/http.(*persistConn).writeLoop(0xc42008f8c0)
/usr/local/src/net/http/transport.go:1759 +0x165
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1187 +0xa53
goroutine 22 [IO wait]:
internal/poll.runtime_pollWait(0x7f4bdc1c6df0, 0x72, 0x0)
/usr/local/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420104818, 0x72, 0xffffffffffffff00, 0xb85600, 0xb82278)
/usr/local/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420104818, 0xc420178000, 0x1000, 0x1000)
/usr/local/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420104800, 0xc420178000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420104800, 0xc420178000, 0x1000, 0x1000, 0x0, 0x0, 0xc420014d60)
/usr/local/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420124050, 0xc420178000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/net/net.go:176 +0x6d
net/http.(*persistConn).Read(0xc42008f7a0, 0xc420178000, 0x1000, 0x1000, 0x2, 0xc42014be58, 0x2)
/usr/local/src/net/http/transport.go:1391 +0x140
bufio.(*Reader).fill(0xc42010c540)
/usr/local/src/bufio/bufio.go:97 +0x11a
bufio.(*Reader).Peek(0xc42010c540, 0x1, 0x0, 0x0, 0x0, 0xc42011e420, 0x0)
/usr/local/src/bufio/bufio.go:129 +0x3a
net/http.(*persistConn).readLoop(0xc42008f7a0)
/usr/local/src/net/http/transport.go:1539 +0x185
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1186 +0xa2e
goroutine 27 [select]:
net/http.(*persistConn).writeLoop(0xc42008f9e0)
/usr/local/src/net/http/transport.go:1759 +0x165
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1187 +0xa53
goroutine 24 [IO wait]:
internal/poll.runtime_pollWait(0x7f4bdc1c6d30, 0x72, 0x0)
/usr/local/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420104a18, 0x72, 0xffffffffffffff00, 0xb85600, 0xb82278)
/usr/local/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420104a18, 0xc42017a000, 0x1000, 0x1000)
/usr/local/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420104a00, 0xc42017a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420104a00, 0xc42017a000, 0x1000, 0x1000, 0x0, 0x0, 0xc420014d80)
/usr/local/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420124058, 0xc42017a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/net/net.go:176 +0x6d
net/http.(*persistConn).Read(0xc42008f8c0, 0xc42017a000, 0x1000, 0x1000, 0x2, 0xc42014ce58, 0x2)
/usr/local/src/net/http/transport.go:1391 +0x140
bufio.(*Reader).fill(0xc42010c600)
/usr/local/src/bufio/bufio.go:97 +0x11a
bufio.(*Reader).Peek(0xc42010c600, 0x1, 0x0, 0x0, 0x0, 0xc42011e540, 0x0)
/usr/local/src/bufio/bufio.go:129 +0x3a
net/http.(*persistConn).readLoop(0xc42008f8c0)
/usr/local/src/net/http/transport.go:1539 +0x185
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1186 +0xa2e
goroutine 29 [select]:
net/http.(*persistConn).writeLoop(0xc42008fb00)
/usr/local/src/net/http/transport.go:1759 +0x165
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1187 +0xa53
goroutine 26 [IO wait]:
internal/poll.runtime_pollWait(0x7f4bdc1c6c70, 0x72, 0x0)
/usr/local/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420104c98, 0x72, 0xffffffffffffff00, 0xb85600, 0xb82278)
/usr/local/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420104c98, 0xc42017e000, 0x1000, 0x1000)
/usr/local/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420104c80, 0xc42017e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420104c80, 0xc42017e000, 0x1000, 0x1000, 0x0, 0x0, 0xc420014da0)
/usr/local/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420124060, 0xc42017e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/net/net.go:176 +0x6d
net/http.(*persistConn).Read(0xc42008f9e0, 0xc42017e000, 0x1000, 0x1000, 0x2, 0xc42014de58, 0x2)
/usr/local/src/net/http/transport.go:1391 +0x140
bufio.(*Reader).fill(0xc42010c6c0)
/usr/local/src/bufio/bufio.go:97 +0x11a
bufio.(*Reader).Peek(0xc42010c6c0, 0x1, 0x0, 0x0, 0x0, 0xc42011e660, 0x0)
/usr/local/src/bufio/bufio.go:129 +0x3a
net/http.(*persistConn).readLoop(0xc42008f9e0)
/usr/local/src/net/http/transport.go:1539 +0x185
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1186 +0xa2e
goroutine 31 [select]:
net/http.(*persistConn).writeLoop(0xc42008fc20)
/usr/local/src/net/http/transport.go:1759 +0x165
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1187 +0xa53
goroutine 28 [IO wait]:
internal/poll.runtime_pollWait(0x7f4bdc1c6bb0, 0x72, 0x0)
/usr/local/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420104e98, 0x72, 0xffffffffffffff00, 0xb85600, 0xb82278)
/usr/local/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420104e98, 0xc420180000, 0x1000, 0x1000)
/usr/local/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420104e80, 0xc420180000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420104e80, 0xc420180000, 0x1000, 0x1000, 0x0, 0x0, 0xc420014dc0)
/usr/local/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420124068, 0xc420180000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/net/net.go:176 +0x6d
net/http.(*persistConn).Read(0xc42008fb00, 0xc420180000, 0x1000, 0x1000, 0x2, 0xc420146e58, 0x2)
/usr/local/src/net/http/transport.go:1391 +0x140
bufio.(*Reader).fill(0xc42010c780)
/usr/local/src/bufio/bufio.go:97 +0x11a
bufio.(*Reader).Peek(0xc42010c780, 0x1, 0x0, 0x0, 0x0, 0xc42011e780, 0x0)
/usr/local/src/bufio/bufio.go:129 +0x3a
net/http.(*persistConn).readLoop(0xc42008fb00)
/usr/local/src/net/http/transport.go:1539 +0x185
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1186 +0xa2e
goroutine 33 [select]:
github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic%2ev5.(*Client).healthchecker(0xc420076820)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic.v5/client.go:1000 +0x195
created by github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic%2ev5.NewClient
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic.v5/client.go:285 +0x858
goroutine 30 [IO wait]:
internal/poll.runtime_pollWait(0x7f4bdc1c6af0, 0x72, 0x0)
/usr/local/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420105098, 0x72, 0xffffffffffffff00, 0xb85600, 0xb82278)
/usr/local/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420105098, 0xc42018a000, 0x1000, 0x1000)
/usr/local/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420105080, 0xc42018a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420105080, 0xc42018a000, 0x1000, 0x1000, 0x0, 0x0, 0xc420014de0)
/usr/local/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420124070, 0xc42018a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/net/net.go:176 +0x6d
net/http.(*persistConn).Read(0xc42008fc20, 0xc42018a000, 0x1000, 0x1000, 0x2, 0xc420147e58, 0x2)
/usr/local/src/net/http/transport.go:1391 +0x140
bufio.(*Reader).fill(0xc42010c840)
/usr/local/src/bufio/bufio.go:97 +0x11a
bufio.(*Reader).Peek(0xc42010c840, 0x1, 0x0, 0x0, 0x0, 0xc42011e8a0, 0x0)
/usr/local/src/bufio/bufio.go:129 +0x3a
net/http.(*persistConn).readLoop(0xc42008fc20)
/usr/local/src/net/http/transport.go:1539 +0x185
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1186 +0xa2e
goroutine 51 [IO wait]:
internal/poll.runtime_pollWait(0x7f4bdc1c6a30, 0x72, 0x0)
/usr/local/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420105298, 0x72, 0xffffffffffffff00, 0xb85600, 0xb82278)
/usr/local/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420105298, 0xc420167000, 0x1000, 0x1000)
/usr/local/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420105280, 0xc420167000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420105280, 0xc420167000, 0x1000, 0x1000, 0x0, 0x0, 0xc420014e00)
/usr/local/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc42000e218, 0xc420167000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/src/net/net.go:176 +0x6d
net/http.(*persistConn).Read(0xc42008fd40, 0xc420167000, 0x1000, 0x1000, 0x2, 0xc420188e58, 0x2)
/usr/local/src/net/http/transport.go:1391 +0x140
bufio.(*Reader).fill(0xc42018c2a0)
/usr/local/src/bufio/bufio.go:97 +0x11a
bufio.(*Reader).Peek(0xc42018c2a0, 0x1, 0x0, 0x0, 0x0, 0xc4200239e0, 0x0)
/usr/local/src/bufio/bufio.go:129 +0x3a
net/http.(*persistConn).readLoop(0xc42008fd40)
/usr/local/src/net/http/transport.go:1539 +0x185
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1186 +0xa2e
goroutine 52 [select]:
net/http.(*persistConn).writeLoop(0xc42008fd40)
/usr/local/src/net/http/transport.go:1759 +0x165
created by net/http.(*Transport).dialConn
/usr/local/src/net/http/transport.go:1187 +0xa53
goroutine 66 [select]:
github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic%2ev5.(*bulkWorker).work(0xc420116bc0, 0xb87d80, 0xc420016078)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic.v5/bulk_processor.go:436 +0x13b
created by github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic%2ev5.(*BulkProcessor).Start
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic.v5/bulk_processor.go:299 +0x1ba
goroutine 67 [select]:
github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic%2ev5.(*BulkProcessor).flusher(0xc4201560c0, 0x2540be400)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic.v5/bulk_processor.go:386 +0x13f
created by github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic%2ev5.(*BulkProcessor).Start
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/vendor/gopkg.in/olivere/elastic.v5/bulk_processor.go:305 +0x48e
goroutine 68 [chan receive]:
main.main.func1(0xc420116c00)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/main.go:38 +0x83
created by main.main
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/main.go:37 +0x117
goroutine 69 [sleep]:
time.Sleep(0x3b9aca00)
/usr/local/src/runtime/time.go:65 +0x130
main.startRedisBatch(0xc4201020a0, 0xd)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/redis.go:58 +0xa6
created by main.main
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/main.go:44 +0x161
goroutine 53 [sleep]:
time.Sleep(0x3b9aca00)
/usr/local/src/runtime/time.go:65 +0x130
main.startRedisBatch(0xc4201020ae, 0xe)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/redis.go:58 +0xa6
created by main.main
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/main.go:44 +0x161
goroutine 73 [runnable]:
encoding/json.compact(0xc420944420, 0xc42025bb90, 0x59, 0x8d, 0x1, 0x0, 0x98)
/usr/local/src/encoding/json/indent.go:17 +0x46
encoding/json.marshalerEncoder(0xc420944420, 0x707320, 0xc420cd0f60, 0x16, 0xc420ae0100)
/usr/local/src/encoding/json/encode.go:446 +0x1d4
encoding/json.(*mapEncoder).encode(0xc42000e2d8, 0xc420944420, 0x704620, 0xc420bff440, 0x15, 0x700100)
/usr/local/src/encoding/json/encode.go:682 +0x4c1
encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc420944420, 0x704620, 0xc420bff440, 0x15, 0xc420bf0100)
/usr/local/src/encoding/json/encode.go:698 +0x64
encoding/json.(*encodeState).reflectValue(0xc420944420, 0x704620, 0xc420bff440, 0x15, 0x100)
/usr/local/src/encoding/json/encode.go:323 +0x82
encoding/json.(*encodeState).marshal(0xc420944420, 0x704620, 0xc420bff440, 0xc420960100, 0x0, 0x0)
/usr/local/src/encoding/json/encode.go:296 +0xaf
encoding/json.Marshal(0x704620, 0xc420bff440, 0x14, 0x75d1ad, 0x9, 0x0, 0x0)
/usr/local/src/encoding/json/encode.go:161 +0x5f
main.(*query).marshal(0xc42092d680, 0x0, 0x0, 0x1c, 0x0, 0x0)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/query.go:435 +0x11a
main.newQuery(0xc420635200, 0x20a, 0x20a, 0xc4201020bd, 0x14, 0x20a, 0x20a, 0x0)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/query.go:89 +0x329
main.getMultiLog(0xc4201020bd, 0x14, 0xc42002d700, 0x0, 0x0)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/redis.go:110 +0x452
main.startRedisBatch(0xc4201020bd, 0x14)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/redis.go:50 +0x5c
created by main.main
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/main.go:44 +0x161
goroutine 60 [runnable]:
regexp/syntax.(*parser).push(0xc42018ca80, 0xc42080f5e0, 0xc42080f5e0)
/usr/local/src/regexp/syntax/parse.go:108 +0x391
regexp/syntax.(*parser).literal(0xc42018ca80, 0x64)
/usr/local/src/regexp/syntax/parse.go:210 +0x53
regexp/syntax.Parse(0x76bb31, 0x6a, 0xc4201e00d4, 0xc42000e368, 0x19, 0x707320)
/usr/local/src/regexp/syntax/parse.go:729 +0x2ba
regexp.compile(0x76bb31, 0x6a, 0xc4200000d4, 0x416277, 0xc420126410, 0x50)
/usr/local/src/regexp/regexp.go:170 +0x5a
regexp.Compile(0x76bb31, 0x6a, 0x48, 0x50, 0xc420126410)
/usr/local/src/regexp/regexp.go:133 +0x41
regexp.MustCompile(0x76bb31, 0x6a, 0xc4205f3d38)
/usr/local/src/regexp/regexp.go:238 +0x4d
main.regexMessage(0xc420309000, 0x31, 0xc4205f3c60)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/query.go:98 +0x48
main.parseMessage(0xc4207c78c0, 0x1c, 0xc420f4aa20)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/query.go:281 +0xa92
main.newQuery(0xc4208f2a80, 0x180, 0x180, 0xc4201020e8, 0x12, 0x180, 0x180, 0x0)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/query.go:83 +0x464
main.getMultiLog(0xc4201020e8, 0x12, 0xc420032f00, 0x0, 0x0)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/redis.go:110 +0x452
main.startRedisBatch(0xc4201020e8, 0x12)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/redis.go:50 +0x5c
created by main.main
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/main.go:44 +0x161
goroutine 64 [sleep]:
time.Sleep(0x3b9aca00)
/usr/local/src/runtime/time.go:65 +0x130
main.startRedisBatch(0xc4201020fb, 0x13)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/redis.go:58 +0xa6
created by main.main
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/main.go:44 +0x161
goroutine 74 [sleep]:
time.Sleep(0x3b9aca00)
/usr/local/src/runtime/time.go:65 +0x130
main.startRedisBatch(0xc42010210f, 0x14)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/redis.go:58 +0xa6
created by main.main
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/main.go:44 +0x161
goroutine 78 [sleep]:
time.Sleep(0x3b9aca00)
/usr/local/src/runtime/time.go:65 +0x130
main.startRedisBatch(0xc420102124, 0x15)
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/redis.go:58 +0xa6
created by main.main
/home/ubuntu/go/src/github.com/brianbroderick/pg_log_shipper/main.go:44 +0x161