오늘도 출근하여 가볍게 DB 오류 내역을 돌리고,
각 서버 하드 잔량을 확인하던 와중에
개발서버 C드라이브 용량이 1메가가 남은걸 확인했다.
평소 50기가는 넉넉히 남아있던 놈이라 갑자기 용량이 확줄어들은게 이상한 참이라
이를 살펴보다보니 개발서버 로그파일이 20기가 가까이 불어난걸 확인했는데...........
이는 필시 누군가가 무한대로 동작하는 멍청한 스케줄러를 돌렸음이 틀림없기에
범인잡기에 나섰다.
동작오류내역을 보니 딱 두개의 스케줄러가 걸렸는데
하나는 그저 간단한 업데이트 스케줄러
나머지 하나는 매우 복잡해 보이는 프로시저였다.
본능적으로 복잡해 보이는 프로시저가 범인일 것 같았으나 일단 간단한 업데이트 부터 돌려보기로 했는데
.......................................... 간단한 업데이트 문이 영원히 돈다................
서둘러 트리거를 확인해보자, 업데이트 트리거가 작성되어 있고 히스토리내역을 남기는 문구가 있었다.
그리고 히스토리 테이블을 조회해보자................... 조회가 안된다.
Select 문을 무한대로 먹으면서 안도는걸 보면 데이터가 천만단위가 넘어간다는 이야기인데..........
그래서 테이블을 아예 날려버리고 다시 돌려봤다.
개발서버에 있는 데이터는 단지 5개.
정상적이라면 업데이트가 진행될때 히스토리에 5개가 써져야 한다.
업데이트를 한번 돌리자 5개가 40개로 기록된다.
다시 돌리자 40개가 320개가 된다.
다시 돌리자 320개가 1680개로
다시 돌리자 1680개가 ................
다시 돌리자 ...........
..........................
작성자를 보았다.
(구)개발막내...................
...................
히스토리 입력문을 봤다.
보기좋게 where 조건문이 빠져있었다.
..................................이를 수정하고 본서버로 가서 확인했다.
똑같았다.
다만, 사용자들이 데이터를 1건밖에 넣지 않아서
몇천만 몇억단위까지 가는 미친 사태는 발생하지 않았으나,
오늘 보지 않았다면 개발 C드라이브 하드가 꽉차서 곤란해지는 정도가 아닌.............
실DB가 폭파하는 상상만해도 무서운 상황이 벌어졌으리란 생각에
식은땀이 흘렀다.
...............야 핵지뢰를 깔고 도망가면 어떡해 ㅠ.ㅠ
그것도 시한폭탄으로 깔다니.............................;;;