Ошибка семафора вошла в sib-сервлет mobicents

У нас есть приложение, написанное против SIP-сервлетов Mobicents, в настоящее время оно использует v2.1.547, но я также протестировал v3.1.633 с таким же отмеченным поведением.

Наше приложение работает как B2BUA, у нас есть входящий SIP-вызов, и у нас также есть исходящий SIP-вызов, помещаемый в MRF, который выполняет VXML. Эти два SIP-вызова связаны с одним SipApplicationSession - это модель параллелизма, которую мы настроили.

Сценарий, который воссоздает эти 100% времени, выглядит следующим образом:

  • входящий звонок размещен в нашей заявке (звонок не ответил)
  • исходящий звонок помещен в MRF
  • зависание входящего вызова
  • приложение пытается завершить SipSession, связанный с исходящим вызовом

Я вижу это в журнале:

2015-12-17 09: 53: 56,771 WARN [SipApplicationSessionImpl] (MSS-Executor-Thread-14) Не удалось получить семафор сеанса java.util.concurrent.Semaphore@55fcc0cb[Permits = 0] в течение 30 секунд. Мы разблокируем семафор, несмотря ни на что, потому что время транзакции истекает. ЭТО МОЖЕТ ТАКЖЕ ИМЕТЬ РИСК КОНТРОЛЬНОГО КОНТРОЛЯ. Приложение Session is5faf5a3a-6a83-4f23-a30a-57d3eff3281c;SipController

Я готов поверить, что наше приложение может вызывать такое поведение, но пока не понимаю, как. Я бы подумал, что приобретение / выпуск Семафоров был внутренним для реализации, поэтому он должен гарантировать, что что-то не приобретает Семафор и никогда не выпускает его?

Буду признателен за любые указания о том, как добраться до сути, так как я сказал, что это на 100% повторяется, поэтому получение логов и т. Д. Все возможно.

1 ответ

Трудно сказать, не видя никаких журналов или кода приложения о том, как вы осуществляете доступ и планируете отправлять сообщения. Но если вы используете один и тот же SipApplicationSession в асинхронном режиме, вы можете использовать наш специфичный для поставщика асинхронный API-интерфейс https://mobicents.ci.cloudbees.com/job/MobicentsSipServlets-Release/lastSuccessfulBuild/artifact/documentation/jsr289-extensions-apidocs/org/mobicents/javax/servlet/sip/SipSessionsUtilExt.html, который будет гарантировать, что доступ к SipapplicationSessionSessionSessionSessionSlication проблемы параллелизма.

Другие вопросы по тегам