BackEnd.Backend.AsyncPoll() 호출 시 발생하는 예외 관련 문의입니다.

  • 뒤끝 SDK 버전 : 5.5.2
  • 프로젝트명 : 성디펜스RPG-무사키우기
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 : IndexOutOfRangeException: Index was outside the bounds of the array.
    #C.#E.Poll () (at <3a85aa692dbf463cae222f2af68cc456>:0)
    BackEnd.Backend.AsyncPoll () (at <3a85aa692dbf463cae222f2af68cc456>:0)

Update에서 AsyncPoll()이 호출이 될 때, IndexOutOfRangeException이 발생합니다.
해당 Exception이 발생하는 경로와 문제가 무엇인지 파악이 힘들어서 문의드립니다.

안녕하세요 개발자님.

AsyncPoll의 경우, 어느 상황에서 발생하는지 조금만 더 상세히 알려주시면 감사하겠습니다.

  1. 특정 함수 호출 이후 한번 오류 발생
  2. 특정 시간부터 계속해서 오류가 발생
  3. 첫 초기화 시 발생
  4. 그 외

또한 AsyncPoll의 Stacktrace(상세 로그)또한 전체적으로 보여주시면 감사하겠습니다.

정확히 어느 상황에서 발생하는 파악이 안되어서 문의드렸습니다.
4번의 경우라고 생각됩니다.

현재 저희가 사용하고 있는 기능중에 AsyncPoll에 의해 콜백이 오는 기능은 길드 기능, 실시간 알림, 뒤끝 매치, 뒤끝챗 이 기능들중에 해당 Exception이 발생할 것이라고 예상됩니다.

혹시 뒤끝에서 AsyncPoll 사용 시 Stacktrace를 기록하는 기능이 따로 있는 것인가요? 아니면 저희가 따로 로그를 기록하여 보여드려야 하는 것인가요?

AsyncPoll의 경우, 비동기 함수(ex : Backend.BMember.GetUserInfo( callback => {} )로 호출한 함수들만 처리하기에,
길드 기능과 매치와 챗의 일부 기능에서만 사용될 것으로 추측됩니다.

또한 callback 문 안에서 예외 상황이 발생하면 해당 함수에서 에러가 발생되었다고 표시되는 것이 아닌, 해당 함수를 관리하는 Async의 Queue에서 표시되기에 AsyncPoll에서 발생되었다고 표시됩니다. (callback으로 등록된 함수의 로직중 배열의 최대를 넘어 발생하였을 경우, AsyncPoll의 에러에 표시)

Stacktrace는 뒤끝에서 제공하는 기능은 없어 개발자님이 제공해주시면 감사하겠으며, 이를 통해 특정 함수에서 호출되는 것에 발생하는지 혹은 AsyncPoll 내부에서 발생하는지 등을 조사해보려고 합니다.

뒤끝챗의 채널 리스트를 받아오면서 채널의 개수와 저희가 만든 채널 입장 버튼의 개수가 일치하지 않아서 발생한 것으로 확인되어 해결했습니다.
답변이 도움 되었습니다. 감사합니다 :slight_smile:

혹시 이런 상황이 발생했을 때, 어떤 비동기 함수를 호출하여 발생했는지 콜백 받을 수 있게 로직이 보완될 수 있을까요? 내부의 문제이긴 하나, 무슨 기능에서 발생했는지 유추라도 할 수 있다면 파악하기 더 쉬울 거 같아서 제안드립니다.
감사합니다 :slight_smile:

네, 제공해주신 내용은 담당 부서로 전달, 건의하여 제공할 수 있도록 노력하겠습니다.

감사합니다.