On Tue, Jan 07, 2025 at 02:47:48PM +0100, Christian Ruppert wrote:
> Subject: Re: 3.1.x /dev/shm files?
> On 2025-01-07 14:39, William Lallemand wrote:
> > On Tue, Jan 07, 2025 at 12:35:43PM +0100, Christian Ruppert wrote:
> > > Subject: 3.1.x /dev/shm files?
> > > Hey,
> > > 
> > > nothing major but something I noticed:
> > > It looks like in 3.1.x, at least 3.1.1, HAProxy opens and keeps open a
> > > /dev/shm file, like here:
> > > `haproxy   10493                              root DEL       REG
> > > 0,21                    319 /dev/shm/haproxy_startup_logs_10491`
> > > This behavior seems new. Is it intended that way or a bug?
> > > The FD should closed and/or that file should exist and not being
> > > deleted
> > > IMO.
> > > 
> > > 1. Start HAProxy
> > > 2. lsof | grep haproxy | grep DEL
> > > 
> > 
> > Hello Christian,
> > 
> > That's the normal behavior, it was introduced with USE_SHM_OPEN in 2.7,
> > and is activated by default on linux-glibc,
> > linux-musl and freebsd.
> > 
> > It's a mecanism that opens a shm to store the startup-logs between the
> > old processes and the new one during reload.
> > Allowing to show logs on the "reload" command from the master CLI for
> > example. The shm file is opened and then deleted
> > so we don't pollute the filesystem, the FD is then kept so we can still
> > access to the shared memory.
> > 
> > The mecanism changed a little bit in 3.1, in previous versions the FD
> > was closed after the reload and then reopened for
> > a new reload, but now we keep the same SHM between reloads. But once
> > haproxy is stopped it won't leak anywhere.
> > 
> > Regards,
> 
> Hi William,
> 
> alright. Thanks! :)
> 

Note that with a recent kernel and lsof you have additionnal details:

% sudo lsof | grep shm | grep haproxy
haproxy   201470                              root  mem       REG               
0,29                45682 [anon_shmem:errors:startup_logs] (stat: No such file 
or directory)

We set an ID on the shared memory zones so we are able to identify them.


-- 
William Lallemand


Reply via email to