|
다름이 아니라 하나의 서비스를 만들어 1달정도 문제없이 모니터링 중이었는데...
어느순간부터 Server down [signal : 11] 이라는 메시지가 뜨면서 서비스가 죽어버립니다.
해당 서비스의 로그를 살펴본 후 문제가 되는 곳을 찾기위해서 print를 했더니 다음 구문에서 문제가 발생하더군요.
구조체의 값은 이미 채워진 후 while(1) 을 돌면서 호출하며 nextTime이 되면 다시 호출을 합니다.
time_t를 이용하여 현재 시간을 구하고 interval을 주어 현재시간(curTime)+interval = 차기시간(nextTime) 으로 합니다.
for(vector<struct viConfigInfo_t *>::iterator it=mConfigList.begin(); it!=mConfigList.end(); ++it)
{
viTargetInfo_t target;
(*it)->CopyData(target);
}
while(1)을 사용하여 무한루프를 돌면서 위의 코드를 호출하게 되는데요...
첫번째 루프를 돌면서 호출했을때는 제대로 작동을 합니다만 정해진 시간이 지난 후 두번째 루프를 돌때부터
Server down [signal : 11]이 발생합니다.
구조체가 깨어지는것 같은데...
mConfigList의 주소값과 사이즈는 첫번째 루프때와 두번째 루프때 모두 같습니다.
mConfigList address = [6b068], size = [1] ========> 최초 주소값과 사이즈
mConfigList address = [6b068], size = [1] ========> 두번째 주소값과 사이즈
대체 어떤 문제가 있길래 최초 호출은 제대로 실행이 되고 두번째 호출은 Signal : 11로 down 될까요?
|