Skip to content

Incremental Oplog Application Fails After Setting oplog_store_disk=true #976

@fengbao123

Description

@fengbao123

full_sync.reader.oplog_store_disk = true

[2026/05/19 15:59:27 CST] [INFO] ------------------------full sync done!------------------------
[2026/05/19 15:59:27 CST] [INFO] finish document replication, change oplog replication to store disk and apply
[2026/05/19 15:59:27 CST] [INFO] persister replset[mongos] update fetch status to: store disk and apply
[2026/05/19 15:59:29 CST] [INFO] [name=mongos, stage=incr, get=167326550, filter=0, write_success=0, tps=0, ckpt_times=0, lsn_ckpt={0[0, 0], 1970-01-01 08:00:00}, lsn_ack={0[0, 0], 1970-01-01 08:00:00}]]
[2026/05/19 15:59:34 CST] [INFO] [name=mongos, stage=incr, get=167328730, filter=0, write_success=0, tps=0, ckpt_times=0, lsn_ckpt={0[0, 0], 1970-01-01 08:00:00}, lsn_ack={0[0, 0], 1970-01-01 08:00:00}]]
[2026/05/19 15:59:39 CST] [INFO] [name=mongos, stage=incr, get=167330272, filter=0, write_success=0, tps=0, ckpt_times=0, lsn_ckpt={0[0, 0], 1970-01-01 08:00:00}, lsn_ack={0[0, 0], 1970-01-01 08:00:00}]]
[2026/05/19 15:59:44 CST] [INFO] [name=mongos, stage=incr, get=167332166, filter=0, write_success=0, tps=0, ckpt_times=0, lsn_ckpt={0[0, 0], 1970-01-01 08:00:00}, lsn_ack={0[0, 0], 1970-01-01 08:00:00}]]
...
[2026/05/19 17:07:59 CST] [INFO] [name=mongos, stage=incr, get=168702945, filter=0, write_success=0, tps=0, ckpt_times=0, lsn_ckpt={0[0, 0], 1970-01-01 08:00:00}, lsn_ack={0[0, 0], 1970-01-01 08:00:00}]]

collector/persister.go:205

func (p *Persister) retrieve() {
	for range time.NewTicker(3 * time.Second).C {
		stage := atomic.LoadInt32(&p.fetchStage)
		switch stage {
		case utils.FetchStageStoreDiskApply:
			break
		case utils.FetchStageStoreUnknown:
			// do nothing
		case utils.FetchStageStoreDiskNoApply:
			// do nothing
		default:
			LOG.Crashf("invalid fetch stage[%v]", utils.LogFetchStage(stage))
		}
	}

	LOG.Info("persister retrieve for replset[%v] begin to read from disk queue with depth[%v]",
		p.replset, p.DiskQueue.Depth())
	ticker := time.NewTicker(time.Second)

This for loop runs infinitely and will never terminate normally; the log line LOG.Info("persister retrieve for replset...") is unreachable.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions