커뮤니티토픽게시판

제가 이 문제를 처음 인지한건 1년이 조금 안된 시점이었던 것 같습니다. 우연히 게시판 스킨에서 댓글 작성폼에 로그인 한 제 계정의 프로필 이미지의 경로가 unknown으로 출력되지 못하는 것을 발견했습니다.

 

그때 이상하다는 글을 올렸지만 저희 서버의 캐시가 오락가락 하는지 이상하다는 생각만 했습니다. 이후 증상이 한번만 나타난 것으로 알고 잊고 있었습니다.

 

그런데 썸씽모듈이 배포되고 썸씽모듈의 활동내역 페이지를 볼 수 있는 서비스를 사이트에 제공하면서 동일한 증상을 쉽게 자주 볼수 있게 되었습니다.

 

특정한 시점에 썸씽모듈 페이지에 프로필이미지와 서명이 보이는 곳에 출력이 되지 않는 모습이 자주 목격이 되었습니다. 이때 회원정보열람 페이지로 가서 보면 동일하게 프로필이미지와 서명만 보이지 않는 것이 확인이 되었고 무언가 문제가 있는 것을 확실하게 인지하게 된 시점입니다.

 

이후 관련하여 질문을 올렸지만 딱히 원인을 찾지 못하다가 오늘 너무 궁금해서 질문을 올리면서 서드파티 자료를 한번 유심히 보다가 아주 심하게 의심이 되는 자료가 하나 있어 살펴보았는데 그 자료가 "최근 로그인 갱신 애드온" 입니다.

 

발생하는 패턴의 정황으로 보아 이 자료의 영향이 거의 확실한게...

이 자료의 기능은 자동로그인을 이용하는 회원의 last login 기록이 정확하지 않아 지정한 시간마다  이 시간을 갱신해주는 자료입니다.

 

보통 1시간 보다 짧게 세팅하지 않을 것 입니다. 그래서 이 현상이 발생할 확율이 관리자정도에 준하게 로그인을 오래 지속하며 활동하는 회원에게만 발생할 확율이 높습니다.

 

제 계정이 이 현상이 발생하고 제가 목격하게 되는 이유가 사이트 관리를 위해 로그인이 지속되니 이 애드온이 기능을 발휘하는 1시간의 동작타임에 제 계정이 영향을 받게 되는 것이었습니다.

 

애드온에 1시간 마다 갱신해 놓았다면 

로그인이 1시간 이상인 계정의 last login 시간을 업데이트 하고

$oMemberController = getController('member');
$oMemberController->_clearMemberCache($logged_info->member_srl);

 

이 코드가 적용되게 되는데 이때 프로필이미지,서명의 정보가 출력되지 않는 상태가 되는 것 같습니다.

 

일반회원이 잘 경험하지 못하는 이유는 1시간 이상 사이트에 체류할 확율이 적어 저 코드가 적용될 확율이 낮습니다.

그리고 저 코드가 작동해서 프로필이미지,서명이 안보이는 상황이라도 해당 정보를 보여주는 페이지를 보아야 인지가 가능하기 때문에 썸씽모듈 같은 것으로 자주 관련된 페이지를 열람하는 기회가 주어지지 않는다면 모르고 지낼 확율이 높습니다.

 

제 계정이 항상 저런 상태를 (1시간마다 약간의 시간동안 프로필이미,서명을 잃어버리는 상태... ) 유지했지만 썸씽모듈을 사이트에 적용하기 전까지 제가 인지하지 못한 이유가 현상을 확인할 만한 서비스가 없었기 때문입니다.

 

제가 애드온의 코드가 정확히 어떻게 문제를 일으키는지 기술적으로 설명하기는 어려우나 정황으로 보아 해당 애드온에 의해 위 코드가 적용된 회원의 계정은 아마도 최소한 제가 언급한 정보 프로필이미지,서명 2가지는 잠시 사용이 안되는 상태가 되는 것 같습니다.

 

이때 로그아웃 후 다시 로그인 하면 멤버모듈에의해 다시 장상화가 됩니다.


제가 알수 없는 타이밍에 목격하게 된 이유가 1시간마다 한번씩 이 상태가 잠시 유지되고 + 이 시점에서 썸씽모듈의 활동내역페이지를 열람 하는 순간이 겹쳐야 확인이 되기 때문이었다는게 이제 확인이 된 것 같습니다.

 

아마 갱신주기를 굉장히 짧게 설정하고 모니터링하면 아마도 쉽게 확인하실 수 있을 것 같습니다.

 

모니터링을 장시간 해 볼 생각이었는데 정황상 거의 원인이 맞는 듯 하여 정보공유차원에서 먼저 글을 작성했습니다.

이후 모니터링 결과 예상과 다르다면 댓글로 다시 알려드리겠습니다.

  • profile
    사이트 관리자는 이유불문하고 힘든것같아요... 고생하시네요
  • profile
    글쎄요. 프로필 이미지 주소 getProfileImage($member_srl) 는 캐시되지 않습니다. 즉, 캐시를 지운다고 해서 프로필 이미지 주소가 'unknown'으로 나올 수 없습니다. 서명도 마찬가지구요.

    제 생각에는 어떤 서드파티에서 프로필 이미지 변수인 $GLOBALS['__member_info__']['profile_image'][$member_srl] 를 조작하는 게 아닌가 싶습니다. 그 변수를 조작한다면 가능한 이야기거든요.
  • profile profile

    네. 일단 제작자분의 의견 알겠습니다. 저희는 해당 애드온을 사용하지 않으니 증상이 없어졌습니다.

    이 애드온 외 관련된 애드온은 없는 것으로 파악했습니다.

  • profile profile
    오늘 다시 테스트하면서 howlogin.addon.php 에서 사용되는 변수를 템플릿에서 제거하면서 정상화 된 것으로 추정됩니다. 말씀 하신대로 다른 자료에서 영향을 준 것 같습니다.
  • profile profile
    오늘 또 동일한 현상이 발생을 하네요. 비슷한 영향을 주는 자료가 또 있는지 찾아봐야겠네요. 흠....

서버에 요청 중입니다. 잠시만 기다려 주십시오...