严重:泄漏:在垃圾收集之前未调用 ByteBuf.release()。内蒂

2024-01-19

我已经创建了一些游戏服务器,并且刚刚与大约 10 个伙伴进行了测试。一切都很顺利,我们玩了大约 10 分钟,在游戏的某个时刻,游戏服务器停止为客户端提供服务,断开了每个人的连接,而且我连接到运行游戏的 VPS 的 SSH 也断开了连接(我不知道为什么)但在断开连接之前我总是收到此消息:

Sep 20, 2017 5:14:11 PM io.netty.util.ResourceLeakDetector reportUntracedLeak
SEVERE: LEAK: ByteBuf.release() was not called before it's garbage-collected. Enable advanced leak reporting to find out where the leak occurred. To enable advanced leak reporting, specify the JVM option '-Dio.netty.leakDetection.level=advanced' or call ResourceLeakDetector.setLevel() See http://netty.io/wiki/reference-counted-objects.html for more information.

我需要调试并知道这个消息的真正含义是什么,这个错误的方向是什么。

我真的不知道我的代码的哪一部分需要弄清楚。

private void decodeData(ChannelHandlerContext ctx, ByteBuf buffer, List<Object> out) {
    if (buffer.readableBytes() >= length) {
        ByteBuf data = buffer.readBytes(length);
        out.add(new Packet(opcode, data));
        setState(PacketDecodeState.OPCODE);
    }
}

读取完数据后,我不调用buffer.release()因为这样它就不会真正处理任何数据包,只是一个错误的行为,我确信把它放在那里是错误的。


As your Packet保存对新创建的引用ByteBuf你需要确保你打电话ByteBuf.release()这个的ByteBuf否则会造成内存泄漏。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

