FreeSWITCH ESL Client内存溢出

Linphone 1.x版本还不支持SUBSCRIBE/NOTIFY,所以也无法知道好友的状态,不得以做了一个代理,客户端每隔一段时间通过代理去freeswitch查询状态,代理用freeswitch ESL Client类连接freeswitch,但是代理运行一段时间之后就会内存溢出,然后崩溃。

2013-04-07 11:16:09,378 WARN [org.apache.mina.filter.logging.LoggingFilter] (LoggingFilter.java:123) – EXCEPTION :
java.lang.OutOfMemoryError: Direct buffer memory
at java.nio.Bits.reserveMemory(Bits.java:633)
at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:95)
at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:288)
at org.jboss.netty.channel.socket.nio.SocketSendBufferPool$Preallocation.<init>(SocketSendBufferPool.java:156)
at org.jboss.netty.channel.socket.nio.SocketSendBufferPool.<init>(SocketSendBufferPool.java:42)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.<init>(AbstractNioWorker.java:44)
at org.jboss.netty.channel.socket.nio.NioWorker.<init>(NioWorker.java:45)
at org.jboss.netty.channel.socket.nio.NioWorkerPool.createWorker(NioWorkerPool.java:45)
at org.jboss.netty.channel.socket.nio.NioWorkerPool.createWorker(NioWorkerPool.java:28)
at org.jboss.netty.channel.socket.nio.AbstractNioWorkerPool.newWorker(AbstractNioWorkerPool.java:99)
at org.jboss.netty.channel.socket.nio.AbstractNioWorkerPool.init(AbstractNioWorkerPool.java:69)
at org.jboss.netty.channel.socket.nio.NioWorkerPool.<init>(NioWorkerPool.java:39)
at org.jboss.netty.channel.socket.nio.NioWorkerPool.<init>(NioWorkerPool.java:33)
at org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory.<init>(NioClientSocketChannelFactory.java:152)
at org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory.<init>(NioClientSocketChannelFactory.java:117)
at org.freeswitch.esl.client.inbound.Client.connect(Client.java:113)

本来以为是程序里头什么地方资源没释放,后来查了一下,倒还真不是那么回事儿。

具体可以看看:Netty内存泄露XSocket内存泄漏问题深度分析,第一个讲的是现象,第二个更深入一些,说问题在于DirectByteBuffer。

不过第二个实施起来有点难度,而且也不能完全解决问题;而org.freeswitch.esl.client.inbound.Client里头用的NioClientSocketChannelFactory类作为一个工厂类确实没有必要每次都new,做成静态的即可。

于是改代码,然后重新编译。基本就是git和maven,具体可以参考:http://wiki.freeswitch.org/wiki/Java_ESL_Client

MSN可以放弃了

最近MSN超级难登录,经常看见它不停的在哪儿登录,掉线又登录,有时候可能有大半天都登录不上,还时不时的丢消息,忽然想起来似乎哪儿看到新闻说除大陆以外MSN都停止服务了,再想想似乎skype上次自动升级之后界面也有了些变化,于是退出skype一看,果然有了用Microsoft account登录的选项,登录之后再绑定一下skype的帐号就可以了。

skype要用官网的版本,不要用tom版。

centos安装git

上次虚拟主机上没有yum,所以git是直接源代码编译安装的,略显麻烦;这次虚拟机上用yum install git居然找不到package。难不成非得要编译?按说git这样的东西应该包含进来才对啊。再仔细一找,原来是需要先添加EPEL(Extra Packages for Enterprise Linux) repository:

rpm -Uvh http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

然后就可以yum安装了。

具体参考:http://fedoraproject.org/wiki/EPEL/FAQ#How_can_I_install_the_packages_from_the_EPEL_software_repository.3F

小纸条:大宝打针

大宝一岁半,又得打预防针了,今天打的是麻疹风疹腮腺炎联合疫苗,月底还得打流脑,下月初打甲肝,可怜的孩子。麻疹风疹似乎还厉害点,这腮腺炎其实得了似乎也没啥大不了的,我小的时候好像也得过,后来爷爷拿锅铲去井沿上铲了点青苔煮煮给我喝了,然后就好了。不过大宝有一点很奇怪,打针的时候一次也没哭过,今天也一样,打完了我正好探头进去看,被大宝看见了,觉得可能有点疼有点委屈,嘴一扁有点想哭,我把他抱过来就没事儿了。后面的那个小孩三岁了,一直在那儿哭,还趁他爸不注意的时候想逃走。也许大宝还不是那么懂事儿吧。

在市民主页订的违章通知最后还是来了,100块在所难免。

打完针出来停在外面的自行车被风吹倒了,链条也掉了。结果俺迟到了。

羽绒服挂到了停在路边的一辆货柜车,划了一个大口子,羽毛飞了一地。200块五道口服装市场买的TNF终于要寿终正寝了,似乎也穿了快10年了。

尾号限行

没注意轮换了,再加上昨天已经上了一天班今天也没啥周一的感觉,直接就把车开出来了,而且收音机里说了两遍才反应过来,都已经快到建国门了,于是出去走辅路回家,不过路上摄像头实在太多了,估计100块在所难免了。下次得注意早点更新手机日历。

git clone libvpx失败

在虚拟主机上git clone linphone的时候失败了,底下libvpx模块clone有问题:
Submodule path ‘submodules/externals/libupnp’: checked out ‘d0b16d056e0f681a2bc6bd70859303b4bba521dc’
Cloning into ‘submodules/externals/libvpx’…
error: Failed connect to git.chromium.org:80; Connection refused while accessing http://git.chromium.org/webm/libvpx.git/info/refs
fatal: HTTP request failed
Clone of ‘http://git.chromium.org/webm/libvpx.git’ into submodule path ‘submodules/externals/libvpx’ failed
试了试telnet git.chromium.org 80可以,但是git就是不行。
看了看以前下载的记录,应该是可以的,而且从公司网络直接git clone http://git.chromium.org/webm/libvpx.git也可以。
看样子是人家把我的IP给盾了,不知道为啥,有点坑爹。

日坛公园

昨天趁天气好带大宝去日坛公园逛逛,晒晒太阳,顺便去吃个午饭再回家。大宝玩的很高兴,估计也玩累了,回家的时候在出租车上就自己睡着了。
看看走的是不是还挺有范儿的?
DSC_0242
中午吃的至爱,台湾菜,大宝吃米糊,顺便也吃些菜。给大宝面前放了一个空盘子和一双筷子,然后他就在哪儿拿筷子敲盘子表示不满,俺就往他盘子里放一粒花生米,然后凑过去张嘴说:给爸爸吃。大宝可能觉得花生米有点硬也没打算往自己嘴里送,直接抓起来就给我吃了,然后就夸夸他:大宝真乖。他就很高兴,乐此不疲,一颗又一颗的喂给我吃。小孩其实很好哄的,有点耐心就行。

摘草莓

昨天公司组织去小汤山摘草莓,谁也没想到清明节这事儿。十点半集合俺九点半不到出门,广播里说京藏堵,就从东直门上了机场高速,结果刚上去就走不动了。走了一段看看实在不行还是上了北三环,环路倒是好走,堵的都是出京方向的高速。看看京承也一样堵,最后还是去走京藏。出三环没到四环就堵上了,慢慢走啊走,过收费站的时候看见大屏幕说西关出口车多,看样子一直堵到昌平了。于是上五环走了一段京新高速,倒是很好走,就是太短,没一会儿就到了北清路,出口车多,北清路上也很堵,好不容易拐上了京藏辅路,也很不好走。路上看到不少骑车的,michelle说早知道让你自己骑车来好了,还省了油钱。我说开了两小时了,骑车我应该已经过了沙河了。最后11点45才到。还有一个同事住玉渊潭,9点出发,一直走京藏,12点才到。
大棚是公司长租的,已经吃过不少菜了,只不过是第一次来。草莓挺好,也不用农药,吃起来也放心。只不过去得晚了,住燕郊的不堵车,已经扫荡了一轮回去了。最后也没摘太多。
车好久没拉高速,开到100多就有点抖,看来下次保养得清清积碳了。
下次长假出门可要谨慎了,没想到这高速免费的威力居然这么大。

Stapler's Blog