mongod ERROR: child process failed, exited with error number 14 - linux

I got the following error when I tried to restart the db after the server (a linux VM) rebooted without shutting down the db first. I saw someone posted the same error over one and half years ago, but the solution proposed there didn't apply to my situation because it's not a yaml config issue (the db had been running for quite a while). I also included the log at the end. Thanks for any help.
sudo mongod --fork --logpath /nas/is1/bin/mongodb/data/db/mongodb.log --dbpath /nas/is1/bin/mongodb/data/db
about to fork child process, waiting until server is ready for connections.
forked process: 20085
ERROR: child process failed, exited with error number 14
output in the log file.
2017-01-19T15:33:45.286-0500 I CONTROL [initandlisten] MongoDB starting : pid=20085 port=27017 dbpath=/data/mongodb/data/db 64-bit host=raboso
2017-01-19T15:33:45.286-0500 I CONTROL [initandlisten] db version v3.2.1
2017-01-19T15:33:45.286-0500 I CONTROL [initandlisten] git version: a14d55980c2cdc565d4704a7e3ad37e4e535c1b2
2017-01-19T15:33:45.286-0500 I CONTROL [initandlisten] allocator: tcmalloc
2017-01-19T15:33:45.286-0500 I CONTROL [initandlisten] modules: none
2017-01-19T15:33:45.286-0500 I CONTROL [initandlisten] build environment:
2017-01-19T15:33:45.286-0500 I CONTROL [initandlisten] distarch: x86_64
2017-01-19T15:33:45.286-0500 I CONTROL [initandlisten] target_arch: x86_64
2017-01-19T15:33:45.286-0500 I CONTROL [initandlisten] options: { processManagement: { fork: true }, storage: { dbPath: "/data/mongodb/data/db" }, systemLog: { destination: "file", path: "/data/mongodb/data/db/mongodb.log" } }
2017-01-19T15:33:45.329-0500 I - [initandlisten] Detected data files in /data/mongodb/data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-01-19T15:33:45.346-0500 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=112G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-01-19T15:33:54.009-0500 E STORAGE [initandlisten] WiredTiger (-31802) [1484858034:9041][20085:0x7f0fcf72bcc0], file:sizeStorer.wt, WT_SESSION.open_cursor: sizeStorer.wt read error: failed to read 4096 bytes at offset 49152: WT_ERROR: non-specific WiredTiger error
2017-01-19T15:33:54.011-0500 I - [initandlisten] Invariant failure: ret resulted in status UnknownError -31802: WT_ERROR: non-specific WiredTiger error at src/mongo/db/storage/wiredtiger/wiredtiger_size_storer.cpp 67
2017-01-19T15:33:54.022-0500 I CONTROL [initandlisten]
0x12cf722 0x127ac14 0x1266dad 0x1058db2 0x10425ea 0x103f540 0xf679a8 0x93bc91 0x9403b9 0x7f0fce33bb35 0x939829
----- BEGIN BACKTRACE -----
{"backtrace":[{"b":"400000","o":"ECF722"},{"b":"400000","o":"E7AC14"},{"b":"400000",
"o":"E66DAD"},{"b":"400000","o":"C58DB2"},{"b":"400000","o":"C425EA"},{"b":"400000",
"o":"C3F540"},{"b":"400000","o":"B679A8"},{"b":"400000","o":"53BC91"},{"b":"400000",
"o":"5403B9"},{"b":"7F0FCE31A000","o":"21B35"},{"b":"400000","o":"539829"}],
"processInfo":{ "mongodbVersion" : "3.2.1", "gitVersion" : "a14d55980c2cdc565d4704a7e3ad37e4e535c1b2",
"compiledModules" : [], "uname" : { "sysname" : "Linux", "release" : "3.10.0-514.2.2.el7.x86_64",
"version" : "#1 SMP Wed Nov 16 13:15:13 EST 2016", "machine" : "x86_64" },
"somap" : [ { "elfType" : 2, "b" : "400000" }, { "b" : "7FFEF9CD5000", "elfType" : 3 },
{ "b" : "7F0FCF31B000", "path" : "/lib64/librt.so.1", "elfType" : 3 }, { "b" : "7F0FCF117000",
"path" : "/lib64/libdl.so.2", "elfType" : 3 }, { "b" : "7F0FCEE0F000", "path" : "/lib64/libstdc++.so.6",
"elfType" : 3 }, { "b" : "7F0FCEB0D000", "path" : "/lib64/libm.so.6", "elfType" : 3 },
{ "b" : "7F0FCE8F7000", "path" : "/lib64/libgcc_s.so.1", "elfType" : 3 }, { "b" : "7F0FCE6DB000",
"path" : "/lib64/libpthread.so.0", "elfType" : 3 }, { "b" : "7F0FCE31A000", "path" : "/lib64/libc.so.6",
"elfType" : 3 }, { "b" : "7F0FCF523000", "path" : "/lib64/ld-linux-x86-64.so.2", "elfType" : 3 } ] }}
mongod(_ZN5mongo15printStackTraceERSo+0x32) [0x12cf722]
mongod(_ZN5mongo10logContextEPKc+0x134) [0x127ac14]
mongod(_ZN5mongo17invariantOKFailedEPKcRKNS_6StatusES1_j+0xAD) [0x1266dad]
mongod(_ZN5mongo20WiredTigerSizeStorerC1EP15__wt_connectionRKSs+0x222) [0x1058db2]
mongod(_ZN5mongo18WiredTigerKVEngineC2ERKSsS2_S2_mbbb+0x6DA) [0x10425ea]
mongod(+0xC3F540) [0x103f540]
mongod(_ZN5mongo20ServiceContextMongoD29initializeGlobalStorageEngineEv+0x588) [0xf679a8]
mongod(_ZN5mongo13initAndListenEi+0x321) [0x93bc91]
mongod(main+0x149) [0x9403b9]
libc.so.6(__libc_start_main+0xF5) [0x7f0fce33bb35]
mongod(+0x539829) [0x939829]
----- END BACKTRACE -----
2017-01-19T15:33:54.022-0500 I - [initandlisten]
***aborting after invariant() failure

If a system running MongoDB with the WiredTiger storage engine crashes or experiences an unclean shutdown, MongoDB may not be able to recover data files on restart if the crash/shutdown interrupted a WiredTiger checkpoint.
MongoDB cannot automatically recover data files on restart.
Sadly there is no workaround. Either you can restore data from backups or resync from another replica set member.

WiredTiger (-31802) [1484858034:9041][20085:0x7f0fcf72bcc0], file:sizeStorer.wt, WT_SESSION.open_cursor: sizeStorer.wt read error: failed to read 4096 bytes at offset 49152: WT_ERROR: non-specific WiredTiger error
Above error suggets that your database has been corrupted. Repair it by:
mongod --repair --dbpath /path/to/data/db

Related

How to initiate mongodb replica set using nodejs

I'm running the following code for mongodb replica set initialization:
try {
const mongoClient: MongoClient = new MongoClient(process.env.MONGODB_URI || 'mongodb://mongodb:27017', {replicaSet: "rs0"});
const mongoDb: Db = new Db(mongoClient, "admin");
const response = await mongoDb.admin().command({ replSetInitiate: {} }, {})
} catch (error) {
console.error(error)
}
However getting an error:
MongoServerSelectionError: Server selection timed out after 30000 ms
And so for any other command
rs.initiate() from mongosh solves the problem for other commands, but I need a way to initiate replica set during the runtime in nodejs
It turns out some kind of deadlock, replica set initialization requires connection to DB, and connection to DB requires replica set initialization
mongodb version: 4.2,
mongodb npm package version: 4.10.0
UPD: startup logs added
I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
W ASIO [main] No TransportLayer configured during NetworkInterface startup
I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=mongodb
I CONTROL [initandlisten] db version v4.2.22
I CONTROL [initandlisten] git version: eef44cd56b1cc11e5771736fa6cb3077e0228be2
I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1 11 Sep 2018
I CONTROL [initandlisten] allocator: tcmalloc
I CONTROL [initandlisten] modules: none
I CONTROL [initandlisten] build environment:
I CONTROL [initandlisten] distmod: ubuntu1804
I CONTROL [initandlisten] distarch: x86_64
I CONTROL [initandlisten] target_arch: x86_64
I CONTROL [initandlisten] options: { net: { bindIp: "*" }, replication: { replSet: "rs0" } }
I STORAGE [initandlisten]
I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=12243M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
I STORAGE [initandlisten] WiredTiger message [1665036200:416720][1:0x7f8baf77eb00], txn-recover: Set global recovery timestamp: (0, 0)
I RECOVERY [initandlisten] WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)
I STORAGE [initandlisten] No table logging settings modifications are required for existing WiredTiger tables. Logging enabled? 0
I STORAGE [initandlisten] Timestamp monitor starting
I CONTROL [initandlisten]
I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
I CONTROL [initandlisten]
I CONTROL [initandlisten]
I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
I CONTROL [initandlisten] ** We suggest setting it to 'never'
I CONTROL [initandlisten]
I STORAGE [initandlisten] Flow Control is enabled on this deployment.
I STORAGE [initandlisten] createCollection: local.startup_log with generated UUID: bd81a433-4ec3-48df-b67d-e37c47c24343 and options: { capped: true, size: 10485760 }
I INDEX [initandlisten] index build: done building index _id_ on ns local.startup_log
I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
I STORAGE [initandlisten] createCollection: local.replset.oplogTruncateAfterPoint with generated UUID: 0aa8d2bd-f0c7-4703-8641-a029cde77b48 and options: {}
I INDEX [initandlisten] index build: done building index _id_ on ns local.replset.oplogTruncateAfterPoint
I STORAGE [initandlisten] createCollection: local.replset.minvalid with generated UUID: 370687e5-79d9-4365-b6e0-b05cd4ab31f0 and options: {}
I INDEX [initandlisten] index build: done building index _id_ on ns local.replset.minvalid
I STORAGE [initandlisten] createCollection: local.replset.election with generated UUID: 4f892389-a4c5-4abb-b8e6-d5bdb282dc9f and options: {}
I INDEX [initandlisten] index build: done building index _id_ on ns local.replset.election
I REPL [initandlisten] Did not find local initialized voted for document at startup.
I REPL [initandlisten] Did not find local Rollback ID document at startup. Creating one.
I STORAGE [initandlisten] createCollection: local.system.rollback.id with generated UUID: 1049c565-09b2-4bf9-95c3-ade2162773f5 and options: {}
I INDEX [initandlisten] index build: done building index _id_ on ns local.system.rollback.id
I REPL [initandlisten] Initialized the rollback ID to 1
I REPL [initandlisten] Did not find local replica set configuration document at startup; NoMatchingDocument: Did not find replica set configuration document in local.system.replset
I CONTROL [LogicalSessionCacheRefresh] Sessions collection is not set up; waiting until next sessions refresh interval: Replication has not yet been configured
I NETWORK [listener] Listening on /tmp/mongodb-27017.sock
I NETWORK [listener] Listening on 0.0.0.0
I CONTROL [LogicalSessionCacheReap] Sessions collection is not set up; waiting until next sessions reap interval: config.system.sessions does not exist
I NETWORK [listener] waiting for connections on port 27017
I NETWORK [listener] connection accepted from 172.21.0.7:56492 #1 (1 connection now open)
I NETWORK [conn1] received client metadata from 172.21.0.7:56492 conn1: { driver: { name: "nodejs", version: "3.7.3" }, os: { type: "Linux", name: "linux", architecture: "x64", version: "5.10.16.3-microsoft-standard-WSL2" }, platform: "'Node.js v12.22.7, LE (legacy)" }
directConnection option was missing
try {
const mongoClient: MongoClient = new MongoClient(process.env.MONGODB_RO_URI || 'mongodb://mongodb:27017', {replicaSet: "rs0", directConnection: true});
const mongoDb: Db = new Db(mongoClient, "admin");
const response = await mongoDb.admin().command({ replSetInitiate: {} }, {})
} catch (error) {
console.error(error)
}
You're most likely hitting the timeout shown here:
https://mongodb.github.io/node-mongodb-native/3.6/reference/faq/
const mongoClient: MongoClient = new MongoClient(process.env.MONGODB_URI || 'mongodb://mongodb:27017', {replicaSet: "rs0", connectTimeoutMS: SET_VALUE_HERE});

