bleve: "panic: send on closed channel" during indexing

While running tests described at http://www.philipotoole.com/increasing-bleve-performance-sharding/ I hit the panic below 3 times.

panic: send on closed channel

goroutine 7 [running]:
github.com/blevesearch/bleve/index/upside_down.AnalysisWorker(0xc208052000, 0xc208052060)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/analysis_pool.go:116 +0x17cd
created by github.com/blevesearch/bleve/index/upside_down.NewAnalysisQueue
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/analysis_pool.go:46 +0xd5

goroutine 1 [semacquire]:
sync.(*WaitGroup).Wait(0xc20a6b4020)
        /usr/local/go/src/sync/waitgroup.go:132 +0x169
github.com/otoolep/bleve-bench.(*Indexer).Index(0xc20802cf40, 0xc2080f0000, 0x186a0, 0x186a0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:104 +0x287
main.main()
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/cmd/bench/main.go:61 +0xbf5

goroutine 5 [chan send]:
github.com/blevesearch/bleve/index/upside_down.AnalysisWorker(0xc208052000, 0xc208052060)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/analysis_pool.go:116 +0x17cd
created by github.com/blevesearch/bleve/index/upside_down.NewAnalysisQueue
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/analysis_pool.go:46 +0xd5

goroutine 6 [chan send]:
github.com/blevesearch/bleve/index/upside_down.AnalysisWorker(0xc208052000, 0xc208052060)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/analysis_pool.go:116 +0x17cd
created by github.com/blevesearch/bleve/index/upside_down.NewAnalysisQueue
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/analysis_pool.go:46 +0xd5

goroutine 8 [chan send]:
github.com/blevesearch/bleve/index/upside_down.AnalysisWorker(0xc208052000, 0xc208052060)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/analysis_pool.go:116 +0x17cd
created by github.com/blevesearch/bleve/index/upside_down.NewAnalysisQueue
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/analysis_pool.go:46 +0xd5

goroutine 9 [runnable]:
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20802cf80, 0x7c3e20, 0xc20801f920, 0xc20b1d8770, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20d651ad0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:290 +0x282
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20802cf80, 0x7c3e20, 0xc20801f920, 0xc20b1d8770, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20d651ad0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:372 +0xbd5
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20802cf80, 0x7e6920, 0xc20801f920, 0xc20e83fc68, 0x0, 0x0, 0xc2f5d0, 0x0, 0x0, 0xc20d651ad0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:283 +0xc86
github.com/blevesearch/bleve.(*IndexMapping).mapDocument(0xc20a45b500, 0xc20e317c40, 0x7e6920, 0xc20801f920, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_index.go:351 +0x4ab
github.com/blevesearch/bleve.(*Batch).Index(0xc20e8be000, 0xc20b1d8750, 0x4, 0x7e6920, 0xc20801f920, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index.go:31 +0x218
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a459ce0, 0xc2080f0000, 0x1388, 0x186a0)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:73 +0x1b0
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 10 [chan receive]:
github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch(0xc208031220, 0xc20d7062a0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:602 +0x308
github.com/blevesearch/bleve.(*indexImpl).Batch(0xc20a4be1c0, 0xc20a83aa00, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index_impl.go:304 +0x112
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4be1c0, 0xc20810d4c0, 0x1388, 0x17318)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:78 +0x39e
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 11 [runnable]:
github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch(0xc208031810, 0xc20d23bf00, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:602 +0x308
github.com/blevesearch/bleve.(*indexImpl).Batch(0xc20a4be460, 0xc20ca92a80, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index_impl.go:304 +0x112
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4be460, 0xc20812a980, 0x1388, 0x15f90)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:78 +0x39e
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 12 [runnable]:
strings.genSplit(0x952520, 0x1, 0x950820, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0)
        /usr/local/go/src/strings/strings.go:287 +0x14d
strings.Split(0x952520, 0x1, 0x950820, 0x1, 0x0, 0x0, 0x0)
        /usr/local/go/src/strings/strings.go:325 +0x76
github.com/blevesearch/bleve.decodePath(0x952520, 0x1, 0x0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/reflect.go:56 +0x60
github.com/blevesearch/bleve.(*DocumentMapping).documentMappingForPath(0xc20a4cec00, 0x952520, 0x1, 0x952520)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:110 +0x43
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a4cec00, 0x7d4880, 0xc20af97c38, 0xc20af97c40, 0x1, 0x1, 0xc20af97c60, 0x1, 0x1, 0xc20b45ec30)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:304 +0x85
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a4cec00, 0x7c3e20, 0xc20baa9160, 0xc20af97c40, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b45ec30)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:290 +0x344
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a4cec00, 0x7c3e20, 0xc20baa9160, 0xc20af97c40, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b45ec30)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:372 +0xbd5
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a4cec00, 0x7e6920, 0xc20baa9160, 0xc20c45bc68, 0x0, 0x0, 0xc2f5d0, 0x0, 0x0, 0xc20b45ec30)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:283 +0xc86
github.com/blevesearch/bleve.(*IndexMapping).mapDocument(0xc20a45b800, 0xc20b2a3bc0, 0x7e6920, 0xc20baa9160, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_index.go:351 +0x4ab
github.com/blevesearch/bleve.(*Batch).Index(0xc20ca74020, 0xc20af97bf8, 0x4, 0x7e6920, 0xc20baa9160, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index.go:31 +0x218
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4be700, 0xc208147e40, 0x1388, 0x14c08)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:73 +0x1b0
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 13 [runnable]:
github.com/blevesearch/bleve.(*DocumentMapping).documentMappingForPath(0xc20a4cf540, 0x952520, 0x1, 0x952520)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:114 +0x2d5
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a4cf540, 0x7d4880, 0xc20af842c8, 0xc20af98a00, 0x1, 0x1, 0xc20af842e0, 0x1, 0x1, 0xc20b203d10)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:304 +0x85
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a4cf540, 0x7c3e20, 0xc20aa92fc0, 0xc20af98a00, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b203d10)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:290 +0x344
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a4cf540, 0x7c3e20, 0xc20aa92fc0, 0xc20af98a00, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b203d10)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:372 +0xbd5
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a4cf540, 0x7e6920, 0xc20aa92fc0, 0xc20c459c68, 0x0, 0x0, 0xc2f5d0, 0x0, 0x0, 0xc20b203d10)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:283 +0xc86
github.com/blevesearch/bleve.(*IndexMapping).mapDocument(0xc20a45b900, 0xc20de7ea40, 0x7e6920, 0xc20aa92fc0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_index.go:351 +0x4ab
github.com/blevesearch/bleve.(*Batch).Index(0xc20e87e840, 0xc20af989b8, 0x4, 0x7e6920, 0xc20aa92fc0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index.go:31 +0x218
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4be9a0, 0xc208165300, 0x1388, 0x13880)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:73 +0x1b0
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 14 [chan receive]:
github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch(0xc20a50aa00, 0xc20c0d0ef0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:602 +0x308
github.com/blevesearch/bleve.(*indexImpl).Batch(0xc20a4bec40, 0xc20e8803e0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index_impl.go:304 +0x112
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4bec40, 0xc2081827c0, 0x1388, 0x124f8)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:96 +0x7fe
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 15 [runnable]:
reflect.ValueOf(0x7d4880, 0xc20af8ca40, 0x1, 0x0, 0x1)
        /usr/local/go/src/reflect/value.go:2044
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a5287c0, 0x7d4880, 0xc20af8ca40, 0xc20af8c550, 0x1, 0x1, 0xc20af8ca48, 0x1, 0x1, 0xc20b3f4510)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:311 +0xc7
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a5287c0, 0x7c3e20, 0xc20801fbc0, 0xc20af8c550, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b3f4510)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:290 +0x344
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a5287c0, 0x7c3e20, 0xc20801fbc0, 0xc20af8c550, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b3f4510)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:372 +0xbd5
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a5287c0, 0x7e6920, 0xc20801fbc0, 0xc20e841c68, 0x0, 0x0, 0xc2f5d0, 0x0, 0x0, 0xc20b3f4510)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:283 +0xc86
github.com/blevesearch/bleve.(*IndexMapping).mapDocument(0xc20a45bb80, 0xc20ac84040, 0x7e6920, 0xc20801fbc0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_index.go:351 +0x4ab
github.com/blevesearch/bleve.(*Batch).Index(0xc20acbefe0, 0xc20af8c530, 0x4, 0x7e6920, 0xc20801fbc0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index.go:31 +0x218
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4beee0, 0xc20819fc80, 0x1388, 0x11170)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:73 +0x1b0
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 16 [chan receive]:
github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch(0xc20a50b5e0, 0xc20c7aa740, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:602 +0x308
github.com/blevesearch/bleve.(*indexImpl).Batch(0xc20a4bf180, 0xc20b5ae9e0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index_impl.go:304 +0x112
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4bf180, 0xc2081bd140, 0x1388, 0xfde8)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:78 +0x39e
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 17 [runnable]:
github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch(0xc20a50bbd0, 0xc20c67cde0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:602 +0x308
github.com/blevesearch/bleve.(*indexImpl).Batch(0xc20a4bf420, 0xc20b5afc20, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index_impl.go:304 +0x112
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4bf420, 0xc2081da600, 0x1388, 0xea60)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:78 +0x39e
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 18 [chan receive]:
github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch(0xc20a5961e0, 0xc20b00ffa0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:602 +0x308
github.com/blevesearch/bleve.(*indexImpl).Batch(0xc20a4bf6c0, 0xc20d21a8a0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index_impl.go:304 +0x112
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4bf6c0, 0xc2081f7ac0, 0x1388, 0xd6d8)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:78 +0x39e
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 19 [runnable]:
github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch(0xc20a5967d0, 0xc20c4d9630, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:602 +0x308
github.com/blevesearch/bleve.(*indexImpl).Batch(0xc20a4bf960, 0xc20c6d7240, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index_impl.go:304 +0x112
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4bf960, 0xc208214f80, 0x1388, 0xc350)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:78 +0x39e
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 20 [runnable]:
reflect.ValueOf(0x7d4880, 0xc20e918ed0, 0x1, 0x0, 0x1)
        /usr/local/go/src/reflect/value.go:2044
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a581600, 0x7d4880, 0xc20e918ed0, 0xc20e918cd0, 0x1, 0x1, 0xc20e918ed8, 0x1, 0x1, 0xc20b4c5080)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:311 +0xc7
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a581600, 0x7c3e20, 0xc20c31aec0, 0xc20e918cd0, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b4c5080)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:290 +0x344
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a581600, 0x7c3e20, 0xc20c31aec0, 0xc20e918cd0, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b4c5080)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:372 +0xbd5
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a581600, 0x7e6920, 0xc20c31aec0, 0xc20e54bc68, 0x0, 0x0, 0xc2f5d0, 0x0, 0x0, 0xc20b4c5080)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:283 +0xc86
github.com/blevesearch/bleve.(*IndexMapping).mapDocument(0xc20a5c2080, 0xc20d2dd9c0, 0x7e6920, 0xc20c31aec0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_index.go:351 +0x4ab
github.com/blevesearch/bleve.(*Batch).Index(0xc20ca6eba0, 0xc20e918cb0, 0x4, 0x7e6920, 0xc20c31aec0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index.go:31 +0x218
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4bfc00, 0xc208232440, 0x1388, 0xafc8)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:73 +0x1b0
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 21 [runnable]:
strings.genSplit(0x952520, 0x1, 0x950820, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0)
        /usr/local/go/src/strings/strings.go:287 +0x14d
strings.Split(0x952520, 0x1, 0x950820, 0x1, 0x0, 0x0, 0x0)
        /usr/local/go/src/strings/strings.go:325 +0x76
github.com/blevesearch/bleve.decodePath(0x952520, 0x1, 0x0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/reflect.go:56 +0x60
github.com/blevesearch/bleve.(*DocumentMapping).documentMappingForPath(0xc20a581f40, 0x952520, 0x1, 0x952520)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:110 +0x43
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a581f40, 0x7d4880, 0xc20af93198, 0xc20afa1680, 0x1, 0x1, 0xc20af931b0, 0x1, 0x1, 0xc20ec99f50)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:304 +0x85
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a581f40, 0x7c3e20, 0xc20ac11140, 0xc20afa1680, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20ec99f50)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:290 +0x344
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a581f40, 0x7c3e20, 0xc20ac11140, 0xc20afa1680, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20ec99f50)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:372 +0xbd5
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a581f40, 0x7e6920, 0xc20ac11140, 0xc20c457c68, 0x0, 0x0, 0xc2f5d0, 0x0, 0x0, 0xc20ec99f50)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:283 +0xc86
github.com/blevesearch/bleve.(*IndexMapping).mapDocument(0xc20a5c2180, 0xc20dc98b40, 0x7e6920, 0xc20ac11140, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_index.go:351 +0x4ab
github.com/blevesearch/bleve.(*Batch).Index(0xc20ca74960, 0xc20afa1638, 0x4, 0x7e6920, 0xc20ac11140, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index.go:31 +0x218
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a4bfea0, 0xc20824f900, 0x1388, 0x9c40)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:73 +0x1b0
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 22 [runnable]:
github.com/blevesearch/bleve.(*DocumentMapping).documentMappingForPath(0xc20a5e4880, 0x952520, 0x1, 0x952520)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:114 +0x2d5
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a5e4880, 0x7d4880, 0xc20f120618, 0xc20e232d50, 0x1, 0x1, 0xc20f120630, 0x1, 0x1, 0xc20b690ea0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:304 +0x85
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a5e4880, 0x7c3e20, 0xc20a4ec920, 0xc20e232d50, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b690ea0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:290 +0x344
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a5e4880, 0x7c3e20, 0xc20a4ec920, 0xc20e232d50, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b690ea0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:372 +0xbd5
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a5e4880, 0x7e6920, 0xc20a4ec920, 0xc20c0e3c68, 0x0, 0x0, 0xc2f5d0, 0x0, 0x0, 0xc20b690ea0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:283 +0xc86
github.com/blevesearch/bleve.(*IndexMapping).mapDocument(0xc20a5c2280, 0xc20dabf540, 0x7e6920, 0xc20a4ec920, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_index.go:351 +0x4ab
github.com/blevesearch/bleve.(*Batch).Index(0xc20ca6fc60, 0xc20e232d08, 0x4, 0x7e6920, 0xc20a4ec920, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index.go:31 +0x218
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a5f4150, 0xc20826cdc0, 0x1388, 0x88b8)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:73 +0x1b0
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 23 [runnable]:
reflect.Value.Type(0x7d4880, 0xc20b196e78, 0x48, 0xc20b196e78, 0x48)
        /usr/local/go/src/reflect/value.go:1630
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a5e51c0, 0x7d4880, 0xc20b196e78, 0xc20b1e2430, 0x1, 0x1, 0xc20b196e90, 0x1, 0x1, 0xc20b4c4780)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:316 +0x131
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a5e51c0, 0x7c3e20, 0xc20c31acc0, 0xc20b1e2430, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b4c4780)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:290 +0x344
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a5e51c0, 0x7c3e20, 0xc20c31acc0, 0xc20b1e2430, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b4c4780)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:372 +0xbd5
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a5e51c0, 0x7e6920, 0xc20c31acc0, 0xc20e747c68, 0x0, 0x0, 0xc2f5d0, 0x0, 0x0, 0xc20b4c4780)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:283 +0xc86
github.com/blevesearch/bleve.(*IndexMapping).mapDocument(0xc20a5c2380, 0xc20d2dd5c0, 0x7e6920, 0xc20c31acc0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_index.go:351 +0x4ab
github.com/blevesearch/bleve.(*Batch).Index(0xc20c7ed560, 0xc20b1e23e8, 0x4, 0x7e6920, 0xc20c31acc0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index.go:31 +0x218
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a5f43f0, 0xc20828a280, 0x1388, 0x7530)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:73 +0x1b0
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 24 [chan receive]:
github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch(0xc20a61e5a0, 0xc20af50400, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:602 +0x308
github.com/blevesearch/bleve.(*indexImpl).Batch(0xc20a5f4690, 0xc20acbef80, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index_impl.go:304 +0x112
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a5f4690, 0xc2082a7740, 0x1388, 0x61a8)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:78 +0x39e
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 25 [runnable]:
strings.genSplit(0x952520, 0x1, 0x950820, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0)
        /usr/local/go/src/strings/strings.go:287 +0x14d
strings.Split(0x952520, 0x1, 0x950820, 0x1, 0x0, 0x0, 0x0)
        /usr/local/go/src/strings/strings.go:325 +0x76
github.com/blevesearch/bleve.decodePath(0x952520, 0x1, 0x0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/reflect.go:56 +0x60
github.com/blevesearch/bleve.(*DocumentMapping).documentMappingForPath(0xc20a63c440, 0x952520, 0x1, 0x952520)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:110 +0x43
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a63c440, 0x7d4880, 0xc20c35f150, 0xc20c35ee40, 0x1, 0x1, 0xc20c35f158, 0x1, 0x1, 0xc20f5519b0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:304 +0x85
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a63c440, 0x7c3e20, 0xc20ca75d20, 0xc20c35ee40, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20f5519b0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:290 +0x344
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a63c440, 0x7c3e20, 0xc20ca75d20, 0xc20c35ee40, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20f5519b0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:372 +0xbd5
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a63c440, 0x7e6920, 0xc20ca75d20, 0xc20e83dc68, 0x0, 0x0, 0xc2f5d0, 0x0, 0x0, 0xc20f5519b0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:283 +0xc86
github.com/blevesearch/bleve.(*IndexMapping).mapDocument(0xc20a5c2580, 0xc20e8abac0, 0x7e6920, 0xc20ca75d20, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_index.go:351 +0x4ab
github.com/blevesearch/bleve.(*Batch).Index(0xc20ca75020, 0xc20c35ee20, 0x4, 0x7e6920, 0xc20ca75d20, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index.go:31 +0x218
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a5f4930, 0xc2082c4c00, 0x1388, 0x4e20)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:73 +0x1b0
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 26 [runnable]:
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a63cd80, 0x7c3e20, 0xc20bc57620, 0xc20af95200, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b60dce0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:290 +0x282
github.com/blevesearch/bleve.(*DocumentMapping).processProperty(0xc20a63cd80, 0x7c3e20, 0xc20bc57620, 0xc20af95200, 0x1, 0x1, 0xc2f5d0, 0x0, 0x0, 0xc20b60dce0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:372 +0xbd5
github.com/blevesearch/bleve.(*DocumentMapping).walkDocument(0xc20a63cd80, 0x7e6920, 0xc20bc57620, 0xc20e549c68, 0x0, 0x0, 0xc2f5d0, 0x0, 0x0, 0xc20b60dce0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_document.go:283 +0xc86
github.com/blevesearch/bleve.(*IndexMapping).mapDocument(0xc20a5c2680, 0xc20a839e80, 0x7e6920, 0xc20bc57620, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/mapping_index.go:351 +0x4ab
github.com/blevesearch/bleve.(*Batch).Index(0xc20e88e500, 0xc20af951e0, 0x4, 0x7e6920, 0xc20bc57620, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index.go:31 +0x218
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a5f4bd0, 0xc2082e20c0, 0x1388, 0x3a98)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:73 +0x1b0
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 27 [chan receive]:
github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch(0xc20a61f770, 0xc20b827810, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:602 +0x308
github.com/blevesearch/bleve.(*indexImpl).Batch(0xc20a5f4e70, 0xc20b592d20, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index_impl.go:304 +0x112
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a5f4e70, 0xc2082ff580, 0x1388, 0x2710)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:78 +0x39e
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 28 [chan receive]:
github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch(0xc20a61fd60, 0xc20b505e70, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:602 +0x308
github.com/blevesearch/bleve.(*indexImpl).Batch(0xc20a5f5110, 0xc20ac6baa0, 0x0, 0x0)
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index_impl.go:304 +0x112
github.com/otoolep/bleve-bench.func·001(0x7fda41852698, 0xc20a5f5110, 0xc20831ca40, 0x1388, 0x1388)
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:78 +0x39e
created by github.com/otoolep/bleve-bench.(*Indexer).Index
        /home/philip/repos/bleve-bench/src/github.com/otoolep/bleve-bench/bleve_indexer.go:100 +0x246

goroutine 249 [chan send]:
github.com/blevesearch/bleve/index/upside_down.func·019()
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:593 +0x13b
created by github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:596 +0x28c

goroutine 305 [chan send]:
github.com/blevesearch/bleve/index/upside_down.func·019()
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:593 +0x13b
created by github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:596 +0x28c

goroutine 277 [runnable]:
github.com/blevesearch/bleve/index/upside_down.func·019()
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:593 +0x13b
created by github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:596 +0x28c

goroutine 251 [runnable]:
github.com/blevesearch/bleve/index/upside_down.func·019()
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:584
created by github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:596 +0x28c

goroutine 250 [runnable]:
github.com/blevesearch/bleve/index/upside_down.func·019()
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:593 +0x13b
created by github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:596 +0x28c

goroutine 276 [chan send]:
github.com/blevesearch/bleve/index/upside_down.func·019()
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:593 +0x13b
created by github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:596 +0x28c

goroutine 218 [chan send]:
github.com/blevesearch/bleve/index/upside_down.func·019()
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:593 +0x13b
created by github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:596 +0x28c

goroutine 219 [runnable]:
github.com/blevesearch/bleve/index/upside_down.func·019()
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:593 +0x13b
created by github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:596 +0x28c

goroutine 206 [runnable]:
github.com/blevesearch/bleve/index/upside_down.func·019()
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:593 +0x13b
created by github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:596 +0x28c

goroutine 217 [chan send]:
github.com/blevesearch/bleve/index/upside_down.func·019()
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:593 +0x13b
created by github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:596 +0x28c

goroutine 237 [chan send]:
github.com/blevesearch/bleve/index/upside_down.func·019()
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:593 +0x13b
created by github.com/blevesearch/bleve/index/upside_down.(*UpsideDownCouch).Batch
        /home/philip/repos/bleve-bench/src/github.com/blevesearch/bleve/index/upside_down/upside_down.go:596 +0x28c

About this issue

  • Original URL
  • State: closed
  • Created 9 years ago
  • Comments: 25 (11 by maintainers)

Most upvoted comments

At Couchbase we do something closer to what you’ve described. We just build batches of the sizes we like, execute them and recycle them. It’s straightforward and works well for us. The user who contributed this wanted to try and hide the batching entirely and just expose a simpler API that didn’t do any explicit batching. It sounds like you should just avoid using this automatic batcher.