Re: track_file function ?
Quentin Armitage <[email protected]> Fri, 02 Feb 2018 14:46:31 +0000
| Newsgroups | gmane.linux.keepalived.devel |
|---|---|
| Organization | The Armitage family |
| Message-ID | <[email protected]> |
Damien, I've looked at this a bit further, and I don't think adding a delay will resolve the problem. At around line 927 of keepalived/core/keepalived_netlink.c there is an explanation of what appears to be happening: /* It appears the if we add a large number of interfaces, then * within a few seconds of starting up the kernel can decide to * notify us again of all the new interfaces (or it may have something * to do with becoming master). In any event, if we add a * kernel_netlink_poll() at every stage of the process, we suddenly * go from having nothing to receive on nl_kernel to ENOBUFS. Since it * relates to the interfaces, and we have already got the information * about the interfaces, it appears that we aren't losing any useful info. */ I need to change this to: /* It appears the if we add a large number of interfaces, then * while adding the interfaces the kernel can decide to suddenly * notify us again of all the new interfaces, and this notification causes * use to receive ENOBUFS on the nl_kernel socket. Since it * relates to the interfaces, and we have already got the information * about the interfaces, it appears that we aren't losing any useful information. */ If you run:ip monitor link address routewhile keepalived is starting up, you will see in the output of that, and the same point as keepalived logs the Receive message overrun that ip monitor shows netlink messages for all the interfaces we have created so far (it is interesting that it is the interfaces that keepalived had created except the first one, and not the interfaces that had been created before keepalived started). It is almost as though it is an issue with a circular buffer wrapping around and it then sends the whole buffer contents again. I'm not sure yet how ip monitor manages to avoid a buffer overrun but I will investigate that further. Quentin On Thu, 2018-02-01 at 14:36 +0000, Damien Clabaut wrote: > Hello again Quentin, > > So far this is the only issue I have with latest beta: > Feb 1 15:32:56 bz-perflab-6-vr Keepalived_vrrp[10486]: (4137): > Success creating VMAC interface vrrp4.137.1 > Feb 1 15:32:56 bz-perflab-6-vr Keepalived_vrrp[10486]: Netlink: > Received message overrun - (No buffer space available) > > This results in: > +----------+-------------+-----------------------------+---------+--- > -------+-------------+---------+----------------------------+ > > Instance | Interface | Addresses | Version | > > Priority | Master prio | State | Last Transition | > > +----------+-------------+-----------------------------+---------+--- > -------+-------------+---------+----------------------------+ > > 4137 | vrrp4.137.1 > > | 10.0.137.254 | 2 | 100 | 0 | > > Unknown | 2018-02-01 15:32:57.263674 | > > Is there any chance we can set a very short delay (few milliseconds) > between each interface creation ? > > Regards, > > On Wed, 2018-01-31 at 18:37 +0000, Damien Clabaut wrote: > > Hello Quentin, > > For the record, we compiled the beta branch this morning and tested > > Keepalived with 398 instances (half version 2, IPv4, the rest > > version 3, IPv6). > > For that we used the templates provided in tools/json_tracking on > > the beta branch. > > Everything is fine for now, though we do see Netlink Buffer Overrun > > errors once in a while. > > Regards, > > > > On Tue, 2018-01-16 at 15:18 +0000, Damien Clabaut wrote: > > > Hello Quentin and thank you for your answer, > > > I packaged the beta branch and started the deployment in our lab. > > > We will do extensive testing in the following weeks so we can put > > > it in > > > production once it is merged to Master on your side. > > > I tested the track_file function a while back, and it worked > > > fine, even > > > with hundreds of VRRP interfaces. > > > Regards, > > > > > > On Tue, 2018-01-16 at 10:05 +0000, Quentin Armitage wrote: > > > > On Mon, 2018-01-15 at 20:23 +0000, Damien Clabaut wrote: > > > > > Hello, > > > > > Do you know when the track_file function will leave beta to > > > > > neter > > > > > the > > > > > main Keepalived branch ? > > > > > Regards, > > > > > > > > > > > > > There is no plan to backport any of the functionality from the > > > > beta > > > > branch into the master branch. Rather, at some point, and I > > > > believe > > > > this is currently intended to be February, the beta branch will > > > > be > > > > merged into the master branch and hence become master. > > > > > > > > More feedback on testing the beta branch would be very welcome > > > > - > > > > reported at https://github.com/acassen/keepalived/issues/686 . > > > > So far > > > > only one person has provided any feedback. Positive feedback, > > > > as well > > > > as negative feedback would be most welcome; it's very helpful > > > > to know > > > > that if it is being successfully used, as well as any problems. > > > > > > > > Quentin Armitage > > > > ------------------------------------------------------------- > > > > ------ > > > > ----------- > > > > Check out the vibrant tech community on one of the world's most > > > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > > > _______________________________________________ > > > > Keepalived-devel mailing list > > > > [email protected] > > > > https://lists.sourceforge.net/lists/listinfo/keepalived-devel ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Keepalived-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/keepalived-devel