about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2017-01-12 22:26:13 +0000
committerEric Wong <e@80x24.org>2017-01-12 22:26:13 +0000
commitd0835f032cf6cab961b4fe1584ea066348e15390 (patch)
treec1e1f450a88f7b1bcb0f4741c35b59690563612d
parentf385ed423e11ad40822f688bc592eaa78efa5b34 (diff)
downloadrainbows-d0835f032cf6cab961b4fe1584ea066348e15390.tar.gz
Honestly, these disclaimers should've been there all along;
and should apply to all servers handling multiple clients
within a single process.
-rw-r--r--README9
-rw-r--r--lib/rainbows/configurator.rb5
2 files changed, 14 insertions, 0 deletions
diff --git a/README b/README
index ac10375..027f58a 100644
--- a/README
+++ b/README
@@ -159,6 +159,15 @@ don't email the git mailing list or maintainer with \Rainbows! patches.
 There is NO WARRANTY whatsoever if anything goes wrong, but let us know
 and we'll try our best to fix it.
 
+Rainbows! is extremely sensitive to fatal bugs in the apps it hosts.
+Each Rainbows! worker process may be handling thousands of clients;
+unexpectedly killing the process will abort _all_ of those
+connections.  Lives may be lost!
+
+Rainbows! hackers are not responsible for your application/library bugs.
+Use an application server which is tolerant of buggy applications
+if you cannot be bothered to fix all your fatal bugs.
+
 == Contact
 
 All feedback (bug reports, user/development discussion, patches, pull
diff --git a/lib/rainbows/configurator.rb b/lib/rainbows/configurator.rb
index 10cb60d..d82002e 100644
--- a/lib/rainbows/configurator.rb
+++ b/lib/rainbows/configurator.rb
@@ -6,6 +6,11 @@
 # block, otherwise Unicorn::Configurator directives may be used anywhere
 # in the file.
 #
+# Warning: The "timeout" directive in unicorn is far more dangerous
+# in Rainbows!, since ALL requests running on a process will be lost
+# on worker death, not just one.  Instead, handle application-level
+# timeouts yourself: https://bogomips.org/unicorn/Application_Timeouts.html
+#
 #   Rainbows! do
 #     use :ThreadSpawn # concurrency model to use
 #     worker_connections 400