Краш FlashphonerWebCallServer

Develop-group

New Member
Добрый день!
Периодически (где-то раз в 2 недели после перезагрузки) сталкиваемся с крашем FlashphonerWebCallServer. Версию поддерживаем в актуальном состоянии (сейчас version: 5.2.937), но проблема не уходит.

В error логах при краше есть отсылка:

# Problematic frame:
# C [libopenh264_decoder.so+0x157e] slogger_log+0x77

--------------- T H R E A D ---------------

Current thread (0x00007f657cb3c500): JavaThread "VideoProcessor-b4c43612-9cc2-46b1-b32a-12df974dfcb5" [_thread_in_native, id=35550, stack(0x00007f6691efb000,0x00007f6691ffc000)]

Stack: [0x00007f6691efb000,0x00007f6691ffc000], sp=0x00007f6691ffa4c0, free space=1021k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libopenh264_decoder.so+0x157e] slogger_log+0x77
C [libopenh264_decoder.so+0x1293] _openh264_setExtraData+0x36
C [libjni_decoder.so+0xd495] OpenH264Decoder::setExtraDataBuffer(void*, int)+0x39
C [libjni_decoder.so+0xf908] Java_com_flashphoner_media_transcoder_ffmpeg_FFDecoderNative_setExtraData+0x6f
J 17687 com.flashphoner.media.transcoder.ffmpeg.FFDecoderNative.setExtraData(J[B)V (0 bytes) @ 0x00007f6a191cb51d [0x00007f6a191cb440+0x00000000000000dd]
J 17686 c1 com.flashphoner.media.transcoder.ffmpeg.FFDecoderNative.setExtraData([B)V (25 bytes) @ 0x00007f6a10f9c75c [0x00007f6a10f9c660+0x00000000000000fc]
J 16472 c1 com.flashphoner.media.C.K.Y()Z (268 bytes) @ 0x00007f6a1282d06c [0x00007f6a1282abe0+0x000000000000248c]
J 14332 c2 com.flashphoner.media.C.K.F(Lcom/flashphoner/media/D/E/E;)Lcom/flashphoner/media/transcoder/DecoderResult; (139 bytes) @ 0x00007f6a18e0915c [0x00007f6a18e087c0+0x000000000000099c]
J 11625 c2 com.flashphoner.media.C.K.A(Ljava/lang/Object;)V (694 bytes) @ 0x00007f6a18b80170 [0x00007f6a18b7fac0+0x00000000000006b0]
J 10860 c2 com.flashphoner.media.C.K.run()V (402 bytes) @ 0x00007f6a187b6df8 [0x00007f6a187b6aa0+0x0000000000000358]
J 19025 c2 java.lang.Thread.run()V java.base@12 (17 bytes) @ 0x00007f6a1846fc74 [0x00007f6a1846fc20+0x0000000000000054]
v ~StubRoutines::call_stub
V [libjvm.so+0x86f479] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*)+0x3c9
V [libjvm.so+0x86d40d] JavaCalls::call_virtual(JavaValue*, Handle, Klass*, Symbol*, Symbol*, Thread*)+0x1ed
V [libjvm.so+0x91a6dc] thread_entry(JavaThread*, Thread*)+0x6c
V [libjvm.so+0xdd4b9f] JavaThread::thread_main_inner()+0x22f
V [libjvm.so+0xdd1a1f] Thread::call_run()+0x16f
V [libjvm.so+0xbfe18e] thread_native_entry(Thread*)+0xee

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 17687 com.flashphoner.media.transcoder.ffmpeg.FFDecoderNative.setExtraData(J[B)V (0 bytes) @ 0x00007f6a191cb4a0 [0x00007f6a191cb440+0x0000000000000060]
J 17686 c1 com.flashphoner.media.transcoder.ffmpeg.FFDecoderNative.setExtraData([B)V (25 bytes) @ 0x00007f6a10f9c75c [0x00007f6a10f9c660+0x00000000000000fc]
J 16472 c1 com.flashphoner.media.C.K.Y()Z (268 bytes) @ 0x00007f6a1282d06c [0x00007f6a1282abe0+0x000000000000248c]
J 14332 c2 com.flashphoner.media.C.K.F(Lcom/flashphoner/media/D/E/E;)Lcom/flashphoner/media/transcoder/DecoderResult; (139 bytes) @ 0x00007f6a18e0915c [0x00007f6a18e087c0+0x000000000000099c]
J 11625 c2 com.flashphoner.media.C.K.A(Ljava/lang/Object;)V (694 bytes) @ 0x00007f6a18b80170 [0x00007f6a18b7fac0+0x00000000000006b0]
J 10860 c2 com.flashphoner.media.C.K.run()V (402 bytes) @ 0x00007f6a187b6df8 [0x00007f6a187b6aa0+0x0000000000000358]
J 19025 c2 java.lang.Thread.run()V java.base@12 (17 bytes) @ 0x00007f6a1846fc74 [0x00007f6a1846fc20+0x0000000000000054]
v ~StubRoutines::call_stub

siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x00007f65b5c00070

Register to memory mapping:

RAX=0x00007f65b5c00070 is an unknown value
RBX=0x00007f6764f0b588 is pointing into metadata
RCX=0x00007f65b5bfffc0 points into unknown readable memory: 00 00 00 01 67 42 c0 2a
RDX=0x00007f67cd5fdaa0: <offset 0x0000000000001aa0> in /usr/local/FlashphonerWebCallServer/lib/so/libopenh264_decoder.so at 0x00007f67cd5fc000
RSP=0x00007f6691ffa4c0 is pointing into the stack for thread: 0x00007f657cb3c500
RBP=0x00007f6691ffa5e0 is pointing into the stack for thread: 0x00007f657cb3c500
RSI=0x0 is NULL
RDI=0x00007f65b5c00070 is an unknown value
R8 =0x00007f67db37a7f0 points into unknown readable memory: 01 00 00 00 00 00 00 00
R9 =0x0000000000004e20 is an unknown value
R10=0x00007f67ce9b8899: Java_com_flashphoner_media_transcoder_ffmpeg_FFDecoderNative_setExtraData+0x0000000000000000 in /usr/local/FlashphonerWebCallServer-5.2.937-53d4fdff81d83dc15bcf2d3c7daec53684b68710/lib/so/libjni_decoder.so at 0x00007f67ce9a9000
R11=0x000000007fffffff is an unknown value
R12=0x00007f6764e43038 is pointing into metadata
R13=0x0000100137000558 is an oop: [B
{0x0000100137000558} - klass: {type array byte}
- length: 72
R14=0x00001001370003d8 is an oop: java.lang.StringBuilder
{0x00001001370003d8} - klass: 'java/lang/StringBuilder'
R15=0x00007f657cb3c500 is a thread

Report собран и отправлен на ваш support.
Помогите найти в чем проблема?
 
Last edited:

Max

Administrator
Staff member
Добрый день.
Создали тикет WCS-3166, о результатах отпишем здесь.
Пожалуйста, уточните, под какой нагрузкой и в каком именно случае происходит краш:
- сколько микшеров в этот момент?
- сколько потоков в одном микшере?
- ведется ли запись микшера (твики для записи в настройках есть, но в логах запись не видна, т.к. выводятся только ошибки, поэтому уточняем)?
- сколько подписчиков смотрят один микшер?
- каким кодеком публикуется входящий поток микшера (H264 или VP8)?
Это поможет нам воспроизвести проблему.
 

Max

Administrator
Staff member
Дополнительно рекомендуем установить настройку
Code:
decoder_priority=FF,OPENH264
В этом случае должна использоваться другая реализация декодера, возможно, она не будет крашиться.
 

Develop-group

New Member
Добрый день.
Создали тикет WCS-3166, о результатах отпишем здесь.
Пожалуйста, уточните, под какой нагрузкой и в каком именно случае происходит краш:
- сколько микшеров в этот момент?
50-60

- сколько потоков в одном микшере?
2

- ведется ли запись микшера (твики для записи в настройках есть, но в логах запись не видна, т.к. выводятся только ошибки, поэтому уточняем)?
Ведется запись 50% микшеров (25-30)

- сколько подписчиков смотрят один микшер?
2

- каким кодеком публикуется входящий поток микшера (H264 или VP8)?
H264

Это поможет нам воспроизвести проблему.
 

Max

Administrator
Staff member
- сколько микшеров в этот момент?
50-60
Посмотрите, пожалуйста, эту статью Сколько микшеров может быть на сервере?
Тесты на физических серверах показывают, что ядер CPU должно быть по крайней мере в 2.28 раз больше, чем одновременно работающих микшеров, то есть более 50 микшеров с двумя участниками каждый на Вашем сервере запускать не рекомендуется.
Также рекомендуем переключиться на другой декодер, как описано выше
 

Max

Administrator
Staff member
Добрый день.
Возможная причина краша при использовании OPENH264 декодера устранена в сборке 5.2.944, с Вашими настройками в нашем окружении краш не воспроизводится. Пожалуйста, обновите сервер и проверьте.
 
Top