内存泄漏问题咨询
- Dominant language
- Java
- Stars
- 4.4k
- Forks
- 613
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 6
Description
### 请描述您的问题
*询问有关本项目的使用和其他方面的相关问题。*
我在使用插件类加载器的时候,插件停止的时候会,清理缓存,
```java
ObjectWriterProvider writerProvider = JSONFactory.getDefaultObjectWriterProvider();
ObjectReaderProvider readerProvider = JSONFactory.getDefaultObjectReaderProvider();
writerProvider.clear();
readerProvider.clear();
Map pluginClassLoaders1 = getPluginClassLoaders();
pluginClassLoaders1.forEach((k, v) -> {
log.info("stopPlugins::plugin:{}, classloader:{}", k, v);
writerProvider.cleanup(v);
readerProvider.cleanup(v);
});
```
如果多次重新加载,在fastjson2会出现Caused by: java.lang.OutOfMemoryError: Metaspace,我该怎么协助排查下呢
```bash
com.alibaba.fastjson2.JSONException: create objectReader error, objectType com.weidian.iot.sdk.device.client.model.BaseMessage
at com.alibaba.fastjson2.reader.ObjectReaderCreatorASM.jitObjectReader(ObjectReaderCreatorASM.java:602)
at com.alibaba.fastjson2.reader.ObjectReaderCreatorASM.createObjectReader(ObjectReaderCreatorASM.java:327)
at com.alibaba.fastjson2.reader.ObjectReaderProvider.getObjectReaderInternal(ObjectReaderProvider.java:845)
at com.alibaba.fastjson2.reader.ObjectReaderProvider.getObjectReader(ObjectReaderProvider.java:763)
at com.alibaba.fastjson2.JSON.parseObject(JSON.java:858)
at com.weidian.iot.sdk.device.client.DeviceClient.publishRawMessage(DeviceClient.java:187)
at com.weidian.iot.sdk.device.client.DeviceClient.reportProperties(DeviceClient.java:231)
at com.weidian.iot.sdk.device.device.AbstractBridgeDevice.reportProperties(AbstractBridgeDevice.java:119)
at com.weidian.iot.sdk.device.device.subdevice.AbstractBridgeSubDevice.reportProperties(AbstractBridgeSubDevice.java:114)
at com.weidian.iot.sdk.device.device.AbstractDevice.firePropertiesChanged(AbstractDevice.java:104)
at com.weidian.iot.sdk.device.service.DeviceService$1.run(DeviceService.java:344)
at java.base/java.util.TimerThread.mainLoop(Timer.java:556)
at java.base/java.util.TimerThread.run(Timer.java:506)
Caused by: java.lang.OutOfMemoryError: Metaspace
```
Contributor guide
Research direction
Start by tracing ObjectReaderCreatorASM.java:602 and ObjectReaderProvider.java:763-845 from the reported JSON.parseObject call in DeviceClient.java:187. Reproduce repeated plugin reloads while examining the writerProvider and readerProvider cleanup calls shown in the issue. Done means the source of the Metaspace growth is identified and a repeatable diagnostic or verified fix is documented.
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
- 30/100