Created attachment 1028651 [details] Patch to rancid.pm for using inet_pton from the Socket6 module Description of problem: The new Rancid version (3.2-1) that was released into EPEL-6 on May 20th, is not compatible with the Perl version (5.10) in EL-6. It tries to use the inet_pton() function from the Socket module, but that function does not exist in perl-5.10.1-136.el6_6.1. The result is the following log messages in /var/log/rancid: "inet_pton" is not exported by the Socket module Can't continue after import errors at /usr/share/perl5/vendor_perl/rancid/rancid.pm line 51 BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/rancid/rancid.pm line 51. Compilation failed in require at /usr/libexec/rancid/rancid line 61. BEGIN failed--compilation aborted at /usr/libexec/rancid/rancid line 61. and Rancid is (of course) then unable to actually fetch the configurations of our routers and switches. Version-Release number of selected component (if applicable): 3.2-1 How reproducible: Very. Steps to Reproduce: 1. Upgrade to rancid-3.2-1.el6 on a CentOS 6.6 machine 2. Wait for Rancid to run 3. Check the logs in /var/log/rancid Additional info: Changing rancid.pm to use inet_pton() from the Socket6 module seems to work. Attaching patch for the installed rancid.pm. I don't have time today to write a patch to apply to the source RPM (the spec file needs to require the perl-Socket6 package as well).
I should perhaps also note that rancid.pm declares that it is satisfied with Perl 5.10, via the line "use 5.010;". That seems to be an upstream bug; as it wants to use inet_pton(), it probably ought to require some higher version.
Looks like this functionality is under the Socket6 perl mod. use Socket6 qw(AF_INET6 inet_pton); use Socket qw(AF_INET); At least this gets past the import error, not sure if inet_pton will take AF_INET and an IPv4 address and do the sort, have to make a script and test.
> not sure if inet_pton will take AF_INET and an IPv4 address and do the sort Yes, it does work: $ perl -e 'use Socket qw(AF_INET); use Socket6 qw(AF_INET6 inet_pton); print inet_pton(AF_INET, "130.236.101.9");' | od -tx1 0000000 82 ec 65 09 0000004 I have been running with my patch (which does exactly that) since Friday without any problems. It just needs to be packaged into the RPM, and a dependency on perl-Socket6 added. (I don't think that change is needed for EL-7, by the way; that Perl version seems to have integrated inet_pton() into the normal Socket module.)
Hey guys. We've just been bitten by this bug. Our rancid is now broken completely. Could you please raise the severity of this to "urgent" and provide a fix ASAP? This has broken rancid installations everywhere!!
This problem has bitten me too. I've worked around it for the time being by downgrading back to rancid 3.1 and excluding it in yum.conf, but it would be nice to see a (relatively) prompt fix for this. Especially if the correct answer is as simple as Thomas Bellman's proposed patch. Also, probably a severity of "High" might be more appropriate, but ymmv.
Could the maintainer of this package please update us on the status? Our rancid is still failing, and this is a critical bug, because this updated has broken existing system. It needs more attention.
I'm currently working through this issue, please make sure that upstream knows about your issues. rancid There is a simple patch to get you working as stated in the first couple of posts. Seems like there are more issues than this with 3.2 so I'll be packing them together into a single update soon.
Alternatively, Anand, to get up and running, you can also just do a yum --downgrade rancid while waiting for David to get this fixed. Don't forget to put an exclude line in /etc/yum.conf for the time being as well.
rancid-3.1-4.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/rancid-3.1-4.el6
Package rancid-3.1-4.el6: * should fix your issue, * was pushed to the Fedora EPEL 6 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=epel-testing rancid-3.1-4.el6' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-EPEL-2015-6501/rancid-3.1-4.el6 then log in and leave karma (feedback).
I "updated" from 3.2-1 to 3.1-4, and it works for me now. Thank you!
I did post to the rancid mailing list about this issue. The response was long and reasonable. So it looks like this version of rancid will be the last for EPEL 6, just fyi for people who care.
The (still pending) update 3.1-4 works for me. Downgraded from 3.2-1. I've also added my karma for the package. Anand voted as well but anonymous (without karma). Could you please push the package through and make sure the 3.2-1 gets pulled from the mirrors?
rancid-3.1-4.el6 has been pushed to the Fedora EPEL 6 stable repository. If problems still persist, please make note of it in this bug report.
Hi all, I realize this is already "closed" but I wondered why the fairly simple workaround (patch) attached wasn't used to maintain EL6 compatibility instead of downgrading to 3.1. We would really like 3.2 with its integrated "git" capabilities in the EPEL repo rather than building our own or using some other (GhettoForge Plus) repo. For what its worth, I have tried the GhettoForge package on a test system and had to apply the patch attached here (they are working on that and rev'ing theirs to match the epoch change in EPEL), and it seems to work fine in EL6. We are not doing anything that requires IPv6 in our management VLAN though. Thanks in advance, Tommy