Hello,

We have a customer reporting an issue with the "ibswitches" command part of the infiniband-diags package. If the switch description includes the string "base" anywhere, then the match operation in the awk section of ibwitches does not behave as expected and output is garbled.

Example :

[root@slcc09sw-ib2 tmp]# grep Switch ibnetdisc.out
Switch 36 "S-002128468ee1a0a0" # "SUN DCS 36P QDR basesw-ib3 10.242.48.23" enhanced port 0 lid 1 lmc 0 Switch 36 "S-0021286cc8a3a0a0" # "SUN DCS 46P QDR slcc09sw-ib3 10.242.48.24" enhanced port 0 lid 12 lmc 0
[root@slcc09sw-ib2 tmp]# ibswitches ibnetdisc.out
Switch : 0x002128468ee1a0a0 ports 36 "SUN DCS 36P QDR base port 0 lid 1 lmc 0 Switch : 0x0021286cc8a3a0a0 ports 36 "SUN DCS 46P QDR slcc09sw-ib3 10.242.48.24" enhanced port 0 lid 12 lmc 0

The 1 liner workaround we have is to replace in red :
echo "$text" | awk '
/^Switch/       {
                        l=$0
                        desc=substr(l, match(l, "#[ \t]*")+RLENGTH)
                        pi=match(desc, "port 0.*")
                        pinfo=substr(desc, pi)
                        desc=substr(desc, 1, pi-2)
type="base"
                        ti=match(desc, type)
...

With

echo "$text" | awk '
/^Switch/       {
                        l=$0
                        desc=substr(l, match(l, "#[ \t]*")+RLENGTH)
                        pi=match(desc, "port 0.*")
                        pinfo=substr(desc, pi)
                        desc=substr(desc, 1, pi-2)
type="\base\"
                        ti=match(desc, type)
...

Thanks for your help in reviewing this potential defect.
Apologies if posting to the wrong mailing list.

Best regards,
Pierre Orzechowski

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to