Одной из проблем может быть не закрытие открытых файлов или освобождение ресурсов.
Например: объект body в запросе http имеет тип io.ReadCloser. У этого средства чтения есть метод close, который необходимо вызвать после завершения процесса, чтобы освободить ресурсы.
func UserHandler(w http.ResponseWriter, r *http.request) {
var user User
if err := json.NewDecoder(r.Body).Decode(&user); err != nil {
//handle error
}
defer r.Body.Close()
// More Code
}
Здесьвызов defer для r.Body.Close () приведет к освобождению связанных ресурсов после того, как метод вернет свое значение.
Подобно этому, есть много методов, которые реализуют этот интерфейс, например: * os.File, sql.DB, mgo.Session * и т. Д. Так что вы можете просто проверить, правильно ли вы закрываетересурсы.