当前位置: 首页 > news >正文

成都网站优化步骤wordpress5g够不够

成都网站优化步骤,wordpress5g够不够,专业的企业网站优化公司,专业网站制作团队专业网站制作团队最近编译了fs 1.10.10-dev也就是 master版本#xff08;2023年7月6日#xff09; 给几个客户升级了一下#xff0c;发现非常不稳定(每天都有几个通道卡在early状态)#xff0c;最近才有空来分析原因。 之前跑的是1.10.8 release 版本#xff0c;从来没出现过这个问题2023年7月6日 给几个客户升级了一下发现非常不稳定(每天都有几个通道卡在early状态)最近才有空来分析原因。 之前跑的是1.10.8 release 版本从来没出现过这个问题我把 1.10.8的代码和1.10.10-dev的代码整体对比了一下整体改变不大其中 switch_core_media_set_codec 函数的修改引擎我的警惕因为这个修改时直接修改了互斥锁 switch_core_session_lock_codec_write(session); switch_core_session_lock_codec_read(session); 的锁定范围。我查看了一下这个提交说明 2023年6月12日 这个提交给合并到到了master SHA-1: 645b610e7968594910dd2368c511fbc93c1373b7 Merge pull request #2109 from signalwire/switch_core_media_set_codec [Core] Fix possible deadlock in switch_core_media_set_codec() 晚上 我联系客户 看看有没有卡在early状态的通道刚好有一个把所有线程的调用堆栈 输出来, 还真是卡在 switch_core_media_set_codec 。 #0 0x00007f9dc597a54d in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x00007f9dc5975eb6 in _L_lock_941 () from /lib64/libpthread.so.0 #2 0x00007f9dc5975daf in pthread_mutex_lock () from /lib64/libpthread.so.0 #3 0x00007f9dc8687759 in fspr_thread_mutex_lock (mutexoptimized out) at locks/unix/thread_mutex.c:92 #4 0x00007f9dc850e895 in switch_mutex_lock (lockoptimized out) at src/switch_apr.c:301 #5 0x00007f9db9c9029c in sofia_receive_message (session0x7f9cf5b4a7c8, msg0x7f9d345ac4d0) at mod_sofia.c:1526 #6 0x00007f9dc853f80b in switch_core_session_perform_receive_message (sessionsessionentry0x7f9cf5b4a7c8, messagemessageentry0x7f9d345ac4d0, filefileentry0x7f9dc86a961d src/switch_core_io.c, funcfuncentry0x7f9dc86a9970 __func__.19414 switch_core_session_read_frame, linelineentry416) at src/switch_core_session.c:930 #7 0x00007f9dc854aa7e in switch_core_session_read_frame (sessionsessionentry0x7f9cf5b4a7c8, frameframeentry0x7f9d345ae568, flagsflagsentry0, stream_idstream_identry0) at src/switch_core_io.c:416 #8 0x00007f9dc8608251 in switch_ivr_sleep (session0x7f9cf5b4a7c8, ms100, syncoptimized out, args0x0) at src/switch_ivr.c:294 #9 0x00007f9daeb4dcc5 in ?? () from /ddt/fs/mod/mod_cti.so #10 0x00007f9dc8543b5b in switch_core_session_exec (session0x7f9cf5b4a7c8, application_interfaceapplication_interfaceentry0x19077a0, argargentry0x7f9d345aeb40 38981 2000) at src/switch_core_session.c:2964 #11 0x00007f9dc85441ef in switch_core_session_execute_application_get_flags (sessionoptimized out, app0x7f9db140b89b cti_wait_for_answer, arg0x7f9d345aeb40 38981 2000, flagsoptimized out) at src/switch_core_session.c:2824 #12 0x00007f9daeb8eb7e in ?? () from /ddt/fs/mod/mod_cti.so #13 0x00007f9daeb92619 in ?? () from /ddt/fs/mod/mod_cti.so #14 0x00007f9dc853c9c5 in switch_core_session_thread_pool_worker (thread0x7f9d45af47a0, objoptimized out) at src/switch_core_session.c:1790 #15 0x00007f9dc868d760 in dummy_worker (opaque0x7f9d45af47a0) at threadproc/unix/thread.c:151 #16 0x00007f9dc5973ea5 in start_thread () from /lib64/libpthread.so.0 #17 0x00007f9dc4fc7b0d in clone () from /lib64/libc.so.6 Thread 2 (Thread 0x7f9d2f76b700 (LWP 30595)):#0 0x00007f9dc597a54d in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x00007f9dc5975eb6 in _L_lock_941 () from /lib64/libpthread.so.0 #2 0x00007f9dc5975daf in pthread_mutex_lock () from /lib64/libpthread.so.0 #3 0x00007f9dc8687759 in fspr_thread_mutex_lock (mutexoptimized out) at locks/unix/thread_mutex.c:92 #4 0x00007f9dc850e895 in switch_mutex_lock (lockoptimized out) at src/switch_apr.c:301 #5 0x00007f9dc852c6ec in switch_core_session_lock_codec_read (sessionoptimized out) at src/switch_core_codec.c:74 #6 0x00007f9dc8561e7c in switch_core_media_set_codec (sessionsessionentry0x7f9cf5b4a7c8, forceforceentry0, codec_flags0) at src/switch_core_media.c:3608 #7 0x00007f9dc856763e in switch_core_media_activate_rtp (session0x7f9cf5b4a7c8) at src/switch_core_media.c:8565 #8 0x00007f9db9cf73de in sofia_media_activate_rtp (tech_pvttech_pvtentry0x7f9cf5b53ff8) at sofia_media.c:58 #9 0x00007f9db9cf745e in sofia_media_tech_media (tech_pvttech_pvtentry0x7f9cf5b53ff8, r_sdpoptimized out, typetypeentrySDP_TYPE_REQUEST) at sofia_media.c:189 #10 0x00007f9db9ccab5a in sofia_handle_sip_i_state (de0x7f9d983bcea0, tags0x7f9d882ae950, sip0x0, sofia_privateoptimized out, nh0x7f9da1db69b0, profile0x1ac35070, nua0x7f9d98040be0, phrase0x7f9d882aece6 Ringing, status183, session0x7f9cf5b4a7c8) at sofia.c:7683 #11 our_sofia_event_callback (eventnua_i_state, statusoptimized out, phrase0x7f9d882aece6 Ringing, nua0x7f9d98040be0, profile0x1ac35070, nh0x7f9da1db69b0, sofia_private0x7f9d1927a640, sip0x0, dedeentry0x7f9d983bcea0, tags0x7f9d882ae950) at sofia.c:1813 #12 0x00007f9db9ccea5b in sofia_process_dispatch_event (dep0x7f9d2f76a2c0) at sofia.c:2253 #13 0x00007f9db9c8ffc9 in sofia_receive_message (session0x7f9cf5b4a7c8, msg0x7f9d2f76aa20) at mod_sofia.c:1347 #14 0x00007f9dc853f6d5 in switch_core_session_perform_receive_message (sessionsessionentry0x7f9cf5b4a7c8, messagemessageentry0x7f9d2f76aa20, filefileentry0x7f9dc86c5e35 src/switch_ivr.c, funcfuncentry0x7f9dc86c6ed0 __func__.19070 switch_ivr_parse_signal_data, linelineentry893) at src/switch_core_session.c:853 #15 0x00007f9dc8604f9c in switch_ivr_parse_signal_data (sessionsessionentry0x7f9cf5b4a7c8, allallentrySWITCH_TRUE, only_session_threadonly_session_threadentrySWITCH_FALSE) at src/switch_ivr.c:893 #16 0x00007f9dc8604fec in switch_ivr_parse_all_signal_data (sessionsessionentry0x7f9cf5b4a7c8) at src/switch_ivr.c:906 #17 0x00007f9dc8605007 in switch_ivr_parse_all_messages (sessionsessionentry0x7f9cf5b4a7c8) at src/switch_ivr.c:852 #18 0x00007f9dc8607b4a in switch_ivr_parse_all_events (sessionsessionentry0x7f9cf5b4a7c8) at src/switch_ivr.c:925 #19 0x00007f9dc8548632 in switch_core_session_run (session0x7f9cf5b4a7c8) at src/switch_core_state_machine.c:710 #20 0x00007f9dc85412ae in switch_core_session_thread (threadoptimized out, obj0x7f9cf5b4a7c8) at src/switch_core_session.c:1726 #21 0x00007f9dc853c9c5 in switch_core_session_thread_pool_worker (thread0x7f9d38410920, objoptimized out) at src/switch_core_session.c:1790 #22 0x00007f9dc868d760 in dummy_worker (opaque0x7f9d38410920) at threadproc/unix/thread.c:151 #23 0x00007f9dc5973ea5 in start_thread () from /lib64/libpthread.so.0 #24 0x00007f9dc4fc7b0d in clone () from /lib64/libc.so.6 Thread 1 (Thread 0x7f9dc8db78c0 (LWP 11507)):接下来就是分析代码找出死锁原因了 Thread 2 (Thread 0x7f9d2f76b700 (LWP 30595)): 和线程 Thread 1 (Thread 0x7f9dc8db78c0 (LWP 11507)): 调用堆栈都有 sofia_receive_message 这个函数 具体代码 switch_mutex_lock(tech_pvt-sofia_mutex);if (switch_core_session_in_thread(session)) {de-session session;}sofia_process_dispatch_event(de);switch_mutex_unlock(tech_pvt-sofia_mutex);Thread 2 (Thread 0x7f9d2f76b700 (LWP 30595)): 卡在 switch_mutex_lock(tech_pvt-sofia_mutex);了 Thread 1 (Thread 0x7f9d2f76b700 (LWP 30595)) 成功获取了 tech_pvt-sofia_mutex) 锁定进入了sofia_process_dispatch_event。最后卡在switch_core_media_set_codec函数里面的switch_core_session_lock_codec_write(session)步骤。 通过看 Thread 2 (Thread 0x7f9d2f76b700 (LWP 30595)): 的调用堆栈 函数 switch_core_session_read_frame 里面调用了switch_core_session_perform_receive_message 对应代码 switch_mutex_lock(session-codec_read_mutex);...省略很多代码if (!switch_test_flag(session, SSF_WARN_TRANSCODE)) {switch_core_session_message_t msg { 0 };msg.message_id SWITCH_MESSAGE_INDICATE_TRANSCODING_NECESSARY;switch_core_session_receive_message(session, msg);switch_set_flag(session, SSF_WARN_TRANSCODE);} switch_mutex_lock(session-codec_read_mutex); 这个锁定和 switch_core_session_lock_codec_write(session) 对应的是一个锁定至此 这个死锁的bug我们就分析出来了。 Merge pull request #2109 from signalwire/switch_core_media_set_codec 这个提交为了解决一个bug,导致了一个更深的bug。 触发的原因是 cti模块有处理早期媒体如果外呼用的是 ignore_early_mediatrue 应该是不会触发这个的bug的。 解决这个bug的方法是 调用 switch_core_session_receive_message 之前先 解锁 switch_mutex_unlock(session-codec_read_mutex)。代码如下。 msg.message_id SWITCH_MESSAGE_INDICATE_TRANSCODING_NECESSARY;switch_mutex_unlock(session-codec_read_mutex);switch_core_session_receive_message(session, msg);switch_mutex_lock(session-codec_read_mutex);switch_set_flag(session, SSF_WARN_TRANSCODE);
http://www.dnsts.com.cn/news/98283.html

