passenger 4.0.42 → 4.0.43
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +8 -8
- checksums.yaml.gz.asc +7 -7
- data.tar.gz.asc +7 -7
- data/CHANGELOG +13 -0
- data/CONTRIBUTING.md +2 -19
- data/build/agents.rb +4 -1
- data/build/cxx_tests.rb +7 -2
- data/build/debian.rb +1 -1
- data/debian.template/control.template +0 -2
- data/doc/CodingTipsAndPitfalls.md +56 -0
- data/doc/Users guide Apache.idmap.txt +16 -14
- data/doc/Users guide Nginx.idmap.txt +8 -6
- data/doc/Users guide Standalone.idmap.txt +3 -1
- data/doc/Users guide Standalone.txt +1 -1
- data/doc/users_guide_snippets/environment_variables.txt +1 -0
- data/doc/users_guide_snippets/installation.txt +5 -5
- data/doc/users_guide_snippets/support_information.txt +42 -9
- data/doc/users_guide_snippets/troubleshooting/default.txt +42 -0
- data/ext/common/ApplicationPool2/Common.h +1 -0
- data/ext/common/ApplicationPool2/DirectSpawner.h +2 -7
- data/ext/common/ApplicationPool2/DummySpawner.h +1 -1
- data/ext/common/ApplicationPool2/Group.h +4 -2
- data/ext/common/ApplicationPool2/Options.h +9 -7
- data/ext/common/ApplicationPool2/Pool.h +83 -40
- data/ext/common/ApplicationPool2/Process.h +2 -6
- data/ext/common/ApplicationPool2/README.md +0 -40
- data/ext/common/ApplicationPool2/SmartSpawner.h +2 -9
- data/ext/common/ApplicationPool2/Spawner.h +1 -4
- data/ext/common/ApplicationPool2/SpawnerFactory.h +6 -9
- data/ext/common/ApplicationPool2/SuperGroup.h +3 -3
- data/ext/common/Constants.h +1 -1
- data/ext/common/UnionStation/Connection.h +227 -0
- data/ext/common/UnionStation/Core.h +497 -0
- data/ext/common/UnionStation/ScopeLog.h +172 -0
- data/ext/common/UnionStation/Transaction.h +276 -0
- data/ext/common/Utils.cpp +83 -8
- data/ext/common/Utils.h +25 -4
- data/ext/common/Utils/AnsiColorConstants.h +1 -0
- data/ext/common/Utils/ProcessMetricsCollector.h +6 -170
- data/ext/common/Utils/SpeedMeter.h +258 -0
- data/ext/common/Utils/StrIntUtils.cpp +6 -0
- data/ext/common/Utils/StringScanning.h +277 -0
- data/ext/common/Utils/SystemMetricsCollector.h +1460 -0
- data/ext/common/agents/Base.cpp +8 -8
- data/ext/common/agents/HelperAgent/Main.cpp +12 -6
- data/ext/common/agents/HelperAgent/RequestHandler.h +15 -16
- data/ext/common/agents/HelperAgent/SystemMetricsTool.cpp +199 -0
- data/ext/common/agents/LoggingAgent/LoggingServer.h +2 -1
- data/ext/common/agents/SpawnPreparer.cpp +20 -32
- data/lib/phusion_passenger.rb +1 -1
- data/lib/phusion_passenger/config/list_instances_command.rb +118 -0
- data/lib/phusion_passenger/config/main.rb +22 -4
- data/lib/phusion_passenger/config/system_metrics_command.rb +37 -0
- data/lib/phusion_passenger/config/utils.rb +1 -1
- data/lib/phusion_passenger/loader_shared_helpers.rb +8 -5
- data/lib/phusion_passenger/platform_info/compiler.rb +1 -1
- data/resources/templates/error_layout.html.template +3 -3
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +3 -5
- data/test/cxx/ApplicationPool2/PoolTest.cpp +1 -3
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +4 -4
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +5 -7
- data/test/cxx/RequestHandlerTest.cpp +9 -3
- data/test/cxx/UnionStationTest.cpp +61 -64
- metadata +13 -4
- metadata.gz.asc +7 -7
- data/ext/common/UnionStation.h +0 -968
- data/helper-scripts/system-memory-stats.py +0 -207
@@ -5,6 +5,7 @@
|
|
5
5
|
#include <ApplicationPool2/Pool.h>
|
6
6
|
#include <Utils/json.h>
|
7
7
|
#include <Utils/IOUtils.h>
|
8
|
+
#include <Utils/StrIntUtils.h>
|
8
9
|
#include <Utils/Timer.h>
|
9
10
|
#include <Utils/BufferedIO.h>
|
10
11
|
|
@@ -42,7 +43,7 @@ namespace tut {
|
|
42
43
|
|
43
44
|
RequestHandlerTest() {
|
44
45
|
createServerInstanceDirAndGeneration(serverInstanceDir, generation);
|
45
|
-
spawnerFactory = boost::make_shared<SpawnerFactory>(
|
46
|
+
spawnerFactory = boost::make_shared<SpawnerFactory>(*resourceLocator, generation);
|
46
47
|
pool = boost::make_shared<Pool>(spawnerFactory);
|
47
48
|
pool->initialize();
|
48
49
|
serverFilename = generation->getPath() + "/server";
|
@@ -97,7 +98,9 @@ namespace tut {
|
|
97
98
|
return connection;
|
98
99
|
}
|
99
100
|
|
100
|
-
void sendHeaders(const map<string, string> &headers,
|
101
|
+
void sendHeaders(const map<string, string> &headers, const char *header1,
|
102
|
+
const char *value1, ...)
|
103
|
+
{
|
101
104
|
va_list ap;
|
102
105
|
const char *arg;
|
103
106
|
map<string, string> finalHeaders;
|
@@ -111,7 +114,10 @@ namespace tut {
|
|
111
114
|
finalHeaders[key] = value;
|
112
115
|
}
|
113
116
|
|
114
|
-
|
117
|
+
finalHeaders[makeStaticStringWithNull(header1)] =
|
118
|
+
makeStaticStringWithNull(value1);
|
119
|
+
|
120
|
+
va_start(ap, value1);
|
115
121
|
while ((arg = va_arg(ap, const char *)) != NULL) {
|
116
122
|
string key(arg, strlen(arg) + 1);
|
117
123
|
arg = va_arg(ap, const char *);
|
@@ -1,5 +1,6 @@
|
|
1
1
|
#include <TestSupport.h>
|
2
|
-
#include <UnionStation.h>
|
2
|
+
#include <UnionStation/Core.h>
|
3
|
+
#include <UnionStation/Transaction.h>
|
3
4
|
#include <MessageClient.h>
|
4
5
|
#include <agents/LoggingAgent/LoggingServer.h>
|
5
6
|
#include <Utils/MessageIO.h>
|
@@ -32,7 +33,7 @@ namespace tut {
|
|
32
33
|
FileDescriptor serverFd;
|
33
34
|
LoggingServerPtr server;
|
34
35
|
boost::shared_ptr<oxt::thread> serverThread;
|
35
|
-
|
36
|
+
CorePtr core, core2, core3, core4;
|
36
37
|
|
37
38
|
UnionStationTest() {
|
38
39
|
createServerInstanceDirAndGeneration(serverInstanceDir, generation);
|
@@ -44,14 +45,14 @@ namespace tut {
|
|
44
45
|
setLogLevel(-1);
|
45
46
|
|
46
47
|
startLoggingServer();
|
47
|
-
|
48
|
-
"localhost")
|
49
|
-
|
50
|
-
"localhost")
|
51
|
-
|
52
|
-
"localhost")
|
53
|
-
|
54
|
-
"localhost")
|
48
|
+
core = make_shared<Core>(socketAddress, "test", "1234",
|
49
|
+
"localhost");
|
50
|
+
core2 = make_shared<Core>(socketAddress, "test", "1234",
|
51
|
+
"localhost");
|
52
|
+
core3 = make_shared<Core>(socketAddress, "test", "1234",
|
53
|
+
"localhost");
|
54
|
+
core4 = make_shared<Core>(socketAddress, "test", "1234",
|
55
|
+
"localhost");
|
55
56
|
}
|
56
57
|
|
57
58
|
~UnionStationTest() {
|
@@ -128,12 +129,12 @@ namespace tut {
|
|
128
129
|
// Test logging of new transaction.
|
129
130
|
SystemTime::forceAll(YESTERDAY);
|
130
131
|
|
131
|
-
|
132
|
+
TransactionPtr log = core->newTransaction("foobar");
|
132
133
|
log->message("hello");
|
133
134
|
log->message("world");
|
134
135
|
log->flushToDiskAfterClose(true);
|
135
136
|
|
136
|
-
ensure(!
|
137
|
+
ensure(!core->isNull());
|
137
138
|
ensure(!log->isNull());
|
138
139
|
|
139
140
|
log.reset();
|
@@ -147,11 +148,11 @@ namespace tut {
|
|
147
148
|
// Test logging of existing transaction.
|
148
149
|
SystemTime::forceAll(YESTERDAY);
|
149
150
|
|
150
|
-
|
151
|
+
TransactionPtr log = core->newTransaction("foobar");
|
151
152
|
log->message("message 1");
|
152
153
|
log->flushToDiskAfterClose(true);
|
153
154
|
|
154
|
-
|
155
|
+
TransactionPtr log2 = core2->continueTransaction(log->getTxnId(),
|
155
156
|
log->getGroupName(), log->getCategory());
|
156
157
|
log2->message("message 2");
|
157
158
|
log2->flushToDiskAfterClose(true);
|
@@ -167,19 +168,19 @@ namespace tut {
|
|
167
168
|
TEST_METHOD(3) {
|
168
169
|
// Test logging with different points in time.
|
169
170
|
SystemTime::forceAll(YESTERDAY);
|
170
|
-
|
171
|
+
TransactionPtr log = core->newTransaction("foobar");
|
171
172
|
log->message("message 1");
|
172
173
|
SystemTime::forceAll(TODAY);
|
173
174
|
log->message("message 2");
|
174
175
|
log->flushToDiskAfterClose(true);
|
175
176
|
|
176
177
|
SystemTime::forceAll(TOMORROW);
|
177
|
-
|
178
|
+
TransactionPtr log2 = core2->continueTransaction(log->getTxnId(),
|
178
179
|
log->getGroupName(), log->getCategory());
|
179
180
|
log2->message("message 3");
|
180
181
|
log2->flushToDiskAfterClose(true);
|
181
182
|
|
182
|
-
|
183
|
+
TransactionPtr log3 = core3->newTransaction("foobar");
|
183
184
|
log3->message("message 4");
|
184
185
|
log3->flushToDiskAfterClose(true);
|
185
186
|
|
@@ -196,13 +197,13 @@ namespace tut {
|
|
196
197
|
|
197
198
|
TEST_METHOD(4) {
|
198
199
|
// newTransaction() and continueTransaction() write an ATTACH message
|
199
|
-
// to the log file, while
|
200
|
+
// to the log file, while UnionStation::Transaction writes a DETACH message upon
|
200
201
|
// destruction.
|
201
202
|
SystemTime::forceAll(YESTERDAY);
|
202
|
-
|
203
|
+
TransactionPtr log = core->newTransaction("foobar");
|
203
204
|
|
204
205
|
SystemTime::forceAll(TODAY);
|
205
|
-
|
206
|
+
TransactionPtr log2 = core2->continueTransaction(log->getTxnId(),
|
206
207
|
log->getGroupName(), log->getCategory());
|
207
208
|
log2->flushToDiskAfterClose(true);
|
208
209
|
log2.reset();
|
@@ -221,11 +222,11 @@ namespace tut {
|
|
221
222
|
TEST_METHOD(5) {
|
222
223
|
// newTransaction() generates a new ID, while continueTransaction()
|
223
224
|
// reuses the ID.
|
224
|
-
|
225
|
-
|
226
|
-
|
225
|
+
TransactionPtr log = core->newTransaction("foobar");
|
226
|
+
TransactionPtr log2 = core2->newTransaction("foobar");
|
227
|
+
TransactionPtr log3 = core3->continueTransaction(log->getTxnId(),
|
227
228
|
log->getGroupName(), log->getCategory());
|
228
|
-
|
229
|
+
TransactionPtr log4 = core4->continueTransaction(log2->getTxnId(),
|
229
230
|
log2->getGroupName(), log2->getCategory());
|
230
231
|
|
231
232
|
ensure_equals(log->getTxnId(), log3->getTxnId());
|
@@ -234,19 +235,19 @@ namespace tut {
|
|
234
235
|
}
|
235
236
|
|
236
237
|
TEST_METHOD(6) {
|
237
|
-
// An empty
|
238
|
-
|
238
|
+
// An empty UnionStation::Transaction doesn't do anything.
|
239
|
+
UnionStation::Transaction log;
|
239
240
|
ensure(log.isNull());
|
240
241
|
log.message("hello world");
|
241
242
|
ensure_equals(getFileType(dumpFile), FT_NONEXISTANT);
|
242
243
|
}
|
243
244
|
|
244
245
|
TEST_METHOD(7) {
|
245
|
-
// An empty
|
246
|
-
|
247
|
-
ensure(
|
246
|
+
// An empty UnionStation::Core doesn't do anything.
|
247
|
+
UnionStation::Core core;
|
248
|
+
ensure(core.isNull());
|
248
249
|
|
249
|
-
|
250
|
+
TransactionPtr log = core.newTransaction("foo");
|
250
251
|
ensure(log->isNull());
|
251
252
|
log->message("hello world");
|
252
253
|
ensure_equals(getFileType(dumpFile), FT_NONEXISTANT);
|
@@ -255,19 +256,18 @@ namespace tut {
|
|
255
256
|
TEST_METHOD(11) {
|
256
257
|
// newTransaction() does not reconnect to the server for a short
|
257
258
|
// period of time if connecting failed
|
258
|
-
|
259
|
-
factory->setMaxConnectTries(1);
|
259
|
+
core->setReconnectTimeout(60 * 1000000);
|
260
260
|
|
261
261
|
SystemTime::forceAll(TODAY);
|
262
262
|
stopLoggingServer();
|
263
|
-
ensure(
|
263
|
+
ensure(core->newTransaction("foobar")->isNull());
|
264
264
|
|
265
265
|
SystemTime::forceAll(TODAY + 30 * 1000000);
|
266
266
|
startLoggingServer();
|
267
|
-
ensure(
|
267
|
+
ensure(core->newTransaction("foobar")->isNull());
|
268
268
|
|
269
269
|
SystemTime::forceAll(TODAY + 61 * 1000000);
|
270
|
-
ensure(!
|
270
|
+
ensure(!core->newTransaction("foobar")->isNull());
|
271
271
|
}
|
272
272
|
|
273
273
|
TEST_METHOD(12) {
|
@@ -277,23 +277,23 @@ namespace tut {
|
|
277
277
|
// calls will reestablish the connection when the connection timeout
|
278
278
|
// has passed.
|
279
279
|
SystemTime::forceAll(TODAY);
|
280
|
-
|
280
|
+
TransactionPtr log, log2;
|
281
281
|
|
282
|
-
log =
|
283
|
-
|
282
|
+
log = core->newTransaction("foobar");
|
283
|
+
core2->continueTransaction(log->getTxnId(), "foobar");
|
284
284
|
log.reset(); // Check connection back into the pool.
|
285
285
|
stopLoggingServer();
|
286
286
|
startLoggingServer();
|
287
287
|
|
288
|
-
log =
|
288
|
+
log = core->newTransaction("foobar");
|
289
289
|
ensure("(1)", log->isNull());
|
290
|
-
log2 =
|
290
|
+
log2 = core2->continueTransaction("some-id", "foobar");
|
291
291
|
ensure("(2)", log2->isNull());
|
292
292
|
|
293
293
|
SystemTime::forceAll(TODAY + 60000000);
|
294
|
-
log =
|
294
|
+
log = core->newTransaction("foobar");
|
295
295
|
ensure("(3)", !log->isNull());
|
296
|
-
log2 =
|
296
|
+
log2 = core2->continueTransaction(log->getTxnId(), "foobar");
|
297
297
|
ensure("(4)", !log2->isNull());
|
298
298
|
log2->message("hello");
|
299
299
|
log2->flushToDiskAfterClose(true);
|
@@ -308,23 +308,21 @@ namespace tut {
|
|
308
308
|
TEST_METHOD(13) {
|
309
309
|
// continueTransaction() does not reconnect to the server for a short
|
310
310
|
// period of time if connecting failed
|
311
|
-
|
312
|
-
|
313
|
-
factory2->setReconnectTimeout(60 * 1000000);
|
314
|
-
factory2->setMaxConnectTries(1);
|
311
|
+
core->setReconnectTimeout(60 * 1000000);
|
312
|
+
core2->setReconnectTimeout(60 * 1000000);
|
315
313
|
|
316
314
|
SystemTime::forceAll(TODAY);
|
317
|
-
|
318
|
-
|
315
|
+
TransactionPtr log = core->newTransaction("foobar");
|
316
|
+
core2->continueTransaction(log->getTxnId(), "foobar");
|
319
317
|
stopLoggingServer();
|
320
|
-
ensure(
|
318
|
+
ensure(core2->continueTransaction(log->getTxnId(), "foobar")->isNull());
|
321
319
|
|
322
320
|
SystemTime::forceAll(TODAY + 30 * 1000000);
|
323
321
|
startLoggingServer();
|
324
|
-
ensure(
|
322
|
+
ensure(core2->continueTransaction(log->getTxnId(), "foobar")->isNull());
|
325
323
|
|
326
324
|
SystemTime::forceAll(TODAY + 61 * 1000000);
|
327
|
-
ensure(!
|
325
|
+
ensure(!core2->continueTransaction(log->getTxnId(), "foobar")->isNull());
|
328
326
|
}
|
329
327
|
|
330
328
|
TEST_METHOD(14) {
|
@@ -515,7 +513,7 @@ namespace tut {
|
|
515
513
|
|
516
514
|
TEST_METHOD(22) {
|
517
515
|
// The destructor flushes all data.
|
518
|
-
|
516
|
+
TransactionPtr log = core->newTransaction("foobar");
|
519
517
|
log->message("hello world");
|
520
518
|
log.reset();
|
521
519
|
stopLoggingServer();
|
@@ -529,11 +527,11 @@ namespace tut {
|
|
529
527
|
// The 'flush' command flushes all data.
|
530
528
|
SystemTime::forceAll(YESTERDAY);
|
531
529
|
|
532
|
-
|
530
|
+
TransactionPtr log = core->newTransaction("foobar");
|
533
531
|
log->message("hello world");
|
534
532
|
log.reset();
|
535
533
|
|
536
|
-
ConnectionPtr connection =
|
534
|
+
ConnectionPtr connection = core->checkoutConnection();
|
537
535
|
vector<string> args;
|
538
536
|
writeArrayMessage(connection->fd, "flush", NULL);
|
539
537
|
ensure(readArrayMessage(connection->fd, args));
|
@@ -551,19 +549,19 @@ namespace tut {
|
|
551
549
|
SystemTime::forceAll(YESTERDAY);
|
552
550
|
vector<string> args;
|
553
551
|
|
554
|
-
|
552
|
+
TransactionPtr log = core->newTransaction("foobar");
|
555
553
|
log->message("hello world");
|
556
554
|
|
557
|
-
|
555
|
+
TransactionPtr log2 = core2->continueTransaction(log->getTxnId(),
|
558
556
|
log->getGroupName(), log->getCategory());
|
559
557
|
log2->message("message 2");
|
560
558
|
log2.reset();
|
561
559
|
|
562
|
-
ConnectionPtr connection =
|
560
|
+
ConnectionPtr connection = core->checkoutConnection();
|
563
561
|
writeArrayMessage(connection->fd, "flush", NULL);
|
564
562
|
ensure(readArrayMessage(connection->fd, args));
|
565
563
|
|
566
|
-
connection =
|
564
|
+
connection = core2->checkoutConnection();
|
567
565
|
writeArrayMessage(connection->fd, "flush", NULL);
|
568
566
|
ensure(readArrayMessage(connection->fd, args));
|
569
567
|
|
@@ -669,7 +667,7 @@ namespace tut {
|
|
669
667
|
// turned on.
|
670
668
|
SystemTime::forceAll(YESTERDAY);
|
671
669
|
|
672
|
-
|
670
|
+
TransactionPtr log = core->newTransaction("foobar");
|
673
671
|
log->message("hello world");
|
674
672
|
log.reset();
|
675
673
|
|
@@ -682,7 +680,7 @@ namespace tut {
|
|
682
680
|
}
|
683
681
|
|
684
682
|
TEST_METHOD(28) {
|
685
|
-
//
|
683
|
+
// UnionStation::Core treats a server that's semi-gracefully exiting as
|
686
684
|
// one that's refusing connections.
|
687
685
|
SystemTime::forceAll(YESTERDAY);
|
688
686
|
|
@@ -690,8 +688,7 @@ namespace tut {
|
|
690
688
|
client.write("exit", "semi-gracefully", NULL);
|
691
689
|
client.disconnect();
|
692
690
|
|
693
|
-
|
694
|
-
LoggerPtr log = factory->newTransaction("foobar");
|
691
|
+
TransactionPtr log = core->newTransaction("foobar");
|
695
692
|
ensure(log->isNull());
|
696
693
|
}
|
697
694
|
|
@@ -718,7 +715,7 @@ namespace tut {
|
|
718
715
|
// Test logging of new transaction.
|
719
716
|
SystemTime::forceAll(YESTERDAY);
|
720
717
|
|
721
|
-
|
718
|
+
TransactionPtr log = core->newTransaction("foobar", "requests", "-",
|
722
719
|
"uri == \"/foo\""
|
723
720
|
"\1"
|
724
721
|
"uri != \"/bar\"");
|
@@ -727,7 +724,7 @@ namespace tut {
|
|
727
724
|
log->flushToDiskAfterClose(true);
|
728
725
|
log.reset();
|
729
726
|
|
730
|
-
log =
|
727
|
+
log = core->newTransaction("foobar", "requests", "-",
|
731
728
|
"uri == \"/foo\""
|
732
729
|
"\1"
|
733
730
|
"uri == \"/bar\"");
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: passenger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.43
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Phusion - http://www.phusion.nl/
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -132,6 +132,7 @@ files:
|
|
132
132
|
- doc/Architectural overview.html
|
133
133
|
- doc/Architectural overview.idmap.txt
|
134
134
|
- doc/Architectural overview.txt
|
135
|
+
- doc/CodingTipsAndPitfalls.md
|
135
136
|
- doc/DebuggingAndStressTesting.md
|
136
137
|
- doc/Packaging.html
|
137
138
|
- doc/Packaging.txt.md
|
@@ -2168,7 +2169,10 @@ files:
|
|
2168
2169
|
- ext/common/SafeLibev.h
|
2169
2170
|
- ext/common/ServerInstanceDir.h
|
2170
2171
|
- ext/common/StaticString.h
|
2171
|
-
- ext/common/UnionStation.h
|
2172
|
+
- ext/common/UnionStation/Connection.h
|
2173
|
+
- ext/common/UnionStation/Core.h
|
2174
|
+
- ext/common/UnionStation/ScopeLog.h
|
2175
|
+
- ext/common/UnionStation/Transaction.h
|
2172
2176
|
- ext/common/Utils.cpp
|
2173
2177
|
- ext/common/Utils.h
|
2174
2178
|
- ext/common/Utils/AnsiColorConstants.h
|
@@ -2205,10 +2209,13 @@ files:
|
|
2205
2209
|
- ext/common/Utils/ProcessMetricsCollector.h
|
2206
2210
|
- ext/common/Utils/ScopeGuard.h
|
2207
2211
|
- ext/common/Utils/SmallVector.h
|
2212
|
+
- ext/common/Utils/SpeedMeter.h
|
2208
2213
|
- ext/common/Utils/StrIntUtils.cpp
|
2209
2214
|
- ext/common/Utils/StrIntUtils.h
|
2210
2215
|
- ext/common/Utils/StreamBoyerMooreHorspool.h
|
2211
2216
|
- ext/common/Utils/StringMap.h
|
2217
|
+
- ext/common/Utils/StringScanning.h
|
2218
|
+
- ext/common/Utils/SystemMetricsCollector.h
|
2212
2219
|
- ext/common/Utils/SystemTime.cpp
|
2213
2220
|
- ext/common/Utils/SystemTime.h
|
2214
2221
|
- ext/common/Utils/Template.h
|
@@ -2233,6 +2240,7 @@ files:
|
|
2233
2240
|
- ext/common/agents/HelperAgent/RequestHandler.cpp
|
2234
2241
|
- ext/common/agents/HelperAgent/RequestHandler.h
|
2235
2242
|
- ext/common/agents/HelperAgent/ScgiRequestParser.h
|
2243
|
+
- ext/common/agents/HelperAgent/SystemMetricsTool.cpp
|
2236
2244
|
- ext/common/agents/LoggingAgent/AdminController.h
|
2237
2245
|
- ext/common/agents/LoggingAgent/DataStoreId.h
|
2238
2246
|
- ext/common/agents/LoggingAgent/FilterSupport.cpp
|
@@ -2348,7 +2356,6 @@ files:
|
|
2348
2356
|
- helper-scripts/prespawn
|
2349
2357
|
- helper-scripts/rack-loader.rb
|
2350
2358
|
- helper-scripts/rack-preloader.rb
|
2351
|
-
- helper-scripts/system-memory-stats.py
|
2352
2359
|
- helper-scripts/wsgi-loader.py
|
2353
2360
|
- helper-scripts/wsgi-preloader.py
|
2354
2361
|
- lib/phusion_passenger.rb
|
@@ -2366,8 +2373,10 @@ files:
|
|
2366
2373
|
- lib/phusion_passenger/config/build_native_support_command.rb
|
2367
2374
|
- lib/phusion_passenger/config/command.rb
|
2368
2375
|
- lib/phusion_passenger/config/detach_process_command.rb
|
2376
|
+
- lib/phusion_passenger/config/list_instances_command.rb
|
2369
2377
|
- lib/phusion_passenger/config/main.rb
|
2370
2378
|
- lib/phusion_passenger/config/restart_app_command.rb
|
2379
|
+
- lib/phusion_passenger/config/system_metrics_command.rb
|
2371
2380
|
- lib/phusion_passenger/config/utils.rb
|
2372
2381
|
- lib/phusion_passenger/config/validate_install_command.rb
|
2373
2382
|
- lib/phusion_passenger/console_text_template.rb
|
metadata.gz.asc
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
|
3
3
|
Comment: GPGTools - http://gpgtools.org
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
=
|
5
|
+
iQEcBAABAgAGBQJThfVVAAoJECrHRaUKISqMxm4H/1VmXIAwP/ui3DZ77GF/lFD7
|
6
|
+
Sx+4+kvHyWV7omZyqypxZ6v6rCtXLHb7iVeGq2nHYpPq1677XyPLMDWUUxWQ+4iX
|
7
|
+
Duvlm1f0BWIAiNtVjT0qAGnvaEWHfY94AHgPNXrDm4uZVWgdc03C3WgSU9C+w9et
|
8
|
+
49uT+AjSzDOTjlSvtUJIxXXRUAdaB+Rk2Jv+OeN6ppfRLDJrtrue1MbVsJsACdTr
|
9
|
+
OZf0knUKURk6cPW8Kt09dvzM3U3qj+mXc4r6jPF6dbSK4xr9H8ZaqBiW1YSygEwM
|
10
|
+
lwn4z09wODlcJdNo0l4JeeygYyNSmKv259shnMMt0oAf89892ZEJSCEnODxIjGM=
|
11
|
+
=hyO5
|
12
12
|
-----END PGP SIGNATURE-----
|