Nailgun agent does not calculate checksum correctly

Bug #1643008 reported by Evgeniy L on 2016-11-18
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
High
Evgeniy L
Mitaka
Undecided
Vladimir Sharshov
Newton
Undecided
Vladimir Sharshov

Bug Description

Detailed bug description:
 Nailgun agent calculates hash sum of data to send, which is used by Nailgun not to update all related models if hash sum was not changed.
 The problem is in Offloading class which is used to calculate HashSum, there is no to_s method, so object id gets propagated, hence every time nailgun-agent is run, there is different hash sum.

https://github.com/openstack/fuel-nailgun-agent/blob/master/agent#L135-L143

Steps to reproduce:
 Make 300 nodes deployment and see amount of database access from Nailgun to Postgresql.
Expected results:
 After first fuel-agent run, Nailgun based on the hash sum sent from agent should not update all the fields.
Actual result:
 Hash sum is wrongly calculated and Nailgun updates all fields based on data from the agent.
Reproducibility:
 100%
Workaround:
 Apply the patch manually (rebuild packages and bootstrap) or increase fuel-agent timeout in cron which may lead to unexpected side effects.
Impact:
 Huge impact for any medium-scale deployments.
Description of the environment:
 8.0, 9.0, 9.1, 10.0

Evgeniy L (rustyrobot) on 2016-11-18
tags: added: module-nailgun-agent
Evgeniy L (rustyrobot) on 2016-11-18
summary: - Scale problem with Nailgun on 300 node deployment
+ Nailgun agent does not calculate checksum correctly

Reviewed: https://review.openstack.org/399698
Committed: https://git.openstack.org/cgit/openstack/fuel-nailgun-agent/commit/?id=9979fb8e27211976377882b7091b7a99b8dcc6a1
Submitter: Jenkins
Branch: master

commit 9979fb8e27211976377882b7091b7a99b8dcc6a1
Author: Evgeny L <email address hidden>
Date: Fri Nov 18 17:11:34 2016 +0000

    Fix Offloading class not to generate different has sum

    Objects from Offloading class are used to calculate checksums for
    Nailgun, without `to_s` object id is used, which is every time different.

    Change-Id: I07e9c3d0a88e7a674b0eeab8dc23f20987fedea6
    Closes-bug: #1643008

Changed in fuel:
status: In Progress → Fix Committed

Reviewed: https://review.openstack.org/399699
Committed: https://git.openstack.org/cgit/openstack/fuel-nailgun-agent/commit/?id=66f9440c5f14ff321010c0ccf8dfd4021ab6e85f
Submitter: Jenkins
Branch: stable/mitaka

commit 66f9440c5f14ff321010c0ccf8dfd4021ab6e85f
Author: Evgeny L <email address hidden>
Date: Fri Nov 18 17:11:34 2016 +0000

    Fix Offloading class not to generate different has sum

    Objects from Offloading class are used to calculate checksums for
    Nailgun, without `to_s` object id is used, which is every time different.

    Change-Id: I07e9c3d0a88e7a674b0eeab8dc23f20987fedea6
    Closes-bug: #1643008

Reviewed: https://review.openstack.org/399700
Committed: https://git.openstack.org/cgit/openstack/fuel-nailgun-agent/commit/?id=9b16ae55d1021e323c57e0df5269cb490b7b9575
Submitter: Jenkins
Branch: stable/newton

commit 9b16ae55d1021e323c57e0df5269cb490b7b9575
Author: Evgeny L <email address hidden>
Date: Fri Nov 18 17:11:34 2016 +0000

    Fix Offloading class not to generate different has sum

    Objects from Offloading class are used to calculate checksums for
    Nailgun, without `to_s` object id is used, which is every time different.

    Change-Id: I07e9c3d0a88e7a674b0eeab8dc23f20987fedea6
    Closes-bug: #1643008

tags: added: scale
Michael Semenov (msemenov) wrote :

9.2 is not certified with more than 200 nodes. So, set as Fix Released in 9.2.

Changed in fuel:
status: Fix Committed → Fix Released

This issue was fixed in the openstack/fuel-nailgun-agent 11.0.0.0rc1 release candidate.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers