cloudcms-server 3.2.302 → 3.2.304
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +5 -2
- package/locks/locks.js +1 -1
- package/middleware/cloudcms/cloudcms.js +30 -54
- package/middleware/runtime/runtime.js +7 -1
- package/package.json +1 -1
- package/server/index.js +10 -2
- package/util/cloudcms.js +0 -13
- package/util/proxy-factory.js +7 -32
- package/.last_command +0 -7
package/index.js
CHANGED
|
@@ -33,8 +33,11 @@ process.logInfo = process.log = function(text, level)
|
|
|
33
33
|
// by default, set up Gitana driver so that it limits to five concurrent HTTP requests back to Cloud CMS API at at time
|
|
34
34
|
var Gitana = require("gitana");
|
|
35
35
|
|
|
36
|
-
// default
|
|
37
|
-
process.
|
|
36
|
+
// default keep alive (3 minutes)
|
|
37
|
+
process.defaultKeepAliveMs = (3 * 60 * 1000);
|
|
38
|
+
|
|
39
|
+
// default http timeout (2 minutes)
|
|
40
|
+
process.defaultHttpTimeoutMs = 2 * 60 * 1000;
|
|
38
41
|
|
|
39
42
|
if (process.env.DEFAULT_HTTP_TIMEOUT_MS)
|
|
40
43
|
{
|
package/locks/locks.js
CHANGED
|
@@ -435,72 +435,48 @@ exports = module.exports = function()
|
|
|
435
435
|
return callback(null, Chain(branch));
|
|
436
436
|
}
|
|
437
437
|
|
|
438
|
-
|
|
439
|
-
_LOCK(cacheKey, function(err, releaseLockFn) {
|
|
440
|
-
|
|
441
|
-
if (err) {
|
|
442
|
-
return callback(err);
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
var branch = CACHED_BRANCHES[cacheKey];
|
|
446
|
-
if (branch) {
|
|
447
|
-
callback(null, Chain(branch));
|
|
448
|
-
return releaseLockFn();
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
var loadFn = function(finished) {
|
|
438
|
+
var loadFn = function(finished) {
|
|
452
439
|
|
|
453
|
-
|
|
440
|
+
Chain(repository).trap(function(e) {
|
|
454
441
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
});
|
|
461
|
-
return false;
|
|
462
|
-
}).readBranch(branchId).then(function() {
|
|
463
|
-
finished(null, this);
|
|
442
|
+
// unable to load branch!
|
|
443
|
+
process.log("Unable to load branch: " + repository._doc + "/" + branchId + ", err: " + e);
|
|
444
|
+
process.log(e);
|
|
445
|
+
finished({
|
|
446
|
+
"message": "Unable to load branch: " + repository._doc + "/" + branchId
|
|
464
447
|
});
|
|
448
|
+
return false;
|
|
449
|
+
}).readBranch(branchId).then(function() {
|
|
450
|
+
finished(null, this);
|
|
451
|
+
});
|
|
465
452
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
loadFn(function(err, branch) {
|
|
453
|
+
};
|
|
469
454
|
|
|
470
|
-
|
|
471
|
-
{
|
|
472
|
-
// try again...
|
|
473
|
-
return loadFn(function(err, branch) {
|
|
455
|
+
loadFn(function(err, branch) {
|
|
474
456
|
|
|
475
|
-
|
|
457
|
+
if (err || !branch)
|
|
458
|
+
{
|
|
459
|
+
// try again...
|
|
460
|
+
return loadFn(function(err, branch) {
|
|
476
461
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
return releaseLockFn();
|
|
481
|
-
}
|
|
462
|
+
if (err) {
|
|
463
|
+
return callback(err);
|
|
464
|
+
}
|
|
482
465
|
|
|
483
|
-
|
|
466
|
+
// success!
|
|
484
467
|
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
callback(null, branch);
|
|
489
|
-
|
|
490
|
-
// release the lock
|
|
491
|
-
return releaseLockFn();
|
|
492
|
-
});
|
|
493
|
-
}
|
|
468
|
+
// store in cache
|
|
469
|
+
CACHED_BRANCHES[cacheKey] = branch;
|
|
494
470
|
|
|
495
|
-
|
|
496
|
-
|
|
471
|
+
return callback(null, branch);
|
|
472
|
+
});
|
|
473
|
+
}
|
|
497
474
|
|
|
498
|
-
|
|
499
|
-
|
|
475
|
+
// store in cache
|
|
476
|
+
CACHED_BRANCHES[cacheKey] = branch;
|
|
500
477
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
});
|
|
478
|
+
// do the callback
|
|
479
|
+
return callback(null, branch);
|
|
504
480
|
});
|
|
505
481
|
};
|
|
506
482
|
|
|
@@ -205,9 +205,15 @@ exports = module.exports = function()
|
|
|
205
205
|
data.branchId = process.env.CLOUDCMS_RUNTIME_BRANCH_ID;
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
+
// don't bother writing if we don't have anything to persist
|
|
209
|
+
if (!data.releaseId && !data.branchId)
|
|
210
|
+
{
|
|
211
|
+
req.runtime = data;
|
|
212
|
+
next();
|
|
213
|
+
}
|
|
214
|
+
|
|
208
215
|
// create runtime file
|
|
209
216
|
store.writeFile("runtime.json", JSON.stringify(data, null, " "), function(err) {
|
|
210
|
-
|
|
211
217
|
req.runtime = data;
|
|
212
218
|
next();
|
|
213
219
|
});
|
package/package.json
CHANGED
package/server/index.js
CHANGED
|
@@ -1162,16 +1162,24 @@ var createHttpServer = function(app, done)
|
|
|
1162
1162
|
}
|
|
1163
1163
|
|
|
1164
1164
|
// request timeout
|
|
1165
|
-
var requestTimeout =
|
|
1165
|
+
var requestTimeout = 120000; // 2 minutes
|
|
1166
1166
|
if (process.configuration && process.configuration.timeout)
|
|
1167
1167
|
{
|
|
1168
1168
|
requestTimeout = process.configuration.timeout;
|
|
1169
1169
|
}
|
|
1170
|
-
httpServer.setTimeout(requestTimeout)
|
|
1170
|
+
httpServer.setTimeout(requestTimeout, function(socket) {
|
|
1171
|
+
try { socket.end(); } catch (e) { }
|
|
1172
|
+
try { socket.destroy(); } catch (e) { }
|
|
1173
|
+
});
|
|
1171
1174
|
|
|
1172
1175
|
// socket
|
|
1173
1176
|
httpServer.on("connection", function (socket) {
|
|
1174
1177
|
socket.setNoDelay(true);
|
|
1178
|
+
|
|
1179
|
+
socket.setTimeout(requestTimeout, function(socket) {
|
|
1180
|
+
try { socket.end(); } catch (e) { }
|
|
1181
|
+
try { socket.destroy(); } catch (e) { }
|
|
1182
|
+
});
|
|
1175
1183
|
});
|
|
1176
1184
|
|
|
1177
1185
|
done(null, httpServer);
|
package/util/cloudcms.js
CHANGED
|
@@ -508,25 +508,12 @@ exports = module.exports = function()
|
|
|
508
508
|
|
|
509
509
|
}
|
|
510
510
|
});
|
|
511
|
-
// }).on('error', function (e) {
|
|
512
|
-
// failFast(tempStream, e);
|
|
513
|
-
//
|
|
514
|
-
// }).on('end', function (e) {
|
|
515
|
-
//
|
|
516
|
-
// // ensure stream is closed
|
|
517
|
-
// closeWriteStream(tempStream);
|
|
518
|
-
//
|
|
519
|
-
// }).end();
|
|
520
511
|
|
|
521
512
|
tempStream.on("error", function (e) {
|
|
522
513
|
process.log("Temp stream errored out");
|
|
523
514
|
process.log(e);
|
|
524
515
|
|
|
525
516
|
failFast(tempStream, e);
|
|
526
|
-
|
|
527
|
-
// ensure stream is closed
|
|
528
|
-
//closeWriteStream(tempStream);
|
|
529
|
-
|
|
530
517
|
});
|
|
531
518
|
});
|
|
532
519
|
|
package/util/proxy-factory.js
CHANGED
|
@@ -34,49 +34,24 @@ var acquireProxyHandler = exports.acquireProxyHandler = function(proxyTarget, pa
|
|
|
34
34
|
return callback(null, _cachedHandler);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
// // take out a thread lock
|
|
38
|
-
// _LOCK(["acquireProxyHandler", name], function(err, releaseLockFn) {
|
|
39
|
-
//
|
|
40
|
-
// if (err)
|
|
41
|
-
// {
|
|
42
|
-
// console.log("Failed to acquire proxy handler: " + name + ", err: ", err);
|
|
43
|
-
//
|
|
44
|
-
// // failed to acquire lock
|
|
45
|
-
// return callback(err);
|
|
46
|
-
// }
|
|
47
|
-
//
|
|
48
|
-
// // second check to make sure another thread didn't create the handler in the meantime
|
|
49
|
-
// _cachedHandler = NAMED_PROXY_HANDLERS_CACHE[name];
|
|
50
|
-
// if (_cachedHandler)
|
|
51
|
-
// {
|
|
52
|
-
// releaseLockFn();
|
|
53
|
-
// return callback(null, _cachedHandler);
|
|
54
|
-
// }
|
|
55
|
-
//
|
|
56
|
-
// // create the proxy handler and cache it into LRU cache
|
|
57
|
-
// //console.log("Acquiring proxy handler: " + name + ", for target: " + proxyTarget + " and prefix: " + pathPrefix);
|
|
58
|
-
// _cachedHandler = createProxyHandler(proxyTarget, pathPrefix);
|
|
59
|
-
//
|
|
60
|
-
// // store back into LRU cache
|
|
61
|
-
// NAMED_PROXY_HANDLERS_CACHE[name] = _cachedHandler;
|
|
62
|
-
//
|
|
63
|
-
// releaseLockFn();
|
|
64
|
-
// callback(null, _cachedHandler);
|
|
65
|
-
// });
|
|
66
|
-
|
|
67
37
|
_cachedHandler = NAMED_PROXY_HANDLERS_CACHE[name] = createProxyHandler(proxyTarget, pathPrefix);
|
|
68
38
|
|
|
69
39
|
callback(null, _cachedHandler);
|
|
70
40
|
};
|
|
71
41
|
|
|
72
42
|
|
|
73
|
-
|
|
74
|
-
|
|
75
43
|
var createProxyHandler = function(proxyTarget, pathPrefix)
|
|
76
44
|
{
|
|
77
45
|
const { proxy, close } = require('fast-proxy')({
|
|
78
46
|
base: proxyTarget,
|
|
79
47
|
cacheURLs: 0,
|
|
48
|
+
keepAlive: true,
|
|
49
|
+
keepAliveMsecs: process.defaultKeepAliveMs,
|
|
50
|
+
maxSockets: 2048,
|
|
51
|
+
maxFreeSockets: 64,
|
|
52
|
+
timeout: process.defaultHttpTimeoutMs,
|
|
53
|
+
freeSocketTimeout: 30000
|
|
54
|
+
|
|
80
55
|
//http2: true,
|
|
81
56
|
//undici: true
|
|
82
57
|
});
|