Skip to content

Calls not removed from memory even after completing #2313

@maria-farooq

Description

@maria-farooq

Problem
we recently found that RC was pilling up Call and MMSCallController actors in memory. we could see that Call was in stopping state and MMSCallController was in inactive state.

Root Cause

  • Calls were related to Recording here is what happens to them:
  • RC received BYE.
  • Call goes to Stopping state.
  • Call send msg to MMSCallController to clean MediaServer resources.
  • MMSCallController clean MS resources and give back proper response (INACTIVE).
  • Call moved to Completed state & DB was updated properly.
  • At VoiceInterpreter, RCML kicks in and sends Hangup to the call (please mind call was already completed)
  • upon receiving Hangup, Call moves from Completed to Stopping state AGAIN
  • and send msg to MMSCallController to clean MediaServer resources AGAIN. (please mind MMSCallControllerwas already INACTIVE)
  • MMSCallController has not defined action for this situation hence does nothing
  • Call keeps waiting for response from MMSCallController hence actor stays in memory forever.

Comments & Questions

  • If a Call is already Completed and we get a Hangup, should not we ignore it..
  • should a transition from Completed to Stopping state be allowed? wHy?

Reference:

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions