Re: logrotate(8) and copytruncate as default

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 28.06.13 13:23, P J P (pj.pandit@xxxxxxxxxxx) wrote:

> > The systemd-journald takes care of all of: receiving messages, writing
> > them to storage, and rotating the storage.
> >
> > We do synchronous rotation before each write. i.e. the moment we append
> > to a file we check if the write would cause the disk usage to be out of
> > limits, and then do the rotation right away.
> 
>    I see.  While doing this rotation, I guess systemd uses flock(2) or similar
> mechanism to pause writing to a log file, move/rename or copy-truncate that
> file and continue writes again?

journald is the only writer, it doesn't need locking. The changes it
does are done in a way so that concurrent readers will either see the
changes or not, but never half-written changes. 

Also note that locking on Linux is seriously broken. You can get a lock
on any file you can read, thus you can freeze everybody else who might
want a lock. Or in other words: if a logging daemon takes a lock on its
lock files, then you can use this to make that service freeze forever.

File system locking on Unix cannot really work. 

Lennart

-- 
Lennart Poettering - Red Hat, Inc.
-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux