开发者社区 > 云原生 > 正文

create mapped file引发io异常,但该文件确实是在磁盘上成功创建的。

我在创建新地图文件时遇到问题。它引发一个io异常并重试30次,但都以io异常失败。但我发现mapfile确实是在磁盘上创建的succ文件,并且它的文件大小是正确的。

你能帮我吗?

下面是异常堆栈。

2018-10-09 01:14:50 WARN ReputMessageService - [BUG]put commit log position info to BenchmarkTest:304 265047020213 failed, retry 2 times 2018-10-09 01:14:51 ERROR ReputMessageService - map file /data/services/rocketmq-all-4.2.0/data/store/consumequeue/BenchmarkTest/304/00000000000040200000 Failed. java.io.IOException: Map failed at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:940) ~[na:1.8.0_121] at org.apache.rocketmq.store.MappedFile.init(MappedFile.java:164) [rocketmq-store-4.2.0.jar:4.2.0] at org.apache.rocketmq.store.MappedFile.(MappedFile.java:73) [rocketmq-store-4.2.0.jar:4.2.0] at org.apache.rocketmq.store.MappedFileQueue.getLastMappedFile(MappedFileQueue.java:217) [rocketmq-store-4.2.0.jar:4.2.0] at org.apache.rocketmq.store.MappedFileQueue.getLastMappedFile(MappedFileQueue.java:237) [rocketmq-store-4.2.0.jar:4.2.0] at org.apache.rocketmq.store.ConsumeQueue.putMessagePositionInfo(ConsumeQueue.java:435) [rocketmq-store-4.2.0.jar:4.2.0] at org.apache.rocketmq.store.ConsumeQueue.putMessagePositionInfoWrapper(ConsumeQueue.java:397) [rocketmq-store-4.2.0.jar:4.2.0] at org.apache.rocketmq.store.DefaultMessageStore.putMessagePositionInfo(DefaultMessageStore.java:1371) [rocketmq-store-4.2.0.jar:4.2.0] at org.apache.rocketmq.store.DefaultMessageStore$CommitLogDispatcherBuildConsumeQueue.dispatch(DefaultMessageStore.java:1418) [rocketmq-store-4.2.0.jar:4.2.0] at org.apache.rocketmq.store.DefaultMessageStore.doDispatch(DefaultMessageStore.java:1365) [rocketmq-store-4.2.0.jar:4.2.0] at org.apache.rocketmq.store.DefaultMessageStore$ReputMessageService.doReput(DefaultMessageStore.java:1763) [rocketmq-store-4.2.0.jar:4.2.0] at org.apache.rocketmq.store.DefaultMessageStore$ReputMessageService.run(DefaultMessageStore.java:1818) [rocketmq-store-4.2.0.jar:4.2.0] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121] Caused by: java.lang.OutOfMemoryError: Map failed at sun.nio.ch.FileChannelImpl.map0(Native Method) ~[na:1.8.0_121] at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:937) ~[na:1.8.0_121] ... 12 common frames omitted

原提问者GitHub用户yujun777

展开
收起
芬奇福贵 2023-05-26 16:17:44 177 0
1 条回答
写回答
取消 提交回答
  • 将文件映射到内存时似乎发生了OutOfMemoryError,而且您的环境中似乎正在运行一个基准案例,因此请在64位服务器中运行rocketmq,检查映射的文件是否达到了服务器设置的限制,例如file max或max_map_count(cat/proc/sys/vm/max_map_count),并检查您的runbroker.sh JVM配置。 如果你对此一无所知,你可以搜索这些词:“FileChannelImpl java.lang.OutOfMemoryError:映射失败”。

    原回答者GitHub用户duhengforever

    2023-05-26 18:05:16
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载