You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Occasionally, some calls can not be released. I tracked the logs with the code and found this issue. Like recording_thread seems to be waiting for a signal so much that it can't be unlocked when record application is executed on hangup at the same time.
My vesion is based on 1.10.9. But I added some logs so that the number of lines of code wasn't exactly the same as the standard version.
I compared the code for 1.10.12 and found no changes in recording_thread. I don't know why the code doesn't call "switch_thread_cond_wait" before making a judgment on whether the session is valid or not.
Here's some useful output information by "pstack":
Thread 5 (Thread 0x7f1d10e35700 (LWP 61196)):
#0 0x00007f1d92e7539e in pthread_rwlock_wrlock () from /lib64/libpthread.so.0
#1 0x00007f1d95fa9c89 in fspr_thread_rwlock_wrlock (rwlock=) at locks/unix/thread_rwlock.c:97 #2 0x00007f1d95c65645 in switch_thread_rwlock_wrlock (rwlock=) at src/switch_apr.c:253 #3 0x00007f1d95ca3dbc in switch_core_session_write_lock (session=) at src/switch_core_rwlock.c:156 #4 0x00007f1d95c98683 in switch_core_session_thread (thread=, obj=) at src/switch_core_session.c:1747 #5 0x00007f1d95c93d5a in switch_core_session_thread_pool_worker (thread=0x7f1bc4030860, obj=) at src/switch_core_session.c:1792 #6 0x00007f1d95faff80 in dummy_worker (opaque=0x7f1bc4030860) at threadproc/unix/thread.c:151 #7 0x00007f1d92e71ea5 in start_thread () from /lib64/libpthread.so.0 #8 0x00007f1d9241a8dd in clone () from /lib64/libc.so.6
Thread 4 (Thread 0x7f1d110d4700 (LWP 80516)):
#0 0x00007f1d92e7539e in pthread_rwlock_wrlock () from /lib64/libpthread.so.0
#1 0x00007f1d95fa9c89 in fspr_thread_rwlock_wrlock (rwlock=) at locks/unix/thread_rwlock.c:97 #2 0x00007f1d95c65645 in switch_thread_rwlock_wrlock (rwlock=) at src/switch_apr.c:253 #3 0x00007f1d95ca3dbc in switch_core_session_write_lock (session=) at src/switch_core_rwlock.c:156 #4 0x00007f1d95c98683 in switch_core_session_thread (thread=, obj=) at src/switch_core_session.c:1747 #5 0x00007f1d95c93d5a in switch_core_session_thread_pool_worker (thread=0x7f1c1002c3e0, obj=) at src/switch_core_session.c:1792 #6 0x00007f1d95faff80 in dummy_worker (opaque=0x7f1c1002c3e0) at threadproc/unix/thread.c:151 #7 0x00007f1d92e71ea5 in start_thread () from /lib64/libpthread.so.0 #8 0x00007f1d9241a8dd in clone () from /lib64/libc.so.6
Thread 3 (Thread 0x7f1d109eb700 (LWP 81381)):
#0 0x00007f1d92e75a35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007f1d95d42e12 in recording_thread (thread=, obj=) at src/switch_ivr_async.c:1329 #2 0x00007f1d95faff80 in dummy_worker (opaque=0x7f1c640bb9f0) at threadproc/unix/thread.c:151 #3 0x00007f1d92e71ea5 in start_thread () from /lib64/libpthread.so.0 #4 0x00007f1d9241a8dd in clone () from /lib64/libc.so.6
Thread 2 (Thread 0x7f1bc9ad3700 (LWP 165508)):
#0 0x00007f1d92e75a35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007f1d95d42e12 in recording_thread (thread=, obj=) at src/switch_ivr_async.c:1329 #2 0x00007f1d95faff80 in dummy_worker (opaque=0x7f1cd01eb590) at threadproc/unix/thread.c:151 #3 0x00007f1d92e71ea5 in start_thread () from /lib64/libpthread.so.0 #4 0x00007f1d9241a8dd in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f1d9649f780 (LWP 74493)):
#0 0x00007f1d924119a3 in select () from /lib64/libc.so.6
#1 0x00007f1d95fb15c5 in fspr_sleep (t=) at time/unix/time.c:246 #2 0x00007f1d95ca69d2 in switch_core_runtime_loop (bg=bg@entry=1) at src/switch_core.c:1201 #3 0x0000000000402f48 in main (argc=, argv=) at src/switch.c:1228
The text was updated successfully, but these errors were encountered:
Occasionally, some calls can not be released. I tracked the logs with the code and found this issue. Like recording_thread seems to be waiting for a signal so much that it can't be unlocked when record application is executed on hangup at the same time.
My vesion is based on 1.10.9. But I added some logs so that the number of lines of code wasn't exactly the same as the standard version.
I compared the code for 1.10.12 and found no changes in recording_thread. I don't know why the code doesn't call "switch_thread_cond_wait" before making a judgment on whether the session is valid or not.
Here's some useful output information by "pstack":
Thread 5 (Thread 0x7f1d10e35700 (LWP 61196)):
#0 0x00007f1d92e7539e in pthread_rwlock_wrlock () from /lib64/libpthread.so.0
#1 0x00007f1d95fa9c89 in fspr_thread_rwlock_wrlock (rwlock=) at locks/unix/thread_rwlock.c:97
#2 0x00007f1d95c65645 in switch_thread_rwlock_wrlock (rwlock=) at src/switch_apr.c:253
#3 0x00007f1d95ca3dbc in switch_core_session_write_lock (session=) at src/switch_core_rwlock.c:156
#4 0x00007f1d95c98683 in switch_core_session_thread (thread=, obj=) at src/switch_core_session.c:1747
#5 0x00007f1d95c93d5a in switch_core_session_thread_pool_worker (thread=0x7f1bc4030860, obj=) at src/switch_core_session.c:1792
#6 0x00007f1d95faff80 in dummy_worker (opaque=0x7f1bc4030860) at threadproc/unix/thread.c:151
#7 0x00007f1d92e71ea5 in start_thread () from /lib64/libpthread.so.0
#8 0x00007f1d9241a8dd in clone () from /lib64/libc.so.6
Thread 4 (Thread 0x7f1d110d4700 (LWP 80516)):
#0 0x00007f1d92e7539e in pthread_rwlock_wrlock () from /lib64/libpthread.so.0
#1 0x00007f1d95fa9c89 in fspr_thread_rwlock_wrlock (rwlock=) at locks/unix/thread_rwlock.c:97
#2 0x00007f1d95c65645 in switch_thread_rwlock_wrlock (rwlock=) at src/switch_apr.c:253
#3 0x00007f1d95ca3dbc in switch_core_session_write_lock (session=) at src/switch_core_rwlock.c:156
#4 0x00007f1d95c98683 in switch_core_session_thread (thread=, obj=) at src/switch_core_session.c:1747
#5 0x00007f1d95c93d5a in switch_core_session_thread_pool_worker (thread=0x7f1c1002c3e0, obj=) at src/switch_core_session.c:1792
#6 0x00007f1d95faff80 in dummy_worker (opaque=0x7f1c1002c3e0) at threadproc/unix/thread.c:151
#7 0x00007f1d92e71ea5 in start_thread () from /lib64/libpthread.so.0
#8 0x00007f1d9241a8dd in clone () from /lib64/libc.so.6
Thread 3 (Thread 0x7f1d109eb700 (LWP 81381)):
#0 0x00007f1d92e75a35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007f1d95d42e12 in recording_thread (thread=, obj=) at src/switch_ivr_async.c:1329
#2 0x00007f1d95faff80 in dummy_worker (opaque=0x7f1c640bb9f0) at threadproc/unix/thread.c:151
#3 0x00007f1d92e71ea5 in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1d9241a8dd in clone () from /lib64/libc.so.6
Thread 2 (Thread 0x7f1bc9ad3700 (LWP 165508)):
#0 0x00007f1d92e75a35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007f1d95d42e12 in recording_thread (thread=, obj=) at src/switch_ivr_async.c:1329
#2 0x00007f1d95faff80 in dummy_worker (opaque=0x7f1cd01eb590) at threadproc/unix/thread.c:151
#3 0x00007f1d92e71ea5 in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1d9241a8dd in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f1d9649f780 (LWP 74493)):
#0 0x00007f1d924119a3 in select () from /lib64/libc.so.6
#1 0x00007f1d95fb15c5 in fspr_sleep (t=) at time/unix/time.c:246
#2 0x00007f1d95ca69d2 in switch_core_runtime_loop (bg=bg@entry=1) at src/switch_core.c:1201
#3 0x0000000000402f48 in main (argc=, argv=) at src/switch.c:1228
The text was updated successfully, but these errors were encountered: