Project

General

Profile

Actions

Bug #7621

closed

cf-promises can hang for about 30 seconds looking up default server name "rudder"

Added by Jonathan CLARKE over 8 years ago. Updated over 7 years ago.

Status:
Released
Priority:
N/A
Category:
System techniques
Target version:
Severity:
UX impact:
User visibility:
Effort required:
Priority:
Name check:
Fix check:
Regression:

Description

By default, our promises try to read /var/rudder/cfengine-community/policy_server.dat to determine the server. However, when this code is parsed through cf-promises -c (as cf-serverd runs it), the class based system isn't properly taken into account, leading to cf-promises running a reverse DNS lookup on "rudder".

If this name doesn't exist in DNS, there can be a long timeout. This causes cf-promises to be slow, causing in turn cf-agent runs to take too long, and actually stopping cf-serverd from serving requests during this period.

We can work around this using the ifelse() function - that works in cf-promises (this function exists since 3.5 at least, so we can use it no problem: https://docs.cfengine.com/docs/3.5/reference-functions-ifelse.html).


Subtasks 1 (0 open1 closed)

Bug #8900: cf-promises can hang for about 30 seconds looking up default server name "rudder" - initial promisesReleasedJonathan CLARKE2016-08-26Actions
Actions

Also available in: Atom PDF