[ARVADOS] updated: 1.3.0-1716-g15917b2b3

Git user git at public.curoverse.com
Wed Oct 16 15:59:35 UTC 2019


Summary of changes:
 sdk/go/arvados/fs_collection.go | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

       via  15917b2b3902994ca4f6b004577b1130ba0fdaf0 (commit)
       via  78724c7c38805402c442629d4d678f8145e31d76 (commit)
      from  b714ab7401074991afe2fdc239c89107b3af6ca1 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 15917b2b3902994ca4f6b004577b1130ba0fdaf0
Author: Tom Clegg <tclegg at veritasgenetics.com>
Date:   Wed Oct 16 11:58:52 2019 -0400

    15652: Fix shadowed variable.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg at veritasgenetics.com>

diff --git a/sdk/go/arvados/fs_collection.go b/sdk/go/arvados/fs_collection.go
index 9aaa3747b..543d89385 100644
--- a/sdk/go/arvados/fs_collection.go
+++ b/sdk/go/arvados/fs_collection.go
@@ -764,13 +764,13 @@ func (dn *dirnode) flush(ctx context.Context, throttle *throttle, names []string
 	for _, name := range names {
 		switch node := dn.inodes[name].(type) {
 		case *dirnode:
-			names := node.sortedNames()
-			for _, name := range names {
-				child := node.inodes[name]
-				child.Lock()
-				defer child.Unlock()
+			grandchildNames := node.sortedNames()
+			for _, grandchildName := range grandchildNames {
+				grandchild := node.inodes[grandchildName]
+				grandchild.Lock()
+				defer grandchild.Unlock()
 			}
-			cg.Go(func() error { return node.flush(cg.Context(), throttle, node.sortedNames(), opts) })
+			cg.Go(func() error { return node.flush(cg.Context(), throttle, grandchildNames, opts) })
 		case *filenode:
 			for idx, seg := range node.segments {
 				switch seg := seg.(type) {

commit 78724c7c38805402c442629d4d678f8145e31d76
Author: Tom Clegg <tclegg at veritasgenetics.com>
Date:   Wed Oct 16 11:55:37 2019 -0400

    15652: Fix wrong block offset in async case.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg at veritasgenetics.com>

diff --git a/sdk/go/arvados/fs_collection.go b/sdk/go/arvados/fs_collection.go
index 3a45dda29..9aaa3747b 100644
--- a/sdk/go/arvados/fs_collection.go
+++ b/sdk/go/arvados/fs_collection.go
@@ -643,6 +643,7 @@ func (dn *dirnode) commitBlock(ctx context.Context, refs []fnSegmentRef, sync bo
 	done := make(chan struct{})
 	block := make([]byte, 0, maxBlockSize)
 	segs := make([]*memSegment, 0, len(refs))
+	offsets := make([]int, 0, len(refs)) // location of segment's data within block
 	for _, ref := range refs {
 		seg := ref.fn.segments[ref.idx].(*memSegment)
 		if seg.flushing != nil && !sync {
@@ -656,6 +657,7 @@ func (dn *dirnode) commitBlock(ctx context.Context, refs []fnSegmentRef, sync bo
 			// fn's lock until we finish our own writes.
 		}
 		seg.flushing = done
+		offsets = append(offsets, len(block))
 		block = append(block, seg.buf...)
 		segs = append(segs, seg)
 	}
@@ -687,7 +689,6 @@ func (dn *dirnode) commitBlock(ctx context.Context, refs []fnSegmentRef, sync bo
 			errs <- err
 			return
 		}
-		off := 0
 		for idx, ref := range refs {
 			if !sync {
 				// In async mode, fn's lock was
@@ -717,10 +718,9 @@ func (dn *dirnode) commitBlock(ctx context.Context, refs []fnSegmentRef, sync bo
 				kc:      dn.fs,
 				locator: locator,
 				size:    len(block),
-				offset:  off,
+				offset:  offsets[idx],
 				length:  len(data),
 			}
-			off += len(data)
 			ref.fn.memsize -= int64(len(data))
 		}
 	}()

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list