[Bug 1642538] Re: swift-ring-builder rebalance - endless loop

Launchpad Bug Tracker 1642538 at bugs.launchpad.net
Tue Jan 10 23:59:11 UTC 2017


This bug was fixed in the package swift - 2.7.0-0ubuntu2.1

---------------
swift (2.7.0-0ubuntu2.1) xenial; urgency=medium

  * d/p/avoid-infinite-loop-while-placing-parts.patch: Cherry-picked from
    upstream stable/mitaka branch to avoid infinite loop while placing parts
    (LP: #1642538).

 -- Corey Bryant <corey.bryant at canonical.com>  Fri, 09 Dec 2016 10:40:09
-0500

** Changed in: swift (Ubuntu Xenial)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to swift in Ubuntu.
https://bugs.launchpad.net/bugs/1642538

Title:
  swift-ring-builder rebalance - endless loop

Status in Ubuntu Cloud Archive:
  Fix Committed
Status in Ubuntu Cloud Archive mitaka series:
  Fix Committed
Status in Ubuntu Cloud Archive newton series:
  Fix Committed
Status in Ubuntu Cloud Archive ocata series:
  Fix Committed
Status in OpenStack Object Storage (swift):
  Fix Released
Status in swift package in Ubuntu:
  Fix Released
Status in swift source package in Xenial:
  Fix Released
Status in swift source package in Yakkety:
  Fix Released
Status in swift source package in Zesty:
  Fix Released

Bug description:
  There is an issue with swift-ring-builder and rebalancing under
  certain conditions beginning in Mitaka.

  Steps to reproduce:
  Create a ring with part power of 12. 3 servers with 11 devices each, BUT 2 servers in zone 1 and one server in zone 2. After adding all devices as described above, swift-ring-builder <ring>.builder rebalance does not return and seems to run into an endless loop.

  The weirdness starts with the 11th device, 10 devices still work. It
  does not matter whether you add each 10 devices from the 3 servers and
  rebalance, and than add the 11th device from each server afterwards or
  do it all at once.

  This behaviour does not exists in Liberty and starts with Mitaka.

  For connivence I am adding the statements to reproduce:


  swift-ring-builder account.builder create 12 3 1

  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.60 --port 6002 --replication-ip 10.46.15.60 --replication-port 6002 --device swift-01 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.60 --port 6002 --replication-ip 10.46.15.60 --replication-port 6002 --device swift-02 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.60 --port 6002 --replication-ip 10.46.15.60 --replication-port 6002 --device swift-03 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.60 --port 6002 --replication-ip 10.46.15.60 --replication-port 6002 --device swift-04 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.60 --port 6002 --replication-ip 10.46.15.60 --replication-port 6002 --device swift-05 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.60 --port 6002 --replication-ip 10.46.15.60 --replication-port 6002 --device swift-06 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.60 --port 6002 --replication-ip 10.46.15.60 --replication-port 6002 --device swift-07 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.60 --port 6002 --replication-ip 10.46.15.60 --replication-port 6002 --device swift-08 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.60 --port 6002 --replication-ip 10.46.15.60 --replication-port 6002 --device swift-09 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.60 --port 6002 --replication-ip 10.46.15.60 --replication-port 6002 --device swift-10 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.60 --port 6002 --replication-ip 10.46.15.60 --replication-port 6002 --device swift-11 --weight 100.00

  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.61 --port 6002 --replication-ip 10.46.15.61 --replication-port 6002 --device swift-01 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.61 --port 6002 --replication-ip 10.46.15.61 --replication-port 6002 --device swift-02 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.61 --port 6002 --replication-ip 10.46.15.61 --replication-port 6002 --device swift-03 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.61 --port 6002 --replication-ip 10.46.15.61 --replication-port 6002 --device swift-04 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.61 --port 6002 --replication-ip 10.46.15.61 --replication-port 6002 --device swift-05 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.61 --port 6002 --replication-ip 10.46.15.61 --replication-port 6002 --device swift-06 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.61 --port 6002 --replication-ip 10.46.15.61 --replication-port 6002 --device swift-07 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.61 --port 6002 --replication-ip 10.46.15.61 --replication-port 6002 --device swift-08 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.61 --port 6002 --replication-ip 10.46.15.61 --replication-port 6002 --device swift-09 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.61 --port 6002 --replication-ip 10.46.15.61 --replication-port 6002 --device swift-10 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 1 --ip 10.46.15.61 --port 6002 --replication-ip 10.46.15.61 --replication-port 6002 --device swift-11 --weight 100.00

  swift-ring-builder account.builder add --region 1 --zone 2 --ip 10.46.15.62 --port 6002 --replication-ip 10.46.15.62 --replication-port 6002 --device swift-01 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 2 --ip 10.46.15.62 --port 6002 --replication-ip 10.46.15.62 --replication-port 6002 --device swift-02 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 2 --ip 10.46.15.62 --port 6002 --replication-ip 10.46.15.62 --replication-port 6002 --device swift-03 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 2 --ip 10.46.15.62 --port 6002 --replication-ip 10.46.15.62 --replication-port 6002 --device swift-04 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 2 --ip 10.46.15.62 --port 6002 --replication-ip 10.46.15.62 --replication-port 6002 --device swift-05 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 2 --ip 10.46.15.62 --port 6002 --replication-ip 10.46.15.62 --replication-port 6002 --device swift-06 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 2 --ip 10.46.15.62 --port 6002 --replication-ip 10.46.15.62 --replication-port 6002 --device swift-07 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 2 --ip 10.46.15.62 --port 6002 --replication-ip 10.46.15.62 --replication-port 6002 --device swift-08 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 2 --ip 10.46.15.62 --port 6002 --replication-ip 10.46.15.62 --replication-port 6002 --device swift-09 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 2 --ip 10.46.15.62 --port 6002 --replication-ip 10.46.15.62 --replication-port 6002 --device swift-10 --weight 100.00
  swift-ring-builder account.builder add --region 1 --zone 2 --ip 10.46.15.62 --port 6002 --replication-ip 10.46.15.62 --replication-port 6002 --device swift-11 --weight 100.00

  swift-ring-builder account.builder rebalance

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1642538/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list