From 9e08b41a6f8707baa5e65413e38c780759377727 Mon Sep 17 00:00:00 2001 From: Alex Vanin Date: Tue, 20 Oct 2020 09:54:19 +0300 Subject: [PATCH] [#102] Set split header in left object Signed-off-by: Alex Vanin --- pkg/services/object_manager/transformer/transformer.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/services/object_manager/transformer/transformer.go b/pkg/services/object_manager/transformer/transformer.go index ae9d4836c1..e748644af4 100644 --- a/pkg/services/object_manager/transformer/transformer.go +++ b/pkg/services/object_manager/transformer/transformer.go @@ -79,9 +79,6 @@ func (s *payloadSizeLimiter) initialize() { s.parent.ResetRelations() s.parentHashers = s.currentHashers s.current = fromObject(s.parent) - - // initialize blank split header - s.current.InitRelations() } // set previous object to the last previous identifier @@ -220,6 +217,11 @@ func (s *payloadSizeLimiter) initializeLinking() { func (s *payloadSizeLimiter) writeChunk(chunk []byte) error { // statement is true if the previous write of bytes reached exactly the boundary. if s.written > 0 && s.written%s.maxSize == 0 { + if s.written == s.maxSize { + // initialize blank split header on first object in chain + s.current.InitRelations() + } + // we need to release current object if _, err := s.release(false); err != nil { return errors.Wrap(err, "could not release object")