Details
-
Bug
-
Resolution: Fixed
-
Critical
-
Morpheus, 7.2.1, 7.1.5
-
Untriaged
-
0
-
Yes
Description
Issue | Resolution |
Checkpoint Manager could be stuck when stopping if it had not been started yet resulting in memory leak. | Checkpoint Manager can now be stopped correctly even when it hasn’t been started. |
MB-49559 introduced a change where checkpoint manager will do background connection initiation. With it, the Stop() method will depend on the connection being finished. Under normal circumstances, this won't be an issue.
However, when combined with the fix for MB-57129, the checkpoint manager Stop() can be called before Start(), and this can lead to hanging checkpoint manager go-routines:
goroutine profile: total 146
|
# 0x100332291 net/http.(*persistConn).writeLoop+0xf1 /Users/neil.huang/.cbdepscache/exploded/x86_64/go-1.20.6/go/src/net/http/transport.go:2410
|
|
12 @ 0x10003ecd6 0x10000ac3d 0x10000a738 0x100634d17 0x100634d06 0x1006362f2 0x1006af39c 0x100072fe1
|
# 0x100634d16 github.com/couchbase/goxdcr/pipeline_svc.(*CheckpointManager).waitForInitConnDone+0x56 /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_svc/checkpoint_manager.go:643
|
# 0x100634d05 github.com/couchbase/goxdcr/pipeline_svc.(*CheckpointManager).closeConnections+0x45 /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_svc/checkpoint_manager.go:718
|
# 0x1006362f1 github.com/couchbase/goxdcr/pipeline_svc.(*CheckpointManager).Stop+0x31 /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_svc/checkpoint_manager.go:848
|
100 36629 0 36629 x1006af39b github.com/couchbase/goxdcr/pipeline_ctx.(*PipelineRuntimeCtx).stopService+0x9b /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_ctx/pipeline_runtimeCtx.go:196
|
|
12 @ 0x10003ecd6 0x1000502cf 0x1000502a6 0x10006e667 0x10009018b 0x1006aec0f 0x1003f77c2 0x100072fe1
|
# 0x10006e666 sync.runtime_Semacquire+0x26 /Users/neil.huang/.cbdepscache/exploded/x86_64/go-1.20.6/go/src/runtime/sema.go:62
|
# 0x10009018a sync.(*WaitGroup).Wait+0x4a /Users/neil.huang/.cbdepscache/exploded/x86_64/go-1.20.6/go/src/sync/waitgroup.go:116
|
# 0x1006aec0e github.com/couchbase/goxdcr/pipeline_ctx.(*PipelineRuntimeCtx).Stop.func2+0x38e /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_ctx/pipeline_runtimeCtx.go:170
|
# 0x1003f77c1 github.com/couchbase/goxdcr/base.ExecWithTimeout.func1+0x21 /User 0 0 2240k 0 --:--:-- --:s/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/base/simple_utils.go:48
|
Attachments
Issue Links
- is a backport of
-
MB-58539 XDCR - ckptMgr stop can hang if start was not called
- Closed
- relates to
-
MB-57129 XDCR - CheckpointMgr Initialize error will lead to memory leak
- Resolved
-
MB-49559 Investigate error observed in longevity with p2p enabled - Pipeline did not start in a timely manner, possibly due to busy source or target. Will try again...
- Closed
- mentioned in
-
Page Loading...