alibaba / alibaba/fastjson2

[BUG] java.lang.OutOfMemoryError

Open
#1,773 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
4.4k
Forks
613
Avg merge
1d 22h
Merged PRs (30d)
6

Description

### 问题描述
*简要描述您碰到的问题。*
Exception in thread "ASYNC-1" java.lang.OutOfMemoryError
at com.alibaba.fastjson2.JSONWriterUTF16.ensureCapacity(JSONWriterUTF16.java:1559)
at com.alibaba.fastjson2.JSONWriterUTF16.writeString(JSONWriterUTF16.java:357)
at com.alibaba.fastjson2.writer.ObjectWriterImplMap.write(ObjectWriterImplMap.java:479)
at com.alibaba.fastjson2.writer.ObjectWriterImplList.write(ObjectWriterImplList.java:371)
at com.alibaba.fastjson2.writer.ObjectWriterImplMap.write(ObjectWriterImplMap.java:548)
at com.alibaba.fastjson.JSON.toJSONString(JSON.java:1537)
at com.metaverse.lib.smith.utils.JsonStd.toString(JsonStd.java:38)
at com.metaverse.lib.smith.net.RequestImpl.setBody(RequestImpl.java:188)
at com.metaverse.lib.smith.net.RequestImpl.setReflectField(RequestImpl.java:238)
at com.metaverse.lib.smith.net.Request.impl(Request.java:60)
at com.metaverse.lib.smith.net.Request.lambda$execute$3(Request.java:37)
at com.metaverse.lib.smith.utils.Retry.get(Retry.java:74)
at com.metaverse.lib.smith.net.Request.execute(Request.java:37)
at com.metaverse.lib.smith.net.Request.execute(Request.java:33)
at com.metaverse.utils.GitlablUtils.commitFileToGitlabBaseSimple(GitlablUtils.java:297)
at com.metaverse.utils.GitlablUtils.commitFileToGitlabBaseMultiBranch(GitlablUtils.java:231)
at com.metaverse.utils.GitlablUtils.commitFileToGitlabBase(GitlablUtils.java:338)
at com.metaverse.utils.GitlablUtils.commitFileToGitlabBaseByStruct(GitlablUtils.java:532)
at com.metaverse.utils.GitlablUtils.lambda$retryUploadGitlabByCommitFileParam$2(GitlablUtils.java:670)
at com.metaverse.utils.GitlablUtils.RetryCycleFunctionDelegate(GitlablUtils.java:545)
at com.metaverse.utils.GitlablUtils.retryUploadGitlabByCommitFileParam(GitlablUtils.java:668)
at com.metaverse.tasks.JobNewGitlabCommit.run(JobNewGitlabCommit.java:84)
at com.metaverse.lib.smith.task.job.ctx.JobConsumer.run(JobConsumer.java:53)
at com.metaverse.lib.smith.task.job.ctx.JobConsumer.lambda$work$5(JobConsumer.java:198)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)

### 环境信息
*请填写以下信息:*

- OS信息: [e.g.:Windows10 64G Memory]
- JDK信息: [e.g.:Openjdk 17]
- 版本信息:[e.g.:Fastjson2 2.x.x]

### 重现步骤
*如何操作可以重现该问题:*
大量的数据,超过500m
```

Contributor guide

Open the contributing guide

Research direction

Start by examining JSONWriterUTF16.ensureCapacity and writeString, then trace the serialization path through ObjectWriterImplMap, ObjectWriterImplList, JSON.toJSONString, and the reported JsonStd.toString call. Reproduce with data exceeding 500 MB and determine whether the issue can be addressed within the reported serialization path; done means the case no longer exhausts memory or has a documented, verified limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.