about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-11-20 05:41:03 +0000
committerEric Wong <e@80x24.org>2015-11-21 01:13:39 +0000
commit907c073738636b44919dc8d3c79a6cbf38114e64 (patch)
tree92837f8f4a5bc41cab664b4aa32bb079f3324072
parent4f7e8edf9f3bf734ca6bfb56756ef7cd90ffb32e (diff)
downloadcmogstored-907c073738636b44919dc8d3c79a6cbf38114e64.tar.gz
A bunch of minor changes; most notable is systemd-style socket
activation support.  This was easy-to-add since we've always had
socket activation support for nginx-style SIGUSR2 upgrades.

This places no link or runtime dependency on libsystemd, so the
LISTEN_FDS and LISTEN_PID environment variables may be used in other
init systems as well.  While I have my own reservations about
systemd itself, I also strongly believe in using socket activation
to prevent downtime.  Existing behavior with CMOGSTORED_FD
(used for SIGUSR2 upgrades) is now documented in the manpage and
will always supported.

We've also added vfork support for Linux systems, allowing
faster spawning of iostat if malloc is using too much memory.

Behavior changes:

Bad Range: headers return 416 responses in more cases for invalid
ranges (e.g. miscalculated ranges such as "1--1", while
completely wrong ones (lacking a "bytes=" prefix) are ignored
entirely as in nginx.

Bugfixes:

There are also some cleanups to avoid dying on OOM in more places
on weird systems which trigger OOM.  More work on this is ongoing.

Also updates to the latest gnulib.git
commit 71d39c1644762745b94e9449c45bfd716a79a5eb
("autoupdate") along with a change which fixes a memory leak when
people build from cmogstored.git using gnulib
commit c6148bca89e9465fd6ba3a10d273ec4cb58c2dbe
or later ("mountlist: add me_mntroot field on Linux machines").

This memory leak did not affect any released tarballs of cmogstored.
Note, users building from git (as opposed to the tarball) will
need gnulib commit 41d1b6c42641a5b9e21486ca2074198ee7909bd7
("mountlist: add support for deallocating returned list entries")
or later (from July 2013).

There are also various documentation updates and our mailing
list is now readable over NNTP:

  nntp://news.public-inbox.org/inbox.comp.file-systems.mogilefs.cmogstored
-rw-r--r--README5
-rw-r--r--examples/cmogstored.socket1
-rw-r--r--examples/cmogstored@.service1
3 files changed, 3 insertions, 4 deletions
diff --git a/README b/README
index 02855c1..7ef6dd0 100644
--- a/README
+++ b/README
@@ -75,10 +75,7 @@ Source tarballs suitable for distribution are housed here:
 * http://bogomips.org/cmogstored/files/
 
 The latest stable release is:
-        http://bogomips.org/cmogstored/files/cmogstored-1.4.3.tar.gz
-
-The latest release candidate is:
-        http://bogomips.org/cmogstored/files/pre/cmogstored-1.5.0rc1.tar.gz
+        http://bogomips.org/cmogstored/files/cmogstored-1.5.0.tar.gz
 
 See http://bogomips.org/cmogstored/NEWS for release notes
 
diff --git a/examples/cmogstored.socket b/examples/cmogstored.socket
index 852fd3a..a21e19d 100644
--- a/examples/cmogstored.socket
+++ b/examples/cmogstored.socket
@@ -1,4 +1,5 @@
 # ==> /etc/systemd/system/cmogstored.socket <==
+# systemd-style socket activation requires cmogstored 1.5.0 and later
 [Unit]
 Description = cmogstored sockets
 
diff --git a/examples/cmogstored@.service b/examples/cmogstored@.service
index 2361a98..5af3aea 100644
--- a/examples/cmogstored@.service
+++ b/examples/cmogstored@.service
@@ -1,4 +1,5 @@
 # ==> /etc/systemd/system/cmogstored@.service <==
+# systemd-style socket activation requires cmogstored 1.5.0 and later
 # Since SIGUSR2 upgrades do not work under systemd, this service file
 # allows starting two simultaneous services during upgrade time
 # (e.g. cmogstored@1 cmogstored@2) with the intention that they take