From 9bf68ac3ebdf829eb934a9b44ed1f3129240c49c Mon Sep 17 00:00:00 2001 From: godchen Date: Fri, 5 Nov 2021 13:56:58 +0800 Subject: [PATCH] Fix timestamp endian error (#11220) Signed-off-by: godchen --- internal/util/typeutil/convension.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/util/typeutil/convension.go b/internal/util/typeutil/convension.go index 4995c82ce7..f05b60106d 100644 --- a/internal/util/typeutil/convension.go +++ b/internal/util/typeutil/convension.go @@ -12,6 +12,7 @@ package typeutil import ( + "encoding/binary" "fmt" "math" "reflect" @@ -57,13 +58,16 @@ func BytesToUint64(b []byte) (uint64, error) { return 0, fmt.Errorf("Failed to convert []byte to uint64: invalid data, must 8 bytes, but %d", len(b)) } - return common.Endian.Uint64(b), nil + // do not use little or common endian for compatibility issues(the msgid used in rocksmq is using this) + return binary.BigEndian.Uint64(b), nil } // Uint64ToBytes converts uint64 to a byte slice. func Uint64ToBytes(v uint64) []byte { b := make([]byte, 8) - common.Endian.PutUint64(b, v) + + // do not use little or common endian for compatibility issues(the msgid used in rocksmq is using this) + binary.BigEndian.PutUint64(b, v) return b }