From b3f601427cac0f031890f0b5966261527dea69c9 Mon Sep 17 00:00:00 2001 From: Rafael Matias Date: Wed, 12 Jun 2019 12:55:36 +0200 Subject: [PATCH] storage: fix alignement panics on 32 bit arch (#1460) --- storage/hasherstore.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/storage/hasherstore.go b/storage/hasherstore.go index aa4326d24d..a6a4da6b30 100644 --- a/storage/hasherstore.go +++ b/storage/hasherstore.go @@ -27,6 +27,10 @@ import ( ) type hasherStore struct { + // nrChunks is used with atomic functions + // it is required to be at the start of the struct to ensure 64bit alignment for ARM, x86-32, and 32-bit MIPS architectures + // see: https://golang.org/pkg/sync/atomic/#pkg-note-BUG + nrChunks uint64 // number of chunks to store store ChunkStore tag *chunk.Tag toEncrypt bool @@ -36,10 +40,6 @@ type hasherStore struct { errC chan error // global error channel doneC chan struct{} // closed by Close() call to indicate that count is the final number of chunks quitC chan struct{} // closed to quit unterminated routines - // nrChunks is used with atomic functions - // it is required to be at the end of the struct to ensure 64bit alignment for arm architecture - // see: https://golang.org/pkg/sync/atomic/#pkg-note-BUG - nrChunks uint64 // number of chunks to store } // NewHasherStore creates a hasherStore object, which implements Putter and Getter interfaces.