MongoDB stale replication, odd timestamp after data flush

mongodbreplication

Right before my secondary goes stale, it first has this written in the log:

2017-04-25T06:48:02.991+0000 I STORAGE  [DataFileSync] flushing mmaps took 13530ms  for 3150 files

Then it gives me a odd stale message, note the "b" in the oldest available.

2017-04-25T06:50:03.815+0000 I REPL     [ReplicationExecutor] could not find member to sync from
2017-04-25T06:50:03.815+0000 E REPL     [rsBackgroundSync] too stale to catch up -- entering maintenance mode
2017-04-25T06:50:03.815+0000 I REPL     [rsBackgroundSync] our last optime : (term: 6, timestamp: Apr 25 06:32:08:333)
2017-04-25T06:50:03.815+0000 I REPL     [rsBackgroundSync] oldest available is (term: 6, timestamp: Apr 25 06:32:08:3b1)
2017-04-25T06:50:03.815+0000 I REPL     [rsBackgroundSync] See http://dochub.mongodb.org/core/resyncingaverystalereplicasetmember

I am running mongodb 3.2.8. Is that b expected to be in there? Is this expected?

Best Answer

No, it's not expected be there. Timestamp values should be decimal, not hexadecimal and msec value 3b1 is bigger than 333.

You could "move" primary status from current node to another node and try to resync this stale node again, this time it would read that other node and hopefully it's opLog is in good condition.