From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 7 Mar 2019 19:11:37 +0300 From: Vladimir Davydov Subject: Re: [PATCH] vclock: fix big lsn handling Message-ID: <20190307161137.y32tybenkuijlv55@esperanza> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: To: tarantool-patches@freelists.org List-ID: On Thu, Mar 07, 2019 at 05:58:58PM +0300, Vladimir Davydov wrote: > Fixes commit 8031071efa94 ("Lightweight vclock_create and vclock_copy"). > > Closes #4033 > --- > https://github.com/tarantool/tarantool/issues/4033 > https://github.com/tarantool/tarantool/commits/dv/gh-4033-fix-crash-on-big-lsn > > src/box/vclock.h | 2 +- > test/xlog-py/big_lsn.result | 29 +++++++++++++++++++++++++++++ > test/xlog-py/big_lsn.test.py | 39 +++++++++++++++++++++++++++++++++++++++ > 3 files changed, 69 insertions(+), 1 deletion(-) > create mode 100644 test/xlog-py/big_lsn.result > create mode 100644 test/xlog-py/big_lsn.test.py > > diff --git a/src/box/vclock.h b/src/box/vclock.h > index 1a174c1e..f9633ac9 100644 > --- a/src/box/vclock.h > +++ b/src/box/vclock.h > @@ -165,7 +165,7 @@ vclock_get(const struct vclock *vclock, uint32_t replica_id) > */ > replica_id &= VCLOCK_MAX - 1; > /* Evaluate a bitmask to avoid branching. */ > - int64_t mask = 0 - ((vclock->map >> replica_id) & 0x1); > + int64_t mask = 0ULL - ((vclock->map >> replica_id) & 0x1); > return mask & vclock->lsn[replica_id]; > } Trivial. Pushed to 2.1 and 1.10.