Can't render documents from Mongo DB (w/ Mongoose, Node and Express)

I have a test-website running on localhost:3000 with a local mongo db as well. It was working fine when all of a sudden I can't seem to get the documents from the db to render on the website any more. There's a bunch of things already working which I'll list first:
I have installed mongo, mongoose and all other required packages both globally and saved in the package.json (perhaps there has been an update to one of the packages and now the local and global version don't match?).
The database exists (on /data) and has documents which I can find when I run 'mongo' in my terminal.
The connection works both in the app.js file (code below) as well as throwing no error when I run 'mongod'.
I even tried it with a brand new db which containted a new collection and for which I made a test page that should render the files. This is the code that I'm showing as it is much simpler than my website with multiple pages (and lots of Node). This test website is also not working.
I'm using EJS to render the javascript on the website but that does not seem to be the problem.
Frustrating the hell out of me!
Now for some code:
TEST APP.JS
const express = require('express');
const app = express();
const mongo = require('mongo');
const mongoose = require('mongoose');
const path = require('path');
const bodyParser = require('body-parser');
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: true }));
mongoose.connect('mongodb://localhost:27017/ScaryMovieNight', {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true
},
function(err) {
if (err) {
console.log(err);
} else {
console.info('connection ok');
}
});
let Schema = mongoose.Schema;
let testSchema = new Schema ({
title: String
});
let Test = mongoose.model('test', testSchema);
app.get('/test', (req, res) => {
Test.find()
.then(picture => {
res.render('test', {movies: picture})
// Also tried res.json(picture) which returns an empty object
})
.catch(err => {
console.log(err)
})
});
app.listen(3000, () => {
console.log('Test is working on port 3000.')
});
TEST PAGE
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
This is test.
<li>
<% movies.forEach(picture => { %>
<ul>Test Title Is : <%= picture.title %></ul>
<% }) %>
</li>
</body>
</html>
MONGO DB IN THE SHELL
> show dbs
ScaryMovieNight 0.000GB
admin 0.000GB
config 0.000GB
local 0.000GB
> use ScaryMovieNight
switched to db ScaryMovieNight
> db.movies.find()
{ "_id" : ObjectId("5ee0958d569eb17e88a8c2aa"), "title" : "Evil Dead 2", "__v" : 0 }
{ "_id" : ObjectId("5ee177496a0f9090f811be71"), "title" : "Green Room", "__v" : 0 }
{ "_id" : ObjectId("5ee26794d27e52a16c3ab910"), "title" : "Alien", "__v" : 0 }
{ "_id" : ObjectId("5ee7fee3f1a65aac3aa87dcb"), "title" : "Aliens" }
MONGOD CONNECTION
Macintosh-14:TestDB dariustimmer$ mongod
2020-06-19T00:30:50.643+0200 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-06-19T00:30:50.683+0200 W ASIO [main] No TransportLayer configured during NetworkInterface startup
2020-06-19T00:30:50.688+0200 I CONTROL [initandlisten] MongoDB starting : pid=8121 port=27017 dbpath=/data/db 64-bit host=Macintosh-14.local
2020-06-19T00:30:50.688+0200 I CONTROL [initandlisten] db version v4.2.7
2020-06-19T00:30:50.688+0200 I CONTROL [initandlisten] git version: 51d9fe12b5d19720e72dcd7db0f2f17dd9a19212
2020-06-19T00:30:50.688+0200 I CONTROL [initandlisten] allocator: system
2020-06-19T00:30:50.688+0200 I CONTROL [initandlisten] modules: none
2020-06-19T00:30:50.688+0200 I CONTROL [initandlisten] build environment:
2020-06-19T00:30:50.688+0200 I CONTROL [initandlisten] distarch: x86_64
2020-06-19T00:30:50.688+0200 I CONTROL [initandlisten] target_arch: x86_64
2020-06-19T00:30:50.688+0200 I CONTROL [initandlisten] options: {}
2020-06-19T00:30:50.689+0200 I STORAGE [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2020-06-19T00:30:50.690+0200 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=3584M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
2020-06-19T00:30:51.986+0200 I STORAGE [initandlisten] WiredTiger message [1592519451:986196][8121:0x7fffa59013c0], txn-recover: Recovering log 11 through 12
2020-06-19T00:30:52.254+0200 I STORAGE [initandlisten] WiredTiger message [1592519452:254712][8121:0x7fffa59013c0], txn-recover: Recovering log 12 through 12
2020-06-19T00:30:52.506+0200 I STORAGE [initandlisten] WiredTiger message [1592519452:506030][8121:0x7fffa59013c0], txn-recover: Main recovery loop: starting at 11/42368 to 12/256
2020-06-19T00:30:52.635+0200 I STORAGE [initandlisten] WiredTiger message [1592519452:635022][8121:0x7fffa59013c0], txn-recover: Recovering log 11 through 12
2020-06-19T00:30:52.797+0200 I STORAGE [initandlisten] WiredTiger message [1592519452:797815][8121:0x7fffa59013c0], txn-recover: Recovering log 12 through 12
2020-06-19T00:30:52.854+0200 I STORAGE [initandlisten] WiredTiger message [1592519452:854550][8121:0x7fffa59013c0], txn-recover: Set global recovery timestamp: (0, 0)
2020-06-19T00:30:53.496+0200 I RECOVERY [initandlisten] WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)
2020-06-19T00:30:53.506+0200 I STORAGE [initandlisten] Timestamp monitor starting
2020-06-19T00:30:53.509+0200 I CONTROL [initandlisten]
2020-06-19T00:30:53.509+0200 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-06-19T00:30:53.509+0200 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2020-06-19T00:30:53.510+0200 I CONTROL [initandlisten]
2020-06-19T00:30:53.510+0200 I CONTROL [initandlisten] ** WARNING: This server is bound to localhost.
2020-06-19T00:30:53.510+0200 I CONTROL [initandlisten] ** Remote systems will be unable to connect to this server.
2020-06-19T00:30:53.510+0200 I CONTROL [initandlisten] ** Start the server with --bind_ip <address> to specify which IP
2020-06-19T00:30:53.510+0200 I CONTROL [initandlisten] ** addresses it should serve responses from, or with --bind_ip_all to
2020-06-19T00:30:53.510+0200 I CONTROL [initandlisten] ** bind to all interfaces. If this behavior is desired, start the
2020-06-19T00:30:53.510+0200 I CONTROL [initandlisten] ** server with --bind_ip 127.0.0.1 to disable this warning.
2020-06-19T00:30:53.510+0200 I CONTROL [initandlisten]
2020-06-19T00:30:53.520+0200 I SHARDING [initandlisten] Marking collection local.system.replset as collection version: <unsharded>
2020-06-19T00:30:53.522+0200 I STORAGE [initandlisten] Flow Control is enabled on this deployment.
2020-06-19T00:30:53.522+0200 I SHARDING [initandlisten] Marking collection admin.system.roles as collection version: <unsharded>
2020-06-19T00:30:53.522+0200 I SHARDING [initandlisten] Marking collection admin.system.version as collection version: <unsharded>
2020-06-19T00:30:53.525+0200 I SHARDING [initandlisten] Marking collection local.startup_log as collection version: <unsharded>
2020-06-19T00:30:53.525+0200 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2020-06-19T00:30:53.526+0200 I SHARDING [LogicalSessionCacheRefresh] Marking collection config.system.sessions as collection version: <unsharded>
2020-06-19T00:30:53.527+0200 I NETWORK [listener] Listening on /tmp/mongodb-27017.sock
2020-06-19T00:30:53.527+0200 I NETWORK [listener] Listening on 127.0.0.1
2020-06-19T00:30:53.527+0200 I NETWORK [listener] waiting for connections on port 27017
2020-06-19T00:30:53.527+0200 I SHARDING [LogicalSessionCacheReap] Marking collection config.transactions as collection version: <unsharded>
2020-06-19T00:30:54.003+0200 I SHARDING [ftdc] Marking collection local.oplog.rs as collection version: <unsharded>
2020-06-19T00:30:57.328+0200 I NETWORK [listener] connection accepted from 127.0.0.1:50163 #1 (1 connection now open)
2020-06-19T00:30:57.329+0200 I NETWORK [conn1] received client metadata from 127.0.0.1:50163 conn1: { driver: { name: "nodejs|Mongoose", version: "3.5.9" }, os: { type: "Darwin", name: "darwin", architecture: "x64", version: "16.7.0" }, platform: "'Node.js v12.18.0, LE (unified)", version: "3.5.9|5.9.19" }
I have tried a million things but can't seem to render these movie titles any more. Any help would be greatly appreciated it's been a few very frustrating days..
In mongoose, you have called your model "test", but the collection in MongoDb is called "movies". So your search returns nothing. Try changing your code in your express app:
let Test = mongoose.model('Movie', testSchema);
(This is the minimal change to make it work. If you want to further develop this app, it would be better to call everything 'Movie'.)

