/
[MIP-582] 의존성 페이지 에서 DRBD 볼륨 까지 삭제시 exception 발생

[MIP-582] 의존성 페이지 에서 DRBD 볼륨 까지 삭제시 exception 발생

Subject
의존성 페이지 에서 DRBD 볼륨 까지 삭제시 exception 발생


APPLIES TO:
MCCS version: 3.6
OS: Linux
APPs:
Disk Type: mirror


SYMPTOMS
drbd리소스 2개 이상 구성후 해당 볼륨까지 MCCS의 의존성 페이지에서 삭제 했을떄 발생.


CAUSE
1. 리소스 삭제시 setParent(null)을 이용 삭제된 부모에의 참조를 끊는다( 동작은 바름)
2. 콘솔의 treeview에 표시된 객체들이 drbd볼륨 삭제시 계속 화면을 리프레쉬하는데, 이와중에 삭제된 모델이 전달될경우 ,삭제이전 객체로 표현되는 모델들의참조가 null이기 때문에 getGroup()에서 null pointer exception발생.
3. MCCS는 기본적으로 Queue를 사용해서 명령의 실행 순서를 보장하는 데 DK 및 DRBD 리소스의 경우네는 이벤트 드리븐 방식으로 변경되는 모든 값에 대하여 값을 콘솔에 전달함.
4. remoteSetVal()을 사용하는 경우 해당 리모트 노드에서도 변경 값을 콘솔에 전달함.
5.콘솔을 통해 리소스 삭제시 현재 열린 모든 editor 페이지들을 닫고, 정해진 순서에 따라 트리뷰에 선택된 리소스의 edit페이지를 active로써표현하는데, 타이밍에 따라 예전 모델을 사용하는 경우가 있음. (edit페이지, 액션, 콘텍스트 메뉴에 모두 영향)
6. 위 1,2,3,4 가 평상시에는 크게 문제되지 않고 자주 발생하지 않으나 DRBD 볼륨 삭제시 drbd볼륨 이벤트 리스너에서 전달되는 이벤트들에 의해 화면갱신중, 참조가 끊어진 객체가 전달되는것으로보임.

SOLUTION
1. 콘솔의 각페이지마다 자신을 refresh 해도 되는 페이지인지(삭제된 리소스 객체를 가진 페이지인 확인 후 표시)
2. 미러 볼륨 리스너에서 계속 해서 변경되던 변경값들에 대해서 agent를 통해 확인후(리소스 비활성화등....의 경우) 구분 해서 처리 하도록 지정.
3. 2)번과정을 setREmoteval을 통해 원격노드에서 넘어오는 값들도 처리 하도록 수정.
    이이슈에서는 1번만 수정.
    2,3,번은 DK 미러 리소스와 연관되므로
Fixed 3.6.0

Related content

[MIP-57] drbd.conf 파싱에러
[MIP-57] drbd.conf 파싱에러
More like this
[MIP-121] MCCS for Linux DRBD 위자드에서 새로운 미러 볼륨 생성시, --force 옵션을 사용해서 강제로 생성하고 있다
[MIP-121] MCCS for Linux DRBD 위자드에서 새로운 미러 볼륨 생성시, --force 옵션을 사용해서 강제로 생성하고 있다
More like this
[MIP-62] DRBD 리소스 위저드 - Internal Metadata 생성 가능 여부 확인
[MIP-62] DRBD 리소스 위저드 - Internal Metadata 생성 가능 여부 확인
More like this
[MIP-64] DRBD 위저드에서 미러 구성할 수 있는 디스크가 없을 때 소스서버 선택시 NullPointerException 발생
[MIP-64] DRBD 위저드에서 미러 구성할 수 있는 디스크가 없을 때 소스서버 선택시 NullPointerException 발생
More like this
[MIP-357] 그룹위자드에서 새로운 미러 볼륨(&리소스) 복수 구성시 하나만 만들어지는 현상.
[MIP-357] 그룹위자드에서 새로운 미러 볼륨(&리소스) 복수 구성시 하나만 만들어지는 현상.
More like this
[MIP-60] DRBD 리소스 생성 중 볼륨 리스트에 리소스로 구성되지 않은 네트워크 카드가 목록에 표시된다
[MIP-60] DRBD 리소스 생성 중 볼륨 리스트에 리소스로 구성되지 않은 네트워크 카드가 목록에 표시된다
More like this