设为首页 收藏本站
查看: 742|回复: 0

[经验分享] weblogic server hang problem on AIX platform patch and root cause description

[复制链接]

尚未签到

发表于 2017-2-18 10:20:54 | 显示全部楼层 |阅读模式
WLS server hang on AIX

Patch :
@     PATCH REPOSITORY INFORMATION
@ ------------------------------------------
@ WLS Version | Patch ID |  Passcode
@ --------------+----------+----------------
@       9.2      |  T4DV    |  7C7PYV9B
@       9.2mp1   |  HZHQ    |  PTUYCCSI
@       9.2mp2   |  WJD2    |  GU1CW2AB   
@       9.2mp3   |  GNLT    |  8J9L6Q4Y
@       10.0     |  PMAJ    |  9UQ69LLT
@       10.0mp1  |  ITVL    |  K8RBHQQ2
@       10.3     |  9YT5    |  I1DB5QSV


Root cause description :

@ Hi Tushar,
@         As promised, here is a possible solution for the issue seen at
@ Mattel and elsewhere, that can be used in WLS. This builds on what you were
@ trying to do initially, and from whatever little testing I did, I saw that
@ the problem was getting resolved.
@        
@         To recap quickly from what we discussed yesterday, changing the
@ timeout value in poll to a configurable option may have a performance impact,
@  and a good value for it may be tough to find. You had described the option
@ of using a local "loopback" socket, which allows the poll() call to break
@ out. Even in that case, we could have a possible race condition between the
@ close() and poll(), and if the close() thread is starved for CPU for some
@ reason, we could end up having the same hang issue again.
@
@         I was first thinking in terms of using mutexes or conditional
@ signals, but they had the associated risk that if the thread owning the
@ mutex dies before releasing the mutex, we could get into a nasty situation.
@ So I did not pursue that line of thought further.
@
@         Instead, a simple & elegant solution has been proposed by a
@ colleague of mine, and I have implemented it as the attached testcase to
@ illustrate how these problems could be avoided. This assumes that the
@ loopback thread is being used for only the purpose of waking up from poll().
@
@         So, in poll(), we add an additional fd, the loopback socket, whose
@ sole purpose is to listen for notifcations from other threads before any
@ socket close is attempted. Before another thread tries to close, say, fd1,
@ it will write the numeric value of fd1 to the loopback socket.
@
@         When poll() wakes up (due to incoming data on loopback socket), it
@ will read the value of the fd being closed (fd1 in above example) and REMOVE
@ it from the poll() array. So, even if poll() is called before close() gets a
@ chance to execute, there will not be any race condition.
@
@         In the testcase, 10 sockets are created and provided to the native
@ "callPoll" method for waiting. The first one, on port 56789, is the loopback
@ socket. Then, in another thread, we close
@ these sockets one by one. As each socket is closed, the callPoll method
@ removes these sockets from the poll() fd array, ensuring that we do not
@ encounter the hang again.
@
@         It is important to first check for input on loopback, so that the
@ penalty associated with this change is restricted to only one "test". The
@ testcase I attached is still walking through the entire array, but I would
@ prefer checking the loopback fd as a special case, to minimize any kind of
@ impact on performance.
@
@         I hope this is useful. Please let me know if you have any questions.
@
@         The doMakeAIX.sh script should be executed after including Java 1.4
@ in the path and including the current directory in LIBPATH. Then you can run
@ "java PollChecker" to see the testcase in action.
@

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-343760-1-1.html 上篇帖子: MyEclipse + Weblogic 10的配置 下篇帖子: 解决BEA WebLogic Platform 8.14跨站点脚本编制漏洞问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表