@@ -149,8 +149,8 @@ func MaybeSideloadEntries(
149149
150150// MaybeInlineSideloadedRaftCommand takes an entry and inspects it. If its
151151// command encoding version indicates a sideloaded entry, it uses the entryCache
152- // or SideloadStorage to inline the payload, returning a new entry (which must
153- // be treated as immutable by the caller) or nil (if inlining does not apply)
152+ // or SideloadStorage to inline the payload, and returns a new entry (which must
153+ // be treated as immutable by the caller).
154154//
155155// If a payload is missing, returns an error whose Cause() is
156156// errSideloadedFileNotFound.
@@ -160,31 +160,24 @@ func MaybeInlineSideloadedRaftCommand(
160160 ent raftpb.Entry ,
161161 sideloaded SideloadStorage ,
162162 entryCache * raftentry.Cache ,
163- ) (* raftpb.Entry , error ) {
163+ ) (raftpb.Entry , error ) {
164164 typ , pri , err := raftlog .EncodingOf (ent )
165- if err != nil {
166- return nil , err
167- }
168- if ! typ .IsSideloaded () {
169- return nil , nil
165+ if err != nil || ! typ .IsSideloaded () {
166+ return ent , err
170167 }
171168 log .Event (ctx , "inlining sideloaded SSTable" )
172169 // We could unmarshal this yet again, but if it's committed we are very likely
173170 // to have appended it recently, in which case we can save work.
174171 if entry , hit := entryCache .Get (rangeID , kvpb .RaftIndex (ent .Index )); hit {
175172 log .Event (ctx , "using cache hit" )
176- return & entry , nil
173+ return entry , nil
177174 }
178175
179- // Make a shallow copy.
180- entCpy := ent
181- ent = entCpy
182-
183176 log .Event (ctx , "inlined entry not cached" )
184177 // (Bad) luck, for whatever reason the inlined proposal isn't in the cache.
185178 e , err := raftlog .NewEntry (ent )
186179 if err != nil {
187- return nil , err
180+ return ent , err
188181 }
189182
190183 if len (e .Cmd .ReplicatedEvalResult .AddSSTable .Data ) > 0 {
@@ -196,12 +189,12 @@ func MaybeInlineSideloadedRaftCommand(
196189 // be as a result of log entries that are very old, written
197190 // when sending the log with snapshots was still possible).
198191 log .Event (ctx , "entry already inlined" )
199- return & ent , nil
192+ return ent , nil
200193 }
201194
202195 sideloadedData , err := sideloaded .Get (ctx , kvpb .RaftIndex (ent .Index ), kvpb .RaftTerm (ent .Term ))
203196 if err != nil {
204- return nil , errors .Wrap (err , "loading sideloaded data" )
197+ return ent , errors .Wrap (err , "loading sideloaded data" )
205198 }
206199 e .Cmd .ReplicatedEvalResult .AddSSTable .Data = sideloadedData
207200 // TODO(tbg): there should be a helper that properly encodes a command, given
@@ -211,11 +204,11 @@ func MaybeInlineSideloadedRaftCommand(
211204 raftlog .EncodeRaftCommandPrefix (data [:raftlog .RaftCommandPrefixLen ], typ , e .ID , pri )
212205 _ , err := protoutil .MarshalToSizedBuffer (& e .Cmd , data [raftlog .RaftCommandPrefixLen :])
213206 if err != nil {
214- return nil , err
207+ return ent , err
215208 }
216209 ent .Data = data
217210 }
218- return & ent , nil
211+ return ent , nil
219212}
220213
221214// AssertSideloadedRaftCommandInlined asserts that if the provided entry is a
0 commit comments