ICE 超过最大连接数崩溃的问题
来源:互联网 发布:linux服务器安装vnc 编辑:程序博客网 时间:2024/05/18 02:17
最近做ice服务器的压力测试,发现ICE在文件描述符用尽的情况下会崩溃,查看源码发现时connectionFactory中的一段代码:
// // Now accept a new connection. // TransceiverPtr transceiver; try { transceiver = _acceptor->accept(); } catch(const SocketException& ex) { if(noMoreFds(ex.error)) { { Error out(_instance->initializationData().logger); out << "fatal error: can't accept more connections:\n" << ex << '\n' << _acceptor->toString(); } abort(); } // Ignore socket exceptions. return; } bool IceInternal::noMoreFds(int error) { #ifdef _WIN32 return error == WSAEMFILE; #else return error == EMFILE || error == ENFILE; #endif }
EMFILE The per-process limit of open file descriptors has been reached.
ENFILE The system limit on the total number of open files has been reached.
返回EMFILE或者ENFILE通常是由于linux进程默认的单进程可以打开的最大描述符过小导致的。通过修改ulimit -n 可以修改当前用户的最大描述符数。 也可以通过修改/etc/security/limits.conf/ 来修改所有用户的最大描述符数。
ICE3.4.2中当检测单noMoreFd时服务器崩溃,因为会调用abort函数。其实这是没必要的,返回客户端连接异常就足够了。所以需要的话可以注释掉abort重新使用源码编译。
0 0
- ICE 超过最大连接数崩溃的问题
- MYSQL超过最大连接数问题
- 修改Oracle最大连接数后的系统崩溃问题
- 解决使用Win2003远程桌面连接服务器的时候就报超过最大连接数错误问题
- db2超过最大连接数
- db2超过最大连接数
- db2超过最大连接数
- 如何解决MySQL超过最大连接数问题
- 打印机连接不上的解决办法:超过连接最大数
- 无法连接计算机,超过最大连接数
- 连接池已满,超过最大连接数 解决方案
- Win2003远程终端超过最大连接数的解决方法
- 解决服务器远程桌面超过最大连接数的办法!
- Win2003远程终端超过最大连接数的解决方法
- Win2003远程终端超过最大连接数的解决方法
- 远程桌面时出现超过最大允许连接数的解决办法
- xp打印机共享超过最大连接数的解决方法
- Windows2003 远程桌面超过最大连接数解决办法
- java jdbc如何使用
- TCP KeepAlive
- android查看源码的时候看不了
- JavaScript继承
- 【C++ Primer plus】【第七章】C++的编程模块
- ICE 超过最大连接数崩溃的问题
- 动态规划求解从矩阵左上角到右下角的最大受益问题
- 详解https是如何确保安全的
- CodeForces - 659A Round House (形成环)水
- 如何安装配置gradle及eclipse的结合
- ACM输入问题以及矩阵最大路径累加和
- 【Vuforia】Vuforia实现自动对焦
- [leetcode]84. Largest Rectangle in Histogram c语言
- STL学习笔记