[MSP-29] MCCS Agent 서비스 시작시에 mccsserver.exe가 CPU를 95%를 사용한다.

Subject
MCCS Agent 서비스 시작시에 mccsserver.exe가 CPU를 95%를 사용한다.

APPLIES TO:
MCCS Version : MCCS 4.1.0
O/S : Windows Server 2008 R2 STD x64
Apps :
Disk Type :




SYMPTOMS

# MCCS 를 재설치 하는 과정에서 기존 미러디스크 리소스가 있음에도 MCCS와 DK를 함께 삭제
# %mccs_home% 폴더는 남겨둔 상태에서 MCCS와 DK를 설치 함
# MCCS 웹 콘솔 접속시, 아래 메시지가 출력
{code}
15/05/14-10:17:42,692 | ror_DAgent | MirrorDiskAgent: 909 | ERROR | 240024:레지스트리에서 D: 볼륨에 대한 정보를 가져오지 못함
{code}
# 해당 로그를 보고, 미러 디스크 리소스를 삭제
# 삭제함과 동시에 mccsserver.exe 가 CPU를 95% 에서 오르락 내리락 함
{code}
15/05/14-10:20:18,177 | icyManager | .engine.db.Data: 421 | INFO | 20050:리소스 [Mirror_D]가 그룹 [test_RG]에서 삭제.
15/05/14-10:20:18,193 | IN-standby | .engine.db.Data: 255 | DEBUG | 10037:[WIN-standby]노드의 [test_RG]그룹의 AutoDisabled 속성값 변경 : false
15/05/14-10:20:18,739 | Thread-48 | lity.VolumeUtil: 326 | DEBUG | E: capacity: 5365559296
15/05/14-10:20:18,754 | Thread-48 | lity.VolumeUtil: 327 | DEBUG | E:free: 3102715904
15/05/14-10:20:18,754 | Thread-48 | lity.VolumeUtil: 326 | DEBUG | D: capacity: 5365559296
15/05/14-10:20:18,770 | Thread-48 | lity.VolumeUtil: 327 | DEBUG | D:free: 4423966720
15/05/14-10:20:18,786 | Thread-48 | lity.VolumeUtil: 326 | DEBUG | C: capacity: 42842714112
15/05/14-10:20:18,817 | Thread-48 | lity.VolumeUtil: 327 | DEBUG | C:free: 4214972416
15/05/14-10:20:18,848 | Thread-48 | lity.VolumeUtil: 326 | DEBUG | F: capacity: 6436155392
15/05/14-10:20:18,864 | Thread-48 | lity.VolumeUtil: 327 | DEBUG | F:free: 2077413376
15/05/14-10:20:19,098 | ror_DAgent | t.AbstractAgent: 561 | INFO | 20018:[Mirror_D] MirrorDisk 에이전트 시작
{code}
# trace.log에 아래의 메시지가 동시간에 수십개가 출력되는 것으로 보아, CPU 를 많이 사용하는 부분과 관련이 되어 있을 것 같은 추측이 듬
{code}
15/05/14-10:20:49,674 | ror_DAgent | t.AbstractAgent: 601 | TRACE | java.lang.NullPointerException
java.lang.NullPointerException
at com.mantech.mccs.engine.agent.AbstractAgent.censorCommand(AbstractAgent.java:713)
at com.mantech.mccs.engine.agent.AbstractAgent.processCommand(AbstractAgent.java:804)
at com.mantech.mccs.engine.agent.AbstractAgent.run(AbstractAgent.java:588)
at java.lang.Thread.run(Unknown Source)
{code}
"




CAUSE
긴 코드를 함수화 시키면서 무한루프 빠지는현상.



SOLUTION
Agent상태가 running일때만 OPEN 하도록 수정. running이 아닐시 return 하도록 수정.
ce, npe 예외 잡는 부분을 제거.
미러디스크 데코 부분 추가 resyncing 제대로 안나오는현상 같이 수정.

Fixed 4.1.1