Skip to content

Commit 5290cae

Browse files
authored
Merge pull request #432 from letian0805/fix/sequence_number_bug
Fix sequence number bug when storage fails
2 parents 8e4cbb6 + da528c3 commit 5290cae

File tree

3 files changed

+24
-24
lines changed

3 files changed

+24
-24
lines changed

filestore.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -280,34 +280,34 @@ func (store *fileStore) NextTargetMsgSeqNum() int {
280280

281281
// SetNextSenderMsgSeqNum sets the next MsgSeqNum that will be sent.
282282
func (store *fileStore) SetNextSenderMsgSeqNum(next int) error {
283-
if err := store.cache.SetNextSenderMsgSeqNum(next); err != nil {
284-
return errors.Wrap(err, "cache")
283+
if err := store.setSeqNum(store.senderSeqNumsFile, next); err != nil {
284+
return errors.Wrap(err, "file")
285285
}
286-
return store.setSeqNum(store.senderSeqNumsFile, next)
286+
return store.cache.SetNextSenderMsgSeqNum(next)
287287
}
288288

289289
// SetNextTargetMsgSeqNum sets the next MsgSeqNum that should be received.
290290
func (store *fileStore) SetNextTargetMsgSeqNum(next int) error {
291-
if err := store.cache.SetNextTargetMsgSeqNum(next); err != nil {
292-
return errors.Wrap(err, "cache")
291+
if err := store.setSeqNum(store.targetSeqNumsFile, next); err != nil {
292+
return errors.Wrap(err, "file")
293293
}
294-
return store.setSeqNum(store.targetSeqNumsFile, next)
294+
return store.cache.SetNextTargetMsgSeqNum(next)
295295
}
296296

297297
// IncrNextSenderMsgSeqNum increments the next MsgSeqNum that will be sent.
298298
func (store *fileStore) IncrNextSenderMsgSeqNum() error {
299-
if err := store.cache.IncrNextSenderMsgSeqNum(); err != nil {
300-
return errors.Wrap(err, "cache")
299+
if err := store.SetNextSenderMsgSeqNum(store.cache.NextSenderMsgSeqNum() + 1); err != nil {
300+
return errors.Wrap(err, "file")
301301
}
302-
return store.setSeqNum(store.senderSeqNumsFile, store.cache.NextSenderMsgSeqNum())
302+
return nil
303303
}
304304

305305
// IncrNextTargetMsgSeqNum increments the next MsgSeqNum that should be received.
306306
func (store *fileStore) IncrNextTargetMsgSeqNum() error {
307-
if err := store.cache.IncrNextTargetMsgSeqNum(); err != nil {
308-
return errors.Wrap(err, "cache")
307+
if err := store.SetNextTargetMsgSeqNum(store.cache.NextTargetMsgSeqNum() + 1); err != nil {
308+
return errors.Wrap(err, "file")
309309
}
310-
return store.setSeqNum(store.targetSeqNumsFile, store.cache.NextTargetMsgSeqNum())
310+
return nil
311311
}
312312

313313
// CreationTime returns the creation time of the store.

mongostore.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -254,18 +254,18 @@ func (store *mongoStore) SetNextTargetMsgSeqNum(next int) error {
254254

255255
// IncrNextSenderMsgSeqNum increments the next MsgSeqNum that will be sent.
256256
func (store *mongoStore) IncrNextSenderMsgSeqNum() error {
257-
if err := store.cache.IncrNextSenderMsgSeqNum(); err != nil {
258-
return errors.Wrap(err, "cache incr")
257+
if err := store.SetNextSenderMsgSeqNum(store.cache.NextSenderMsgSeqNum() + 1); err != nil {
258+
return errors.Wrap(err, "save sequence number")
259259
}
260-
return store.SetNextSenderMsgSeqNum(store.cache.NextSenderMsgSeqNum())
260+
return nil
261261
}
262262

263263
// IncrNextTargetMsgSeqNum increments the next MsgSeqNum that should be received.
264264
func (store *mongoStore) IncrNextTargetMsgSeqNum() error {
265-
if err := store.cache.IncrNextTargetMsgSeqNum(); err != nil {
266-
return errors.Wrap(err, "cache incr")
265+
if err := store.SetNextTargetMsgSeqNum(store.cache.NextTargetMsgSeqNum() + 1); err != nil {
266+
return errors.Wrap(err, "save sequence number")
267267
}
268-
return store.SetNextTargetMsgSeqNum(store.cache.NextTargetMsgSeqNum())
268+
return nil
269269
}
270270

271271
// CreationTime returns the creation time of the store.

sqlstore.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -261,18 +261,18 @@ func (store *sqlStore) SetNextTargetMsgSeqNum(next int) error {
261261

262262
// IncrNextSenderMsgSeqNum increments the next MsgSeqNum that will be sent.
263263
func (store *sqlStore) IncrNextSenderMsgSeqNum() error {
264-
if err := store.cache.IncrNextSenderMsgSeqNum(); err != nil {
265-
return errors.Wrap(err, "cache incr next")
264+
if err := store.SetNextSenderMsgSeqNum(store.cache.NextSenderMsgSeqNum() + 1); err != nil {
265+
return errors.Wrap(err, "store next")
266266
}
267-
return store.SetNextSenderMsgSeqNum(store.cache.NextSenderMsgSeqNum())
267+
return nil
268268
}
269269

270270
// IncrNextTargetMsgSeqNum increments the next MsgSeqNum that should be received.
271271
func (store *sqlStore) IncrNextTargetMsgSeqNum() error {
272-
if err := store.cache.IncrNextTargetMsgSeqNum(); err != nil {
273-
return errors.Wrap(err, "cache incr next")
272+
if err := store.SetNextTargetMsgSeqNum(store.cache.NextTargetMsgSeqNum() + 1); err != nil {
273+
return errors.Wrap(err, "store next")
274274
}
275-
return store.SetNextTargetMsgSeqNum(store.cache.NextTargetMsgSeqNum())
275+
return nil
276276
}
277277

278278
// CreationTime returns the creation time of the store.

0 commit comments

Comments
 (0)