LOOP GUARD :
As you know, if you are using STP, one port is blocked in a topology like this because of preventing loops.But BPDU change continues. In this scenario X refers to blocked port. If cable between B-C is a fibre and just transmit or receive is down, block is removed. So that loop occurs ! So that loop guard should be opened on any trunk links.
SWITCH_A(conf)#spanning-tree loop guard default SWITCH_A(conf)#int Fa 0/1 SWITCH_A(conf-if)#spanning-tree guard loop
UDLD ( UNI DIRECTIONAL LINK DETECT ):
STP and loop guard are used together. If you are not using STP, you can use UDLD instead of it. If you are using etherchannel, it is more effective to use UDLD. If a link is down in etherchannel, loop guard disables all the link, but UDLD disables just the link that is down.
SWITCH_A(conf)#udld enable / aggressive SWITCH_A(conf)#udld reset (//Resets the err-disabled ports//)