Fever 오작동

by Yun

한 몇 주 동안 Fever를 사용하는 데 애를 먹었다. 아니 아직도 완벽하게 해결했다고 말할 수는 없다.

문제가 되는 증상은, iOS의 서드 파티 어플리케이션(구체적으로는 내가 사용하는 ReederSunstroke)을 통해 Fever Sever와 싱크하려고 요청을 보내면 내 호스팅 서버가 통째로 몇 분간 죽어버리는 현상이다. 서버로부터 싱크에 실패한 해당 서드파티 앱들은 나에게 Fever 로그인 정보를 다시 입력할 것을 요구하고, 필드를 채우고 로그인을 눌러도 서버가 죽어있는 동안에는 Login Failed 팝업만 뜰 뿐이다. 더불어 이 블로그 shindi.net 역시 몇 분 동안 같이 뻗어버린다. 23분 후에 다시 서버가 정상으로 돌아온다.

다만 Fluid를 통한 Fever 네이티브 인터페이스를 통해 접근할 경우에는 아무런 이상이 없다. 하나 더 예외적으로 맥 앱 ReadKit을 통해 Fever를 싱크할 경우 정상적으로 작동한다. 처음에는 모든 서드 파티 어플리케이션의 Sync가 이상 작동하는 것이라고 생각했는데, ReadKit은 정상적으로 작동하니 고개를 갸우뚱할 수밖에 없었다.

개발자 Shaun Inman에게 메일을 보내 증상을 설명했더니:

Hmm, I’ve not encountered this problem before. It sounds like the third-party apps are issuing so many requests to your sever that they are monopolizing its resources causing other parts to fail. This may be the result of poor API design on my part, poor API implementation on the third party developers’ part, or an overextended server that doesn’t have the resources to push all the data in your Fever installation (which would be unsurprising if your Fever is installed on a shared hosting server).

라고 답장이 오고 내가 구독하는 피드의 개수, Old item을 저장하는 기간(디폴트는 10주다), Saved Item 개수, 그리고 Fever에 접속할 때 SSL/https 사용 여부 등을 물어보았다.

나는 곧바로 답장을 보냈지만, 그 이후로 Shaun Inman은 회신하지 않았다.

Shaun의 대답과 질문을 통해 생각해봤을 때 내 300개가량의 피드가 너무 많은 트래픽을 유발해서 문제가 생기는 것이 아닌가하고 고민해보았다. 그래서 Old Item을 저장 기간 10주를 2주로 변경하였다. (저장기간을 변경한 시점이 대략 2월 20일 경이다.)

그리고 약 일주일 전부터 다시 정상적으로 Reeder와 Sunstroke가 작동하기 시작했다. 저장 기간을 10주에서 2주로 변경한다고 해서 남아있던 2주를 초과하는 저장분이 바로 폐기되는 것이 아니라 시간이 조금 걸리는 것 같다. (구체적으로 어느 시점에서 이전 저장분이 폐기되었는지 확인하지 못했지만, 처음에 10주를 2주로 변경했을 때에는 10주 전 아이템들이 그대로 남아있었다.)

저장 기간을 변경한 것이 문제를 해결한 트리거라고 가정하면 과도한 숫자의 아이템을 저장한 것이 이상 증상을 일으켰던 것이 맞는 것 같다.

여전히 마음에 들지 않는 것은:

  1. 10주까지 저장할 수 있다는 것이 구독 피드에 따른 트래픽에 따라 이상 작동할 수도 있는 것이라면 내가 서비스를 구입하기 전에 미리 밝혔어야 했다.
  2. 기존에는 읽은 아이템을 10주까지 저장 가능했던 것을 2주만 저장하게 되었다.
  3. 비록 Shaun Inman이 Fever의 우선순위를 낮게 매겼다고 해도 34주 넘게 메일에 대한 답장이 없는 것은 불쾌한 경험이다.
  4. 아직까지도 문제의 원인을 추측만 할 뿐, 명확한 트러블슈팅이 이루어진 것이 아니다. (물론 이는 내가 컴맹이라는 한계도 있다.)

Old Item을 2주만 저장하는 것은 당장 사용하는 데 아주 치명적인 문제는 아니다. 하지만 처음 서비스를 결정할 때 고려하던 이점을 하나 읽었다는 사실은 매우 찝찝하다.