Bug #8427
closedParallel traversal of new promises directories causes some nodes promises to not be updated
Description
When we generate new promises, we do that in a parallel way for each node, so that I/O latency on one node is not making all of the other waits.
The code is not correctly synchronized, and so we loose in the process the list of nodes that were processed. The result is that new nodes may not have the "rules.new" directory moved to "rules", and keep getting old promises.
It's the same problem as: http://www.rudder-project.org/redmine/issues/7403
Updated by François ARMAND over 8 years ago
- Related to Architecture #7403: Paralell sequence may have a not correct result (missing elements) added
Updated by François ARMAND over 8 years ago
The problem is exactly in /rudder-core/src/main/scala/com/normation/rudder/services/policies/RudderPromiseWriterServiceImpl.scala, when we do:
val folders = collection.mutable.Buffer[(NodeConfiguration, String, String, String)]()
// Writing the policy
for (node <- interestingNodeConfig.par) {
.....
folders ++= x
}
Updated by François ARMAND over 8 years ago
- Status changed from In progress to Pending technical review
- Assignee changed from François ARMAND to Nicolas CHARLES
- Pull Request set to https://github.com/Normation/rudder/pull/1107
Updated by François ARMAND over 8 years ago
The problem is nowhere else in the code (it is ok in rudder-core/src/test/scala/com/normation/rudder/domain/policies/RuleTargetTest.scala, the use pattern is different). It is no more in 3.2, because of #7403.
Updated by François ARMAND over 8 years ago
- Target version changed from 3.0.17 to 2.11.22
Updated by François ARMAND over 8 years ago
- Pull Request changed from https://github.com/Normation/rudder/pull/1107 to https://github.com/Normation/rudder/pull/1108
Updated by François ARMAND over 8 years ago
- Status changed from Pending technical review to Pending release
- % Done changed from 0 to 100
Applied in changeset rudder|4ca0a59c82d090c161c116894a82ec99994c48ee.
Updated by Vincent MEMBRÉ over 8 years ago
- Subject changed from Parallel traversal of new promises directories causes rules.new to remain after generation to Parallel traversal of new promises directories causes some nodes promises to not be updated
Updated by Vincent MEMBRÉ over 8 years ago
- Status changed from Pending release to Released