[MIP-385] 네트워크 카드 리소스에서 온라인중에 TestAddressList 를 제거 하면 log에 exception 이 발생함
Subject
네트워크 카드 리소스에서 온라인중에 TestAddressList 를 제거 하면 log에 exception 이 발생함.
APPLIES TO:
- PowerLinux & Cent OS
- MCCS 3.6.1
SYMPTOMS
1. 네트워크 카드 리소스 생성
2. 네트워크 카드 리소스 활성화 un-check
3. 네트워크 카드 리소스에 TestAddressList 에 2개의 IP Address 등록(10.10.0.199,10.10.0.4) => 여기서 10.10.0.199는 ping 안되는 ip임
4. 네트워크 카드 리소스 활성화 check => 정상 확인
5. 10.10.0.199와 10.10.0.4를 제거
6. mccs.log에 아래와 같은 exception 발생
{code}
13/07/23-16:52:36,288 | WARN | 30018:eth0_1 에이전트 예외 발생 : java.util.ConcurrentModificationException
{code}
7. exception.log 의 내용
{code}
13/07/23-16:52:36,288 | th0_1Agent | AbstractAgent.java : 599 | INFO | 16322048
java.util.ConcurrentModificationException
java.util.ConcurrentModificationException
at java.util.Vector$Itr.checkForComodification(Vector.java:1156)
at java.util.Vector$Itr.next(Vector.java:1133)
at com.mantech.mccs.factory.agent.nic.LinuxNicAgent.monitor(LinuxNicAgent.java:68)
at com.mantech.mccs.engine.agent.AbstractAgent.monitor(AbstractAgent.java:1257)
at com.mantech.mccs.engine.state.OnlineState.monitor(OnlineState.java:130)
at com.mantech.mccs.engine.state.StateMachine.doMonitor(StateMachine.java:552)
at com.mantech.mccs.engine.agent.AbstractAgent.processCommand(AbstractAgent.java:789)
at com.mantech.mccs.engine.agent.AbstractAgent.run(AbstractAgent.java:580)
at java.lang.Thread.run(Thread.java:781)
{code} "
CAUSE
최초 리소스가 활성화 하면서 refreshVariables() 안에서 TestAddressList의 값을 vector에 저장 하고
monitor 시 pingtest후 성공 여부를 통해 online , offline 판단 하는데.
vector에 저장되어있는 TestAddressList 값을 서로 다르게 인식하고있어서 exception 발생.
SOLUTION
hosts 에 등록된 TestAddress를 사용도중에 null로 변경 시 Test할 address가 없다고 판단하여 Online판정.