Bug #5874
closedUser story #5293: Add a 'changes only' compliance mode, only reporting changes on systems
User story #5576: Add a heartbeat feature that force agent to periodically contact Rudder
User story #5579: Send reports from the agent to provide a heartbeat
Start message from system techniques is sometimes not printed due to over-zealous locking
Description
Our reporting system relies on a pair of messages (startRun/endRun) at the beginning/end of each run to be sent.
Since #5579, we changed the way the startRun message is called, to make it optional for the "changes only" reporting mode from #5293. This now involves an intermediate methods promise to call it:
168 methods: 169 # Should we send a message stating this agent is starting up? 170 # Always do it in "full_compliance" mode 171 # In other modes, only do it here if we need to send it as a "heartbeat", that is if it hasn't already been sent recently enough 172 full_compliance|!heartbeat_sent:: 173 "Send start message" usebundle => startExecution;
However since this promise doesn't contain any run-unique information (like the timestamp the actual report contains), this gets subjected to the default locks. But the endRun report does not, since the bundle is run directly from the bundlesequence. This results in outputs lacking the startRun message.
This is easily fixed by using "action => immediate" on the methods promises that call startExecution.
Updated by Jonathan CLARKE about 10 years ago
- Status changed from In progress to Pending technical review
- Assignee changed from Jonathan CLARKE to Nicolas CHARLES
- Pull Request set to https://github.com/Normation/rudder-techniques/pull/582
Updated by Jonathan CLARKE about 10 years ago
- Status changed from Pending technical review to Pending release
- % Done changed from 0 to 100
Applied in changeset policy-templates:commit:6b4a67439ea2ece4db8abc12ed8f64736d9118eb.
Updated by Matthieu CERDA about 10 years ago
Applied in changeset policy-templates:commit:9b6ed639a12923689b42a3b894b670c71da71d1c.
Updated by Nicolas CHARLES about 10 years ago
i don't understand this issue. When does the startRun isn't outputed ?
Updated by Jonathan CLARKE about 10 years ago
If you run the agent once, then run it again immediately afterwards, without the -K flag. Then the default lock applies to this promise (the methods call).
This could be an issue also if a user runs cf-agent manually, less than one minute before cf-execd runs it.
Updated by Vincent MEMBRÉ about 10 years ago
- Status changed from Pending release to Released
This bug has been fixed in Rudder 3.0.0~beta1 which was release on 01/12/2014.
- Announcement
- Changelog
- "Download information": https://www.rudder-project.org/site/get-rudder/downloads/