Multicontainer Docker application failing on deploy

So I have a problem with deploying my application to elastic beanstalk at Amazon. My application is a multi-container Docker application that includes node server and mongoDB inside of it. Somehow the application crashes every time and I get this bizarre error from mongoDB.
Error is as follows:
18-05-28T12:53:02.510+0000 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 3867 processes, 32864 files. Number of processes should be at least 16432 : 0.5 times number of files.
2018-05-28T12:53:02.540+0000 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2018-05-28T12:53:02.541+0000 I NETWORK [initandlisten] waiting for connections on port 27017
2018-05-28T12:53:03.045+0000 I CONTROL [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends
2018-05-28T12:53:03.045+0000 I NETWORK [signalProcessingThread] shutdown: going to close listening sockets...
2018-05-28T12:53:03.045+0000 I NETWORK [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock
2018-05-28T12:53:03.045+0000 I FTDC [signalProcessingThread] Shutting down full-time diagnostic data capture
2018-05-28T12:53:03.047+0000 I STORAGE [signalProcessingThread] WiredTigerKVEngine shutting down
2018-05-28T12:53:03.161+0000 I STORAGE [signalProcessingThread] shutdown: removing fs lock...
2018-05-28T12:53:03.161+0000 I CONTROL [signalProcessingThread] now exiting
2018-05-28T12:53:03.161+0000 I CONTROL [signalProcessingThread] shutting down with code:0
This is my Dockerrun.aws.json file:
{
"AWSEBDockerrunVersion": 2,
"volumes":[
{
"name": "mongo-app",
"host": {
"sourcePath": "/var/app/mongo-app"
}
},
{
"name": "some-api",
"host": {
"sourcePath": "/var/app/some-api"
}
}
],
"containerDefinitions": [
{
"name": "mongo-app",
"image": "mongo:latest",
"memory": 128,
"portMappings": [
{
"hostPort": 27017,
"containerPort": 27017
}
],
"mountPoints": [
{
"sourceVolume": "mongo-app",
"containerPath": "/data/db"
}
]
},
{
"name": "server",
"image": "node:8.11",
"memory": 128,
"portMappings": [
{
"hostPort": 80,
"containerPort": 8001
}
],
"links": [
"mongo-app"
],
"mountPoints":[
{
"sourceVolume": "some-api",
"containerPath": "/some-data"
}
]
}
]
}
And this is my Dockerfile:
FROM node:8.11
RUN mkdir -p /api
WORKDIR /api
COPY package.json /api
RUN cd /api && npm install
COPY . /api
EXPOSE 8001
CMD ["node", "api/app.js"]
Any Ideas why the application is crashing and does not deploy? It seems to me that the mongoDB is causing the problem but I cant understand or find the root of the problem.
Thank you in advance!
I spent a while trying to figure this out as well.
The solution: Add a mountpoint for "containerPath": "/data/configdb". Mongo expects to be able to write to both /data/db and /data/configdb.
Also, you might want to bump up "memory": 128 for Mongo to something higher.

MongoDB is not reporting to close connections

I am running through the getting started tutorial to evaluate MongoDB for use in production.
Tailing the server logs it showed the following: in the last 5 lines mongod reports it is closing connections but the count for the number of connections open is not decreasing. Is this expected behaviour?
$ tail -f /usr/local/var/log/mongodb/mongo.log
2015-11-29T15:10:13.425+0000 I JOURNAL [journal writer] Journal writer thread started
2015-11-29T15:10:13.425+0000 I CONTROL [initandlisten] MongoDB starting : pid=86710 port=27017 dbpath=/usr/local/var/mongodb 64-bit host=As-MacBook-Air.local
2015-11-29T15:10:13.425+0000 I CONTROL [initandlisten]
2015-11-29T15:10:13.425+0000 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2015-11-29T15:10:13.425+0000 I CONTROL [initandlisten] db version v3.0.7
2015-11-29T15:10:13.425+0000 I CONTROL [initandlisten] git version: nogitversion
2015-11-29T15:10:13.425+0000 I CONTROL [initandlisten] build info: Darwin As-MacBook-Air.local 13.4.0 Darwin Kernel Version 13.4.0: Wed Mar 18 16:20:14 PDT 2015; root:xnu-2422.115.14~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
2015-11-29T15:10:13.425+0000 I CONTROL [initandlisten] allocator: system
2015-11-29T15:10:13.425+0000 I CONTROL [initandlisten] options: { config: "/usr/local/etc/mongod.conf", net: { bindIp: "127.0.0.1" }, storage: { dbPath: "/usr/local/var/mongodb" }, systemLog: { destination: "file", logAppend: true, path: "/usr/local/var/log/mongodb/mongo.log" } }
2015-11-29T15:10:13.435+0000 I NETWORK [initandlisten] waiting for connections on port 27017
2015-11-29T15:14:21.158+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52667 #1 (1 connection now open)
2015-11-29T15:14:21.169+0000 I NETWORK [conn1] end connection 127.0.0.1:52667 (0 connections now open)
2015-11-29T15:14:21.175+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52668 #2 (1 connection now open)
2015-11-29T15:14:21.176+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52669 #3 (2 connections now open)
2015-11-29T15:14:21.176+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52670 #4 (3 connections now open)
2015-11-29T15:14:21.176+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52671 #5 (4 connections now open)
2015-11-29T15:14:21.179+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52672 #6 (5 connections now open)
2015-11-29T15:14:21.183+0000 I NETWORK [conn2] end connection 127.0.0.1:52668 (4 connections now open)
2015-11-29T15:14:21.184+0000 I NETWORK [conn3] end connection 127.0.0.1:52669 (3 connections now open)
2015-11-29T15:14:21.184+0000 I NETWORK [conn4] end connection 127.0.0.1:52670 (2 connections now open)
2015-11-29T15:14:21.184+0000 I NETWORK [conn5] end connection 127.0.0.1:52671 (1 connection now open)
2015-11-29T15:14:21.184+0000 I NETWORK [conn6] end connection 127.0.0.1:52672 (0 connections now open)
2015-11-29T15:25:39.136+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52799 #7 (1 connection now open)
2015-11-29T15:25:39.137+0000 I NETWORK [conn7] end connection 127.0.0.1:52799 (0 connections now open)
2015-11-29T15:25:39.142+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52800 #8 (1 connection now open)
2015-11-29T15:25:39.142+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52801 #9 (2 connections now open)
2015-11-29T15:25:39.144+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52802 #10 (3 connections now open)
2015-11-29T15:25:39.144+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52803 #11 (4 connections now open)
2015-11-29T15:25:39.145+0000 I NETWORK [initandlisten] connection accepted from 127.0.0.1:52804 #12 (5 connections now open)
2015-11-29T15:25:39.153+0000 I INDEX [conn9] allocating new ns file /usr/local/var/mongodb/test.ns, filling with zeroes...
2015-11-29T15:25:39.209+0000 I STORAGE [FileAllocator] allocating new datafile /usr/local/var/mongodb/test.0, filling with zeroes...
2015-11-29T15:25:39.209+0000 I STORAGE [FileAllocator] creating directory /usr/local/var/mongodb/_tmp
2015-11-29T15:25:39.328+0000 I STORAGE [FileAllocator] done allocating datafile /usr/local/var/mongodb/test.0, size: 64MB, took 0.118 secs
2015-11-29T15:25:39.374+0000 I WRITE [conn9] insert test.restaurants query: { address: { street: "2 Avenue", zipcode: "10075", building: "1480", coord: [ -73.9557413, 40.7720266 ] }, borough: "Manhattan", cuisine: "Italian", grades: [ { date: new Date(1412121600000), grade: "A", score: 11 }, { date: new Date(1389830400000), grade: "B", score: 17 } ], name: "Vella", restaurant_id: "41704620", _id: ObjectId('565b18f333b46874536e90de') } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, MMAPV1Journal: { acquireCount: { w: 8 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 179 } }, Database: { acquireCount: { w: 1, W: 1 } }, Collection: { acquireCount: { W: 1 } }, Metadata: { acquireCount: { W: 4 } } } 221ms
2015-11-29T15:25:39.374+0000 I COMMAND [conn9] command test.$cmd command: insert { insert: "restaurants", documents: [ { address: { street: "2 Avenue", zipcode: "10075", building: "1480", coord: [ -73.9557413, 40.7720266 ] }, borough: "Manhattan", cuisine: "Italian", grades: [ { date: new Date(1412121600000), grade: "A", score: 11 }, { date: new Date(1389830400000), grade: "B", score: 17 } ], name: "Vella", restaurant_id: "41704620", _id: ObjectId('565b18f333b46874536e90de') } ], ordered: true } keyUpdates:0 writeConflicts:0 numYields:0 reslen:40 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, MMAPV1Journal: { acquireCount: { w: 8 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 179 } }, Database: { acquireCount: { w: 1, W: 1 } }, Collection: { acquireCount: { W: 1 } }, Metadata: { acquireCount: { W: 4 } } } 221ms
2015-11-29T15:25:39.384+0000 I NETWORK [conn8] end connection 127.0.0.1:52800 (4 connections now open)
2015-11-29T15:25:39.384+0000 I NETWORK [conn9] end connection 127.0.0.1:52801 (4 connections now open)
2015-11-29T15:25:39.384+0000 I NETWORK [conn10] end connection 127.0.0.1:52802 (3 connections now open)
2015-11-29T15:25:39.385+0000 I NETWORK [conn11] end connection 127.0.0.1:52803 (2 connections now open)
2015-11-29T15:25:39.385+0000 I NETWORK [conn12] end connection 127.0.0.1:52804 (2 connections now open)
I started the MongoDB server with:
$ mongod --config /usr/local/etc/mongod.conf
Other details:
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.9.5
BuildVersion: 13F1096
$ mongod -version
db version v3.0.7
git version: nogitversion
$ cat /usr/local/etc/mongod.conf
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
From my experience, MongoDB is holding a queue of connections that it dispenses on request, not each request translates to opening a connection and closing it when response is delivered.
I've experienced a large number of connections when working from multiple services with the same MongoDB and we had to limit within our app the number of created connections and reuse same connections rather than create a new one for each request.
Hope it helps.

