Project

General

Profile

Actions

User story #7490

closed

Make the agent resend the inventory if sending failed

Added by Nicolas CHARLES over 8 years ago. Updated almost 6 years ago.

Status:
Released
Priority:
N/A
Category:
System techniques
Target version:
UX impact:
Suggestion strength:
User visibility:
Getting started - demo | first install | level 1 Techniques
Effort required:
Name check:
Fix check:
Regression:

Description

On first runs, the webdav is not correctly configured on the rudder server root, so the promises will configure the webdav password, and restart apache, and the root server will send its inventory to the webdav, that may be not yet configured, or restarting.
So there is a slight possibility that it fails, and keep an incomplete inventory of the server (with file staying in /var/rudder/inventory), and there is also a possibility that the initial promises never had a chance to quick in to send the inventory to the default apache endpoint

To be on the safe side, the root server should always send its inventory to the endpoint

This won't be done in the initial promises (as the web interface may not be configured when we are in intial promises), but really in normal operation (so when promises have been generated)

Actions #1

Updated by Nicolas CHARLES over 8 years ago

  • Status changed from New to In progress
Actions #2

Updated by Vincent MEMBRÉ over 8 years ago

  • Target version changed from 3.2.0~beta1 to 3.2.0~rc1
Actions #3

Updated by Benoît PECCATTE over 8 years ago

  • Target version changed from 3.2.0~rc1 to 3.2.0~rc2
Actions #4

Updated by Benoît PECCATTE over 8 years ago

  • Target version changed from 3.2.0~rc2 to 3.2.0
Actions #5

Updated by Vincent MEMBRÉ about 8 years ago

  • Target version changed from 3.2.0 to 3.2.1
Actions #6

Updated by Vincent MEMBRÉ about 8 years ago

  • Target version changed from 3.2.1 to 3.2.2
Actions #7

Updated by Vincent MEMBRÉ about 8 years ago

  • Target version changed from 3.2.2 to 3.2.3
Actions #8

Updated by Vincent MEMBRÉ almost 8 years ago

  • Target version changed from 3.2.3 to 3.2.4
Actions #9

Updated by Vincent MEMBRÉ almost 8 years ago

  • Target version changed from 3.2.4 to 3.2.5
Actions #10

Updated by Vincent MEMBRÉ over 7 years ago

  • Target version changed from 3.2.5 to 3.2.6
Actions #11

Updated by Vincent MEMBRÉ over 7 years ago

  • Target version changed from 3.2.6 to 3.2.7
Actions #12

Updated by Vincent MEMBRÉ over 7 years ago

  • Target version changed from 3.2.7 to 3.2.8
Actions #13

Updated by Vincent MEMBRÉ over 7 years ago

  • Target version changed from 3.2.8 to 3.2.9
Actions #14

Updated by Vincent MEMBRÉ over 7 years ago

  • Target version changed from 3.2.9 to 3.2.10
Actions #15

Updated by Nicolas CHARLES over 7 years ago

  • Status changed from In progress to New
Actions #16

Updated by Vincent MEMBRÉ over 7 years ago

  • Target version changed from 3.2.10 to 3.2.11
Actions #17

Updated by Vincent MEMBRÉ about 7 years ago

  • Target version changed from 3.2.11 to 339
Actions #18

Updated by Vincent MEMBRÉ about 7 years ago

  • Target version changed from 339 to 4.0.4
Actions #19

Updated by Jonathan CLARKE about 7 years ago

  • Severity set to Minor - inconvenience | misleading | easy workaround
  • User visibility set to Getting started - demo | first install | level 1 Techniques

Sending directly to the endpoint from promises is not a good idea, because if the endpoint is overloaded it will simply return an error (as designed) but promises don't have any retry mechanism to handle this (which is why this bug is a problem in the first place).

We could and probably should add a retry mechanism to send failed inventories in promises.

Also I don't think we should bypass the webdav to send inventories. Everything is much easier when there are no exceptions, and all inventories are processed in the same way. We have plans to use apache hooks to add actions when inventories are received for example.

Actions #20

Updated by Benoît PECCATTE about 7 years ago

  • Priority set to 29
Actions #21

