您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

由于Mac OS X上的'java.net.SocketException Invalid arguments',Tomcat启动失败

由于Mac OS X上的'java.net.SocketException Invalid arguments',Tomcat启动失败

您是否尝试过打开JNI调试-Xcheck:jni?有趣的是,Oracle文档使用PlainSocketImpl.socketAccept错误作为何时使用此错误的示例。

还要注意,错误7131399的含义是,由于Mac上的问题,JNIpoll()在大多数平台select()上使用,但在Mac OS poll()上使用。所以也许select()也坏了。再深入一点,如果“ ndfs大于FD_SETSIZE且未定义_DARWIN_UNLIMITED_SELECT,则select()将返回EINVAL。” FD_SETSIZE为1024,这听起来像您有大量的应用程序正在加载,因此也许所有这些都过滤掉了,一次只能等待1024个以上的FD。

为了获得更多的荣誉,请查看您的计算机上实际上是否已修复了相关的(据说已修复)Java错误错误报告具有指向测试用例的指针。

感谢Old Pro的回答,我确认select()FD_SETSIZE限制是原因。我为此限制找到了一个现有的错误

https://bugs.openjdk.java.net/browse/JDK-8021820

可以使用以下代码重现该问题:

差不多一年后,Java 7u60修复了此问题:

http://www.oracle.com/technetwork/java/javase/2col/7u60-bugfixes-2202029.html

我还发现Tomcat的WebappClassLoader在90秒后关闭文件句柄,这解释了为什么设置断点可以防止此问题发生。

java 2022/1/1 18:13:49 有898人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