Not authorized for query on admin.system.namespaces on mongodb

I start a new mongo instance, create a user, authorize it, but when I run "show collections", the system says that the id is not authorized. I do not know why?
# mongo admin
MongoDB shell version: 2.4.3
connecting to: admin
Server has startup warnings:
Thu May 23 18:23:56.735 [initandlisten]
Thu May 23 18:23:56.735 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Thu May 23 18:23:56.735 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
Thu May 23 18:23:56.735 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
Thu May 23 18:23:56.735 [initandlisten]
> db = db.getSiblingDB("admin")
admin
> db.addUser({user:"sa",pwd:"sa",roles:["userAdminAnyDatabase"]})
{
"user" : "sa",
"pwd" : "75692b1d11c072c6c79332e248c4f699",
"roles" : [
"userAdminAnyDatabase"
],
"_id" : ObjectId("519deedff788eb914bc429b5")
}
> show collections\
Thu May 23 18:26:50.103 JavaScript execution failed: SyntaxError: Unexpected token ILLEGAL
> show collections
Thu May 23 18:26:52.418 JavaScript execution failed: error: {
"$err" : "not authorized for query on admin.system.namespaces",
"code" : 16550
} at src/mongo/shell/query.js:L128
> db.auth("sa","sa")
1
> show collections
Thu May 23 18:27:22.307 JavaScript execution failed: error: {
"$err" : "not authorized for query on admin.system.namespaces",
"code" : 16550
} at src/mongo/shell/query.js:L128
I had the same problem, but I found this tutorial and it helped me.
http://www.hacksparrow.com/mongodb-add-users-and-authenticate.html
use:
db.addUser('sa', 'sa')
instead of
db.addUser({user:"sa",pwd:"sa",roles:["userAdminAnyDatabase"]})
{
"user" : "sa",
"pwd" : "75692b1d11c072c6c79332e248c4f699",
"roles" : [
"userAdminAnyDatabase"
],
"_id" : ObjectId("519deedff788eb914bc429b5")
}
As Robert says, admin users has only rights to admin, not to write in databases.
So you have to create a custom user for your database. There's different ways. I have choose the dbOwner way.
(I use Ubuntu Server, mongo 2.6.3 and Robomongo)
So to do this, fisrt create your admin user like mongo says :
type mongo in your linux shell
and these command in the mongo shell :
use admin
db.createUser({user:"mongoadmin",pwd:"chooseyouradminpassword",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
db.auth("mongoadmin","chooseyouradminpassword")
exit
edit the mongo conf file with :
nano /etc/mongod.conf
You can use vi if nano is not installed.
activate authentication by uncommented/adding these line auth=true
if you want to use Robomongo from other machine change the line bind_ip=127.0.0.1 by bind_ip=0.0.0.0 (maybe you should add more protection in production).
type in linux shell :
service mongod restart
mongo
And in mongo shell :
use admin
db.auth("mongoadmin","pwd:"chooseyouradminpassword")
use doomnewdatabase
db.createUser({user:"doom",pwd:"chooseyourdoompassword",customData:{desc:"Just me as I am"},roles : [{role:"dbOwner",db:"doomnewdatabase"}]})
db.auth("doom","chooseyourdoompassword")
show collections
(customData is not required).
If you want to try if it works, type this in the mongo shell :
db.products.insert( { item: "card", qty: 15 } )
show collections
db.products.find()
Good luck ! Hope it will help you and others !
I have search this informations for hours.
I had the same problem and this is how I solved it:
db = db.getSiblingDB('admin')
db.addUser(
{ user: "mongoadmin",
pwd: "adminpass",
roles: ['clusterAdmin', 'userAdminAnyDatabase', 'readAnyDatabase'] } )
For MongoDB version 2.6 use:
db.createUser(
{
user: "testUser"
pwd: "password",
roles: [{role: "readWrite", db:"yourdatabase"}]
})
See the docs
I solved it like so
for mongoDB 2.6 + currently 3
db.createUser(
{
user: "username",
pwd: "password",
roles: [ { role: "root", db: "admin" } ]
}
)
note that for the role filed instead of userAdminAnyDatabase we use root
I would try granting the read role to the user. userAdminAnyDatabase grants the ability to administer users.

Resources