Updated by Vincent MEMBRÉ about 7 years ago

  • Target version changed from 4.0.4 to 4.0.5
Actions #22

Updated by Jonathan CLARKE almost 7 years ago

  • Assignee deleted (Nicolas CHARLES)
Actions #23

Updated by Vincent MEMBRÉ almost 7 years ago

  • Target version changed from 4.0.5 to 4.0.6
Actions #24

Updated by Vincent MEMBRÉ almost 7 years ago

  • Target version changed from 4.0.6 to 4.0.7
Actions #25

Updated by Vincent MEMBRÉ almost 7 years ago

  • Target version changed from 4.0.7 to 357
Actions #26

Updated by Benoît PECCATTE almost 7 years ago

  • Priority changed from 29 to 42
Actions #27

Updated by Alexis Mousset almost 7 years ago

  • Target version changed from 357 to 4.1.6
Actions #28

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.1.6 to 4.1.7
Actions #29

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.1.7 to 4.1.8
Actions #30

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.1.8 to 4.1.9
Actions #31

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.1.9 to 4.1.10
Actions #32

Updated by Benoît PECCATTE about 6 years ago

I don't see the inconvenience, if the inventory is not sent, the server still works, and the inventory will be sent again the day after.

Actions #33

Updated by Nicolas CHARLES about 6 years ago

Benoît PECCATTE wrote:

I don't see the inconvenience, if the inventory is not sent, the server still works, and the inventory will be sent again the day after.

It shows in the interface "No machine inventory", which is not great for a first contact with Rudder

Actions #34

Updated by Benoît PECCATTE about 6 years ago

Wouldn't it be the right to implement inventory resend in case of error ?

Actions #35

Updated by Nicolas CHARLES about 6 years ago

Yes, but here the case can be vicious: inventory is send, received, and then the webapp can be restarted before it's fully parsed.

Actions #36

Updated by Benoît PECCATTE about 6 years ago

Does the webapp return an OK code before processing inventories ?

Actions #37

Updated by Benoît PECCATTE about 6 years ago

In fact we would send to webdav, so this case would be handled by send-clean

Actions #38

Updated by Benoît PECCATTE about 6 years ago

  • Status changed from New to In progress
  • Assignee set to Benoît PECCATTE
Actions #39

Updated by Benoît PECCATTE about 6 years ago

  • Tracker changed from Bug to User story
  • Subject changed from root server sends inventory to itself via the webdav rather than the endpoint, which can fail because of race condition to Make the agent resend the inventory if sending failed
Actions #40

Updated by Benoît PECCATTE about 6 years ago

  • Status changed from In progress to Pending technical review
  • Assignee changed from Benoît PECCATTE to Nicolas CHARLES
  • Pull Request set to https://github.com/Normation/rudder-techniques/pull/1250
Actions #41

Updated by Vincent MEMBRÉ about 6 years ago

  • Target version changed from 4.1.10 to 4.1.11
Actions #42

Updated by Vincent MEMBRÉ about 6 years ago

  • Target version changed from 4.1.11 to 4.1.12
Actions #43

Updated by Vincent MEMBRÉ almost 6 years ago

  • Target version changed from 4.1.12 to 4.1.13
Actions #44

Updated by Rudder Quality Assistant almost 6 years ago

  • Status changed from Pending technical review to Discussion
  • Assignee changed from Nicolas CHARLES to Benoît PECCATTE
Actions #45

Updated by Benoît PECCATTE almost 6 years ago

  • Status changed from Discussion to Pending technical review
  • Assignee changed from Benoît PECCATTE to Nicolas CHARLES
Actions #46

Updated by Rudder Quality Assistant almost 6 years ago

  • Status changed from Pending technical review to Discussion
  • Assignee changed from Nicolas CHARLES to Benoît PECCATTE
Actions #47

Updated by Benoît PECCATTE almost 6 years ago

  • Status changed from Discussion to Pending release
Actions #48

Updated by Vincent MEMBRÉ almost 6 years ago

  • Status changed from Pending release to Released

This bug has been fixed in Rudder 4.1.13, 4.2.7 and 4.3.3 which were released today.

Actions

Also available in: Atom PDF