From 2f8d4e95e0c0c530eda75ecd1dd5af16b4906781 Mon Sep 17 00:00:00 2001 From: Philip O'Toole Date: Wed, 17 May 2023 11:43:19 -0400 Subject: [PATCH 1/2] Update store.go --- store/store.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/store/store.go b/store/store.go index da7422a9..f4d68d94 100644 --- a/store/store.go +++ b/store/store.go @@ -965,6 +965,10 @@ func (s *Store) Request(eqr *command.ExecuteQueryRequest) ([]*command.ExecuteQue } if !s.RequiresLeader(eqr) { + if eqr.Level == command.ExecuteQueryRequest_QUERY_REQUEST_LEVEL_NONE && eqr.Freshness > 0 && + time.Since(s.raft.LastContact()).Nanoseconds() > eqr.Freshness { + return nil, ErrStaleRead + } if eqr.Request.Transaction { // Transaction requested during query, but not going through consensus. This means // we need to block any database serialization during the query. From 18b76ebd4f0dd90af9e71fc2bfad64a58f7382d8 Mon Sep 17 00:00:00 2001 From: Philip O'Toole Date: Wed, 17 May 2023 11:45:16 -0400 Subject: [PATCH 2/2] go fmt --- store/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/store/store.go b/store/store.go index f4d68d94..004b8cf9 100644 --- a/store/store.go +++ b/store/store.go @@ -966,7 +966,7 @@ func (s *Store) Request(eqr *command.ExecuteQueryRequest) ([]*command.ExecuteQue if !s.RequiresLeader(eqr) { if eqr.Level == command.ExecuteQueryRequest_QUERY_REQUEST_LEVEL_NONE && eqr.Freshness > 0 && - time.Since(s.raft.LastContact()).Nanoseconds() > eqr.Freshness { + time.Since(s.raft.LastContact()).Nanoseconds() > eqr.Freshness { return nil, ErrStaleRead } if eqr.Request.Transaction {