相关文章:

  • wordpress优秀网站哪些在线网站可以做系统进化树
  • 开发区全力做好网站建设万能搜索引擎
  • 建站之星模板下载网站求个网站或者app
  • 贵州专业网站建设公司免费网页制作工具下载
  • wordpress手机端网站模板下载黑马程序员项目库
  • 长春网站设计长春网络推广重庆seo代理价格
  • 项目名称企业网站优化包括哪三个层面
  • 福建祥盛建设有限公司网站企业网站优化官网
  • html5导航网站源码wordpress前台登陆界面
  • 美食网站设计论文weekly做网站
  • 中国煤炭建设协网站网站地图提交地址
  • spring mvc 做网站wordpress换鼠标样式
  • 荆门网站seoseo织梦网站建设步骤
  • 哪个网可以网站备案4s店网站建设
  • 网页建站专业公司班级网站建设的系统概述
  • 企业网站备案流程包子店vi设计
  • wordpress多个站点工商局官网登录
  • 网站建设中源码深圳燃气公众号
  • 网站运营工作计划最近出入上海最新规定
  • 株洲制作网站亚马逊做code的网站
  • 有哪些建筑设计网站中电科工程建设有限公司网站
  • 开个做网站要多少钱wordpress 与 微信怎么配合
  • 餐饮网站建设方案书网站维护的要求包括
  • dedecms网站开发环境文字生成图片在线使用
  • go语言 网站开发惠州技术支持网站建设
  • 网站建设与维护 电子版郑州餐饮加盟网站建设
  • 李志自己做网站wordpress首页文件夹
  • 网站二级导航制作有哪些网站是可以接单做任务的
  • 设计网站的功能有哪些久久建筑网如何获取积分
  • 奉贤专业网站建设织梦可以放两个网站