Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macsuck: status error: Can't call method "make_column_dirty" #8

Open
Disco402 opened this issue Feb 16, 2024 · 7 comments
Open

macsuck: status error: Can't call method "make_column_dirty" #8

Disco402 opened this issue Feb 16, 2024 · 7 comments

Comments

@Disco402
Copy link

Hello,

Getting this when trying to macsuck now

Unsure if a recent netdisco upgrade broke it as it was previously working Any ideas?

ACI Version 5.2(7g) - Was previously working with this
Netdisco version - 2.072003

[3668107] 2024-02-16 18:00:27  info App::Netdisco version 2.072003 loaded.
[3668107] 2024-02-16 18:00:27  info macsuck: [172.27.129.2] started at Fri Feb 16 18:00:27 2024
[3668107] 2024-02-16 18:00:27  info  [172.27.129.2] cisco aci macsuck - fetching data from  https://172.27.129.2:443/api
Redundant argument in sprintf at /home/netdisco/nd2-worker-plugin-aci/lib/App/NetdiscoX/Worker/Plugin/Macsuck/Nodes.pm line 64.
[3668107] 2024-02-16 18:00:30  info  [172.27.129.2] cisco aci macsuck - updating epg participation in device_port
[3668107] 2024-02-16 18:00:30  info macsuck: finished at Fri Feb 16 18:00:30 2024
[3668107] 2024-02-16 18:00:30  info macsuck: status error: Can't call method "make_column_dirty" on an undefined value at /home/netdisco/nd2-worker-plugin-aci/lib/App/NetdiscoX/Worker/Plugin/Macsuck/Nodes.pm line 24.
@rc9000
Copy link
Owner

rc9000 commented Feb 19, 2024

Hi! It seems like this error will happen if a fabric switch or port is returned by the API that is not discovered in device/device_port by the regular SNMP discovery.

Maybe you can add the line

info sprintf ' [%s] store_epg_custom_fields - updating fabric switch %s port %s',  $device->ip, $leaf_ip, $port;

in /home/netdisco/nd2-worker-plugin-aci/lib/App/NetdiscoX/Worker/Plugin/Macsuck/Nodes.pm line 22 and see if this switch/port shows up in the web interface? If not, just discovering it again might fix it. Otherwise please paste the output here and I'll check if I can somehow reproduce this.

@Disco402
Copy link
Author

Hi @rc9000,

See output below

netdisco-do macsuck -d 172.27.129.2

[464325] 2024-02-23 18:34:28  info App::Netdisco version 2.072003 loaded.
[464325] 2024-02-23 18:34:28  info macsuck: [172.27.129.2] started at Fri Feb 23 18:34:28 2024
[464325] 2024-02-23 18:34:28  info  [172.27.129.2] cisco aci macsuck - fetching data from  https://172.27.129.2:443/api
Redundant argument in sprintf at /home/netdisco/nd2-worker-plugin-aci/lib/App/NetdiscoX/Worker/Plugin/Macsuck/Nodes.pm line 64.
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] cisco aci macsuck - updating epg participation in device_port
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/29
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/43
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/34
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/48
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/36
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/28
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/47
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/40
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/35
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/46
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/44
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/38
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/33
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/39
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/42
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/45
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/37
[464325] 2024-02-23 18:34:31  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port ITO_INSIDE_PC_PG
[464325] 2024-02-23 18:34:31  info macsuck: finished at Fri Feb 23 18:34:31 2024
[464325] 2024-02-23 18:34:31  info macsuck: status error: Can't call method "make_column_dirty" on an undefined value at /home/netdisco/nd2-worker-plugin-aci/lib/App/NetdiscoX/Worker/Plugin/Macsuck/Nodes.pm line 24.

ITO_INSIDE_PC_PG is port-channel1 on switch 172.27.129.13... I assume this is because its trying to go to PcAggrIf_name rather than the actual port name like the others e.g. Ethernet1/37

macsuck output always stops after it hits ITO_INSIDE_PC_PG. It doesn't seem to be port-channel types specifically because on multiple runs I get other switches returning correctly

[466163] 2024-02-23 18:39:07  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.21 port port-channel1
[466163] 2024-02-23 18:39:07  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.34 port Ethernet1/40
[466163] 2024-02-23 18:39:07  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.34 port port-channel3
[466163] 2024-02-23 18:39:07  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.34 port Ethernet1/42
[466163] 2024-02-23 18:39:07  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.34 port port-channel2

@Disco402
Copy link
Author

Should be noted to that ITO_INSIDE_PC_PG is a single switch port-channel where as almost all other port-channels are VPCs

@rc9000 rc9000 closed this as completed in 8a5b68d Feb 27, 2024
@rc9000 rc9000 reopened this Feb 27, 2024
@rc9000
Copy link
Owner

rc9000 commented Feb 27, 2024

Thanks, apparently this will need some special handling for this type of port-channel. This is basically an old-school port-channel with two Eth interfaces bundled on the same switch that you have there? Or a single interface (if that's even possible)?

I've committed a hotfix for now that will just skip an interface like this, and at least do the rest. I'll see if I can find this case in our environment and try to make it work properly by also finding the EPG participation, but that might take a while.

@rc9000
Copy link
Owner

rc9000 commented Feb 27, 2024

Actually never mind about the port channel details, I found a couple in our environment. Thanks for reporting!

[412] 2024-02-27 08:55:59 error  [10.1.2.5] store_epg_custom_fields - unable to locate switch 10.1.2.46 port DMZ1-00036 in device_port
[412] 2024-02-27 08:56:08 error  [10.1.2.5] store_epg_custom_fields - unable to locate switch 10.1.2.45 port DMZ2-00036 in device_port

@Disco402
Copy link
Author

Thanks, apparently this will need some special handling for this type of port-channel. This is basically an old-school port-channel with two Eth interfaces bundled on the same switch that you have there? Or a single interface (if that's even possible)?

I've committed a hotfix for now that will just skip an interface like this, and at least do the rest. I'll see if I can find this case in our environment and try to make it work properly by also finding the EPG participation, but that might take a while.

Yeah its a "traditional" port-channel with 2 interfaces on 1 switch. I think its the only one in our environment. I'll test the hotfix today

@Disco402
Copy link
Author

Ignoring that port works great, thanks

[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port ITO_INSIDE_PC_PG
[3147713] 2024-02-27 09:44:57 error  [172.27.129.2] store_epg_custom_fields - unable to locate switch 172.27.129.13 port ITO_INSIDE_PC_PG in device_port
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/39
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/35
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/36
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/29
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/40
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/41
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/47
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/43
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/28
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/33
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.13 port Ethernet1/37
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/3
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/12
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/42
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/7
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/1
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/44
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/4
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/45
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port port-channel3
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port port-channel2
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/40
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/5
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/41
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/11
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/6
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/43
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.33 port Ethernet1/2
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.22 port Ethernet1/48
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.22 port Ethernet1/46
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.22 port Ethernet1/47
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.22 port port-channel1
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.21 port port-channel1
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.23 port Ethernet1/46
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.23 port Ethernet1/45
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.23 port Ethernet1/48
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] store_epg_custom_fields - updating fabric switch 172.27.129.23 port Ethernet1/47
[3147713] 2024-02-27 09:44:57  info  [172.27.129.2] cisco aci macsuck - updating node table
[3147713] 2024-02-27 09:45:04  info  [172.27.129.2] cisco aci macsuck - stored 2368 node entries
[3147713] 2024-02-27 09:45:05  info macsuck: finished at Tue Feb 27 09:45:05 2024
[3147713] 2024-02-27 09:45:05  info macsuck: status done: Ended macsuck for 172.27.129.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants