ufilesdk-dev / ufile-gosdk

UCloud 对象存储官方 SDK
https://www.ucloud.cn/
Apache License 2.0
34 stars 27 forks source link

UploadPart导致内存泄漏 #9

Closed clpdyhm closed 5 years ago

clpdyhm commented 5 years ago

@leyafo 函数UploadPart中, resp, err := u.requestWithResp(req) 未调用resp.Body.Close() 导致内存泄漏

leyafo commented 5 years ago

好的,我改下。

leyafo commented 5 years ago

UploadPart 里面并没有去读 body,有具体的出错信息吗?发一下。

clpdyhm commented 5 years ago

没有出错信息,只是进程导致内存泄漏后,导致OOM错误,被OS kill掉。即使没有读Body,也是需要Close的,不然,这段内存不会得到释放。

leyafo commented 5 years ago

@clpdyhm 我先调用 close fix这个问题,后续我再自己查下 go 的源码,看看具体是怎么回事。

leyafo commented 5 years ago

https://github.com/ufilesdk-dev/ufile-gosdk/commit/697866ec6bc54ef43609099fca94b4c7c7f9f62d 已经fix

leyafo commented 5 years ago

经过仔细排查,这个内存泄漏确实是没有 close body 导致的。