Details
-
Bug
-
Resolution: Duplicate
-
Critical - P2
-
None
-
4.0.11
-
None
-
None
-
ALL
Description
Hello!
I noticed quite serious issue in your official systemd unit file for MongoDB 4.0.11 in Ubuntu 18.04.
Your current systemd unit file looks like:
[Unit]
|
Description=MongoDB Database Server
|
After=multi-user.target
|
Documentation=https://docs.mongodb.org/manual[Service] |
User=mongodb
|
Group=mongodb
|
EnvironmentFile=-/etc/default/mongod |
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
|
PIDFile=/var/run/mongodb/mongod.pid
|
# file size
|
LimitFSIZE=infinity
|
# cpu time
|
LimitCPU=infinity
|
# virtual memory size
|
LimitAS=infinity
|
# open files
|
LimitNOFILE=64000 |
# processes/threads
|
LimitNPROC=64000 |
# locked memory
|
LimitMEMLOCK=infinity
|
# total threads (user+kernel)
|
TasksMax=infinity
|
TasksAccounting=false# Recommended limits for for mongod as specified in |
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings[Install] |
WantedBy=multi-user.target
|
You may notice two following sections:
After=multi-user.target
|
...
|
[Install]
|
WantedBy=multi-user.target
|
First "After" is not required at all. Systemd will run service on multi-user.target level because you have correct configuration in "Install" section.
And this "After=multi-user.target" dependency causes serious problems for any service which runs on same run level but requires mongodb because it creates dependency cycle which prevents proper loading of application which depend on MongoDB.
It may happen with any application which configured this way:
[Unit]
|
Description=App with MongoDB dependency
|
After=mongod.service
|
|
[Service]
|
Type=forking
|
ExecStart=...
|
PIDFile=...
|
|
[Install]
|
WantedBy=multi-user.target
|
It will cause following issues from systemd perspective:
[ 3.649328] systemd[1]: multi-user.target: Found ordering cycle on app.service/start |
[ 3.658031] systemd[1]: multi-user.target: Found dependency on mongod.service/start |
[ 3.665973] systemd[1]: multi-user.target: Found dependency on multi-user.target/start |
[ 3.674482] systemd[1]: multi-user.target: Job app.service/start deleted to break ordering cycle starting with multi-user.target/start |
Please check this issue. It's quite serious one because it causes issues for any application which depends on MongoDB.
Attachments
Issue Links
- duplicates
-
SERVER-42603 Recent service file change may cause cyclic dependencies
-
- Closed
-