严重:泄漏:在垃圾收集之前未调用 ByteBuf.release()。内蒂 的相关文章

  • 不断增长的 Amazon EBS 卷大小 [已关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 亚马逊的 EC2 和 EBS 服务给我留下了深刻的印象 我想知道是否可以增加 EBS 卷 例如 如果我有 50 GB 的卷 但空间开始不足 我可以在需

随机推荐

  • C++ 内存中键值存储

    我正在寻找有关具有 C 接口或用 C 编写的内存中键值存储引擎或库的建议 我正在寻找可以毫无问题地扩展到大约 100mill 个键值对并且在 Linux 和 win32 64 上兼容 编译的解决方案 怎么样std map http cplu
  • R list() 的 Python 等效项

    R 的 list 也允许标记元素 Python 中是否有等效的方法来实现以下功能 list prob topTalent name Roger Python 文档位于https docs python org 3 tutorial intr
  • 如何查看给定 iOS ipa 文件中定义的 NSString

    我记得我以前做过这个 但忘记了命令 e g 我在源代码中定义了一个 NSString 例如 NSString s secret 我记得我可以使用以下命令查看内容strings命令 但我忘记了查看它的确切命令 e g strings my i
  • 1064, “您的 SQL 语法有错误;...” Python MySQL

    所以我从上周五开始就一直在研究这个问题 但无法解决这个错误 第1064章 你的SQL语法有错误 检查手册 与您的 MySQL 服务器版本相对应 以便使用正确的语法 第 1 行的 u 161010 035670 WHERE order id
  • 必填字段验证器未触发

    我在使用具有 TextBox 和 requiredFieldValidator 的标准 ASP NET 页面时遇到问题 重现的步骤非常简单 在页面上放置一个文本框 在页面上放置一个RequiredFieldValidator 将Requir
  • 如何使 Tab 页的宽度适合 TabControl 的宽度

    我有一个带有两个选项卡页的 TabControl 如何使选项卡页适合 TabControl 的宽度 如下面的屏幕截图所示 我尝试使用以下代码行 但它也不起作用 tabControl1 SizeMode TabSizeMode FillToR
  • Java:检测变量是字符串还是整数

    我正在为我的一些家庭作业寻求一些帮助 我希望用户输入一个数字字符串 然后将其转换为整数 但我想创建一个循环来检测用户是否输入了错误的值 例如 一百 而不是 100 我的想法是做这样的事情 do numStr JOptionPane show
  • Swift 对具有多个排序标准的数组进行排序[重复]

    这个问题在这里已经有答案了 Swift 中如何按多个条件对数组进行排序 例如 字典数组如下所示 items item itemA status 0 category B item itemB status 1 category C item
  • 使用自定义图标进行 Google 地图标记定位

    我遇到一个问题 带有自定义图标的标记似乎显示在地图上略有不同的点 具体取决于缩放级别 我以前使用过带有自定义图标的标记 所以我不知道我做错了什么 您会看到 最初标记看起来像是位于道路上 但如果缩小两次 它看起来就像在上面 如果放大两次 它看
  • GAE Blobstore 类文件 API 弃用时间表(py 2.7 运行时)

    这是 App Engine 团队的问题 上周我们意识到 App Engine 团队已将用于写入和读取 blobstore 的类文件 API 标记为已弃用 并且将来可能会被删除 我们有相当多的基础设施依赖于该 API 现在我们需要移植到他们建
  • 在python 3.6中导入tensorflow时出现非法指令:4

    我安装了macOS 上的张量流 https www tensorflow org install install mac使用 Virtualenv 一切顺利 成功安装了 6 1 11 0 tensorflow 1 6 0 是终端的最后一个输
  • 尝试呈现一个 UIViewController,其视图不在窗口层次结构中

    我有一个具有以下层次结构的多视图应用程序 启动 gt 导航控制器 gt 表视图控制器 gt 设置视图控制器 Splash 是应用程序入口点 因此成为根视图控制器 当我尝试通过设置视图控制器上的操作将图块添加到带区时 我收到调试器警告 app
  • 传单 GeoJSON 显示

    我遇到了一个任务 需要使用 leaflet js 库和 geojson 作为数据存储 几乎立即 遇到了以下问题 从 geojson 对象创建的多边形不显示在地图上 而由本机传单方法创建的多边形则完美地工作 这是我的代码 var map ne
  • 自编译 Roslyn 构建性能:不如最初发布的 Roslyn 版本快

    用一句话来形容我在做什么 检查分支Update 1来自罗斯林 github 存储库 https github com dotnet roslyn git 构建 csc exe 并使用我刚刚自己构建的 csc exe 版本编译随机解决方案 预
  • Pandas 的 ValueError - 传递值的形状

    我正在尝试使用 Pandas 和 PyODBC 从 SQL Server 视图中提取内容并将内容转储到 Excel 文件中 但是 在转储数据帧时出现错误 我可以打印列和数据帧内容 ValueError Shape of passed val
  • Eclipse 中的调试:无断点的变量快照

    我正在 Eclipse 中调试 Java 程序 我想观察一个特定的变量 但是 由于我的程序使用 GUI 因此创建断点会导致窗口冻结 例如 这尤其令人烦恼 尝试右键单击某个项目并导航上下文菜单 我实际上并不想停止程序 我只是想观察一个特定的变
  • 页面加载时使用 AJAX 不是一件坏事吗?

    我在上面看到过这个书呆子晚餐 http nerddinner codeplex com和其他网站 页面加载时 在 JavaScript 中 通过浏览器 将发出 AJAX 请求 从呈现初始页面的同一服务器获取一些数据 数据会很小 并且不存在会
  • AnyDac 又名 FireDac 无法生成更新查询

    我已经使用 UniDac 很长时间了 决定转向 FireDac 因为它具有良好的异步方法 在继续使用后 我发现我的数据编辑不再起作用 它给了我一个错误 FireDAC 物理 330 无法生成更新查询 更新表未定义 我在这里想做的是我有一个
  • Spring单例和Java单例(设计模式)有什么区别? [复制]

    这个问题在这里已经有答案了 我正在学习 Spring 框架 目前正在阅读一本关于它的书 这本书里说Spring单例与Java单例不同 这意味着什么以及有什么区别 谢谢 Java 单例的作用域是 Java 类加载器 Spring 单例的作用域
  • 严重:泄漏:在垃圾收集之前未调用 ByteBuf.release()。内蒂

    我已经创建了一些游戏服务器 并且刚刚与大约 10 个伙伴进行了测试 一切都很顺利 我们玩了大约 10 分钟 在游戏的某个时刻 游戏服务器停止为客户端提供服务 断开了每个人的连接 而且我连接到运行游戏的 VPS 的 SSH 也断开了连接 我不