From 5d4986c755526ad5d249ba96eb6213ce089a9c25 Mon Sep 17 00:00:00 2001 From: Sam Reis Date: Fri, 4 Jul 2014 12:47:28 +1000 Subject: [PATCH] Fix server leaking events Solves #6843. Docker-DCO-1.1-Signed-off-by: Samuel Reis (github: srijs) --- server/server.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/server/server.go b/server/server.go index e9a2c93819..2bbada5a1d 100644 --- a/server/server.go +++ b/server/server.go @@ -2463,8 +2463,14 @@ func (srv *Server) LogEvent(action, id, from string) *utils.JSONMessage { func (srv *Server) AddEvent(jm utils.JSONMessage) { srv.Lock() - defer srv.Unlock() - srv.events = append(srv.events, jm) + if len(srv.events) == cap(srv.events) { + // discard oldest event + copy(srv.events, srv.events[1:]) + srv.events[len(srv.events)-1] = jm + } else { + srv.events = append(srv.events, jm) + } + srv.Unlock() } func (srv *Server) GetEvents() []utils.JSONMessage {