Description
Saw the following panic when running local test.
The root cause is that transmitCh may be closed without feed being closed. The cause for that is that runFeed may exit without closing the feed. The simplest way to fix this is to add a feed.Close() call before runFeed exits.
time=2017-01-17T17:03:24.560-08:00 _level=ERROR _msg=Error in receive EOF
_time=2017-01-17T17:03:24.561-08:00 _level=INFO _msg=runFeed exiting
_time=2017-01-17T17:03:24.561-08:00 _level=INFO _msg=sendCommands exiting
panic: send on closed channel
goroutine 175458 [running]:
runtime.gopanic(0x4feba0, 0xc8213dedb0)
/Users/yu/.cbdepscache/exploded/x86_64/go-1.5.2/go/src/runtime/panic.go:461 +0x3e6 fp=0xc8213719f8 sp=0xc821371978
runtime.chansend(0x4ea560, 0xc820c20060, 0xc821371b40, 0x668001, 0x1bdc4f, 0xc8212b5e00)
/Users/yu/.cbdepscache/exploded/x86_64/go-1.5.2/go/src/runtime/chan.go:155 +0x1b4 fp=0xc821371ac8 sp=0xc8213719f8
runtime.chansend1(0x4ea560, 0xc820c20060, 0xc821371b40)
/Users/yu/.cbdepscache/exploded/x86_64/go-1.5.2/go/src/runtime/chan.go:92 +0x43 fp=0xc821371b00 sp=0xc821371ac8
github.com/couchbase/gomemcached/client.(*UprFeed).CloseStream(0xc82013a1b0, 0x3ea0031, 0x0, 0x0)
/Users/yu/master/godeps/src/github.com/couchbase/gomemcached/client/upr_feed.go:377 +0x38f fp=0xc821371b98 sp=0xc821371b00
github.com/couchbase/goxdcr/parts.(*DcpNozzle).closeUprStreams(0xc8202731e0, 0x0, 0x0)
/Users/yu/master/goproj/src/github.com/couchbase/goxdcr/parts/dcp_nozzle.go:334 +0x418 fp=0xc821371df0 sp=0xc821371b98
github.com/couchbase/goxdcr/parts.(*DcpNozzle).Stop(0xc8202731e0, 0x0, 0x0)
/Users/yu/master/goproj/src/github.com/couchbase/goxdcr/parts/dcp_nozzle.go:305 +0x204 fp=0xc821371f10 sp=0xc821371df0
github.com/couchbase/goxdcr/common.(Part).Stop-fm(0x0, 0x0)
/Users/yu/master/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:303 +0x40 fp=0xc821371f40 sp=0xc821371f10
github.com/couchbase/goxdcr/simple_utils.ExecWithTimeout.func1(0xc820b53820, 0xc82127d1a0)
/Users/yu/master/goproj/src/github.com/couchbase/goxdcr/simple_utils/simple_utils.go:43 +0x1d fp=0xc821371f80 sp=0xc821371f40
runtime.goexit()
/Users/yu/.cbdepscache/exploded/x86_64/go-1.5.2/go/src/runtime/asm_amd64.s:1721 +0x1 fp=0xc821371f88 sp=0xc821371f80
created by github.com/couchbase/goxdcr/simple_utils.ExecWithTimeout
/Users/yu/master/goproj/src/github.com/couchbase/goxdcr/simple_utils/simple_utils.go:45 +0x7e
Attachments
Issue Links
For Gerrit Dashboard: MB-22382 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
72165,1 | MB-22382 fix panic caused by transmitch closure | master | gomemcached | Status: MERGED | +2 | +1 |
72308,2 | MB-22382 fix panic caused by transmitch closure | watson | gomemcached | Status: MERGED | +2 | +1 |