Subject: | Re: endless loop in Net::Interface |
Date: | Thu, 22 Mar 2012 13:12:15 -0700 |
To: | Marc Lehmann <schmorp [...] schmorp.de> |
From: | michael [...] insulin-pumpers.org |
Hi Marc,
Yes, I'm the right person. Unfortunately at the moment I don't have
the resources to tackle this. There are a lot of improvements that
could and should be made to Net::Interface. Most of these require
access to computing platforms with their various libraries and
headers that I do not have. I have tried to recruit others with
access to these platforms to assist but so far have not had much
success. sigh.... I'll try and take a look at this problem in the
next few weeks or months. My workload is quite heavy right now and I
don't have much time for maintenance.
Please add this to the bug list at rt.cpan.org
Best regards,
Michael Robinton
Show quoted text
> Hi!
>
> I write to you because I couldn't find any better but eporting address
> in the Net::Interface manpage. Id you are the wrong person, it would
> be gerat if you could direct me to the corretc maintainer.
>
> In any case, one one of our customer's system, this results in an
> endless loop:
>
> perl -MNet::Interface -e 'Net::Interface->interfaces'
>
> specifically, it loops inside lx_gifaddrs_merge, because
> thisif->ifa_next apparently contains an endless loop:
>
> http://ue.tst.eu/35b9e4cf967c4a0116196f0a9583c179.txt
>
> specifically:
>
> while (this6 != NULL) {
> if (this6->ifa_name != NULL &&
> strncmp(thisif->ifa_name,this6->ifa_name,IFNAMSIZ) ==
> 0)
> lx_relink(this6,last6,&ifap6,thisif);
> last6 = this6;
> this6 = this6->ifa_next;
> }
>
> this seems to bounce between two this6 pts all the time - probably
> lx_relink changes the ordering of the list the code is walking.
>
> ip addr ls on that system shows (slightly anonymized):
>
> [root]# ip addr ls
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
> pfifo_fast qlen 100
> link/ether 00:30:48:8c:bb:7a brd ff:ff:ff:ff:ff:ff
> inet 22.66.174.100/24 brd 22.66.174.255 scope global eth0
> inet 22.66.190.6/24 scope global eth0
> inet 22.66.174.58/24 brd 22.66.174.255 scope global secondary
> eth0:10 inet 22.66.174.59/24 brd 22.66.174.255 scope global
> secondary eth0:11 inet 22.66.174.60/24 brd 22.66.174.255 scope
> global secondary eth0:12 inet 22.66.174.61/24 brd 22.66.174.255
> scope global secondary eth0:13 inet 22.66.174.62/24 brd
> 22.66.174.255 scope global secondary eth0:14 inet
> 22.66.174.63/24 brd 22.66.174.255 scope global secondary
> eth0:15 inet 22.66.174.64/24 brd 22.66.174.255 scope global
> secondary eth0:16 inet 22.66.174.65/24 brd 22.66.174.255 scope
> global secondary eth0:17 inet 22.66.174.66/24 brd 22.66.174.255
> scope global secondary eth0:18 inet 22.66.174.67/24 brd
> 22.66.174.255 scope global secondary eth0:19 inet
> 22.66.174.50/24 brd 22.66.174.255 scope global secondary eth0:2
> inet 22.66.174.68/24 brd 22.66.174.255 scope global secondary
> eth0:20 inet 22.66.174.69/24 brd 22.66.174.255 scope global
> secondary eth0:21 inet 22.66.174.70/24 brd 22.66.174.255 scope
> global secondary eth0:22 inet 22.66.174.71/24 brd 22.66.174.255
> scope global secondary eth0:23 inet 22.66.174.72/24 brd
> 22.66.174.255 scope global secondary eth0:24 inet
> 22.66.174.73/24 brd 22.66.174.255 scope global secondary
> eth0:25 inet 22.66.174.74/24 brd 22.66.174.255 scope global
> secondary eth0:26 inet 22.66.174.75/24 brd 22.66.174.255 scope
> global secondary eth0:27 inet 22.66.174.76/24 brd 22.66.174.255
> scope global secondary eth0:28 inet 22.66.174.77/24 brd
> 22.66.174.255 scope global secondary eth0:29 inet
> 22.66.174.51/24 brd 22.66.174.255 scope global secondary eth0:3
> inet 22.66.174.78/24 brd 22.66.174.255 scope global secondary
> eth0:30 inet 22.66.174.79/24 brd 22.66.174.255 scope global
> secondary eth0:31 inet 22.66.174.80/24 brd 22.66.174.255 scope
> global secondary eth0:32 inet 22.66.174.81/24 brd 22.66.174.255
> scope global secondary eth0:33 inet 22.66.174.82/24 brd
> 22.66.174.255 scope global secondary eth0:34 inet
> 22.66.174.83/24 brd 22.66.174.255 scope global secondary
> eth0:35 inet 22.66.174.84/24 brd 22.66.174.255 scope global
> secondary eth0:36 inet 22.66.174.85/24 brd 22.66.174.255 scope
> global secondary eth0:37 inet 22.66.174.86/24 brd 22.66.174.255
> scope global secondary eth0:38 inet 22.66.174.87/24 brd
> 22.66.174.255 scope global secondary eth0:39 inet
> 22.66.174.52/24 brd 22.66.174.255 scope global secondary eth0:4
> inet 22.66.174.88/24 brd 22.66.174.255 scope global secondary
> eth0:40 inet 22.66.174.89/24 brd 22.66.174.255 scope global
> secondary eth0:41 inet 22.66.174.90/24 brd 22.66.174.255 scope
> global secondary eth0:42 inet 22.66.174.91/24 brd 22.66.174.255
> scope global secondary eth0:43 inet 22.66.174.92/24 brd
> 22.66.174.255 scope global secondary eth0:44 inet
> 22.66.174.93/24 brd 22.66.174.255 scope global secondary
> eth0:45 inet 22.66.174.94/24 brd 22.66.174.255 scope global
> secondary eth0:46 inet 22.66.174.95/24 brd 22.66.174.255 scope
> global secondary eth0:47 inet 22.66.174.96/24 brd 22.66.174.255
> scope global secondary eth0:48 inet 22.66.174.97/24 brd
> 22.66.174.255 scope global secondary eth0:49 inet
> 22.66.174.53/24 brd 22.66.174.255 scope global secondary eth0:5
> inet 22.66.174.98/24 brd 22.66.174.255 scope global secondary
> eth0:50 inet 22.66.174.99/24 brd 22.66.174.255 scope global
> secondary eth0:51 inet 22.66.174.54/24 brd 22.66.174.255 scope
> global secondary eth0:6 inet 22.66.174.55/24 brd 22.66.174.255
> scope global secondary eth0:7 inet 22.66.174.56/24 brd
> 22.66.174.255 scope global secondary eth0:8 inet
> 22.66.174.57/24 brd 22.66.174.255 scope global secondary eth0:9
> inet 22.66.190.7/24 scope global secondary eth0 inet
> 22.66.190.8/24 scope global secondary eth0 inet 22.66.190.10/24
> scope global secondary eth0 inet 22.66.190.11/24 scope global
> secondary eth0 inet 22.66.190.12/24 scope global secondary eth0
> inet 22.66.190.13/24 scope global secondary eth0 inet
> 22.66.190.14/24 scope global secondary eth0 inet
> 22.66.190.15/24 scope global secondary eth0 inet
> 22.66.190.16/24 scope global secondary eth0 inet
> 22.66.190.17/24 scope global secondary eth0 inet
> 22.66.190.18/24 scope global secondary eth0 inet
> 22.66.190.19/24 scope global secondary eth0 inet
> 22.66.190.20/24 scope global secondary eth0 inet
> 22.66.190.21/24 scope global secondary eth0 inet
> 22.66.190.22/24 scope global secondary eth0 inet
> 22.66.190.23/24 scope global secondary eth0 inet
> 22.66.190.24/24 scope global secondary eth0 inet
> 22.66.190.25/24 scope global secondary eth0 inet
> 22.66.190.26/24 scope global secondary eth0 inet
> 22.66.190.27/24 scope global secondary eth0 inet
> 22.66.190.28/24 scope global secondary eth0 inet
> 22.66.190.29/24 scope global secondary eth0 inet
> 22.66.190.30/24 scope global secondary eth0 inet
> 22.66.190.31/24 scope global secondary eth0 inet
> 22.66.190.32/24 scope global secondary eth0 inet
> 22.66.190.33/24 scope global secondary eth0 inet
> 22.66.190.34/24 scope global secondary eth0 inet
> 22.66.190.35/24 scope global secondary eth0 inet
> 22.66.190.36/24 scope global secondary eth0 inet
> 22.66.190.37/24 scope global secondary eth0 inet
> 22.66.190.38/24 scope global secondary eth0 inet
> 22.66.190.39/24 scope global secondary eth0 inet
> 22.66.190.40/24 scope global secondary eth0 inet
> 22.66.190.41/24 scope global secondary eth0 inet
> 22.66.190.42/24 scope global secondary eth0 inet
> 22.66.190.43/24 scope global secondary eth0 inet
> 22.66.190.44/24 scope global secondary eth0 inet
> 22.66.190.45/24 scope global secondary eth0 inet
> 22.66.190.46/24 scope global secondary eth0 inet
> 22.66.190.47/24 scope global secondary eth0 inet
> 22.66.190.48/24 scope global secondary eth0 inet
> 22.66.190.49/24 scope global secondary eth0 inet
> 22.66.190.50/24 scope global secondary eth0 inet
> 22.66.190.51/24 scope global secondary eth0 inet
> 22.66.190.52/24 scope global secondary eth0 inet
> 22.66.190.53/24 scope global secondary eth0 inet
> 22.66.190.54/24 scope global secondary eth0 inet
> 22.66.190.55/24 scope global secondary eth0 inet
> 22.66.190.56/24 scope global secondary eth0 inet
> 22.66.190.57/24 scope global secondary eth0 inet
> 22.66.190.58/24 scope global secondary eth0 inet
> 22.66.190.59/24 scope global secondary eth0 inet
> 22.66.190.60/24 scope global secondary eth0 inet
> 22.66.190.61/24 scope global secondary eth0 inet
> 22.66.190.62/24 scope global secondary eth0 inet
> 22.66.190.63/24 scope global secondary eth0 inet
> 22.66.190.64/24 scope global secondary eth0 inet
> 22.66.190.65/24 scope global secondary eth0 inet 22.66.190.9/24
> scope global secondary eth0 inet6 fe80::230:48ff:fe8c:bb7a/64
> scope link
> valid_lft forever preferred_lft forever
> 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
> link/ether 00:30:48:8c:bb:7b brd ff:ff:ff:ff:ff:ff
>
> [root]# ip -6 addr ls
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 100
> inet6 fe80::230:48ff:fe8c:bb7a/64 scope link
> valid_lft forever preferred_lft forever
>
> --
> The choice of a Deliantra, the free code+content
> MORPG
> -----==- _GNU_ http://www.deliantra.net
> ----==-- _ generation
> ---==---(_)__ __ ____ __ Marc Lehmann
> --==---/ / _ \/ // /\ \/ / schmorp@schmorp.de
> -=====/_/_//_/\_,_/ /_/\_\