Since mongodb-3.2.0, the server refuses to start with an empty database on i686. This is a log from my package using mongod for tests: + mkdir test_db + mongod --fork --logpath /builddir/build/BUILD/MongoDB-v0.708.4.0/mongod.log --pidfilepath /builddir/build/BUILD/MongoDB-v0.708.4.0/mongod.pid --dbpath /builddir/build/BUILD/MongoDB-v0.708.4.0/test_db/ 2016-02-02T08:20:19.367+0000 I CONTROL [main] 2016-02-02T08:20:19.367+0000 W CONTROL [main] 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. 2016-02-02T08:20:19.367+0000 I CONTROL [main] about to fork child process, waiting until server is ready for connections. forked process: 14456 ERROR: child process failed, exited with error number 100 + test_rc=100 Error: Could not start mongod server + '[' -n 100 ']' + printf 'Error: Could not start mongod server\n' + cat mongod.log 2016-02-02T08:20:19.375+0000 I CONTROL [initandlisten] MongoDB starting : pid=14456 port=27017 dbpath=/builddir/build/BUILD/MongoDB-v0.708.4.0/test_db/ 32-bit host=buildvm-02-nfs.phx2.fedoraproject.org 2016-02-02T08:20:19.375+0000 I CONTROL [initandlisten] db version v3.2.1 2016-02-02T08:20:19.376+0000 I CONTROL [initandlisten] git version: a14d55980c2cdc565d4704a7e3ad37e4e535c1b2 2016-02-02T08:20:19.376+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2f-fips 28 Jan 2016 2016-02-02T08:20:19.376+0000 I CONTROL [initandlisten] allocator: tcmalloc 2016-02-02T08:20:19.376+0000 I CONTROL [initandlisten] modules: none 2016-02-02T08:20:19.376+0000 I CONTROL [initandlisten] build environment: 2016-02-02T08:20:19.376+0000 I CONTROL [initandlisten] distarch: i386 2016-02-02T08:20:19.376+0000 I CONTROL [initandlisten] target_arch: i386 2016-02-02T08:20:19.376+0000 I CONTROL [initandlisten] options: { processManagement: { fork: true, pidFilePath: "/builddir/build/BUILD/MongoDB-v0.708.4.0/mongod.pid" }, storage: { dbPath: "/builddir/build/BUILD/MongoDB-v0.708.4.0/test_db/" }, systemLog: { destination: "file", path: "/builddir/build/BUILD/MongoDB-v0.708.4.0/mongod.log" } } 2016-02-02T08:20:19.409+0000 I STORAGE [initandlisten] exception in initAndListen: 28663 Cannot start server. The default storage engine 'wiredTiger' is not available with this build of mongod. Please specify a different storage engine explicitly, e.g. --storageEngine=mmapv1., terminating 2016-02-02T08:20:19.409+0000 I CONTROL [initandlisten] dbexit: rc: 100 RPM build errors: + exit 1 They error message states the mongod defults to wiredTiger storage that is not supported. I think the server should work with default configuration. Plesse either enable the wiredTiger on i686 or change the default storage to something that is available there. Tested with mongodb-server-3.2.1-3.fc24.i686.
WiredTiger is not supported on 32 bit architectures, so it is not possible to enable it on i686. Also 32 bit builds are deprecated sice 3.2 release. And even 32bit binaries downloaded from mongodb.org don't start with the same error. There is the bug in Fedora! For i686 it is not specified storage.engie option in mongod.conf file. So mongod won't start with default config file. However there is no build option to specify default storage engine on build time (I will ask upstream if I don't miss something). And in my point of view the supported way of using mongod in Fedora is by systemd service (or at least with default config file) and therefore it is not necessary to somehow patch it to change this upstream behavior. Without default config file, there is simple fix - add "--storageEngine=mmapv1" parameter to the mongod command. Are you OK with this?
That's your point of view. My point of view is the executable should be modified to default to a storage that is supported in the architecture. In other words, no, I'm not fine with it.
This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle. Changing version to '24'. More information and reason for this action is here: https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora24#Rawhide_Rebase
(In reply to Petr Pisar from comment #2) > That's your point of view. My point of view is the executable should be > modified to default to a storage that is supported in the architecture. In > other words, no, I'm not fine with it. This is a reason for default configuration. With your POV every maintainer in Fedora could have to change the code of maintained project to hardcode there every value from default configuration file to be able to be able to run executable without any parameters. For example for databases he should hardcode port, listening interface, database path, socket path,... This is not the right way! So I still think this change is not necessary. On the other hand for the backward compatibility it could be better to have default engine working by default since mongod was working this way before.
You already hard-code a default configuration. But the wrong one that leads to a crash.
No no! It is an upstream choice. They decided that storage engine should be configured and they don't want to support others as a default. It is the same as with other options... I am building a new version. For the backward compatibility (I think it is your case too) this is fixed for non x86_64 archs.
Upstream sometimes does wrong decisions. That's the place when distribution steps in and either fixes it or removes it from the distribution. I'm glad you decided to fix it.
mongodb-3.2.3-2.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-150e04ec3b
This bug is fixed in above mentioned update. So please test it... For Fedora rawhide (F25) builds are not done yet. It is because new version of gcc with fix is failing to build.
mongodb-3.2.3-2.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-150e04ec3b
mongodb-3.2.3-2.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.
And we have this bug again with mongodb-server-4.0.0-2.fc29.i686: + mongod --fork --logpath /builddir/build/BUILD/MongoDB-v2.0.1/mongod.log --pidfilepath /builddir/build/BUILD/MongoDB-v2.0.1/mongod.pid --dbpath /builddir/build/BUILD/MongoDB-v2.0.1/test_db/ --smallfiles 2018-07-11T07:26:48.747+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none' 2018-07-11T07:26:48.747+0000 I CONTROL [main] 2018-07-11T07:26:48.747+0000 W CONTROL [main] 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. 2018-07-11T07:26:48.747+0000 I CONTROL [main] about to fork child process, waiting until server is ready for connections. forked process: 24849 ERROR: child process failed, exited with error number 100 To see additional information in this output, start without the "--fork" option. + test_rc=100 Error: Could not start mongod server + '[' -n 100 ']' + printf 'Error: Could not start mongod server\n' + cat mongod.log 2018-07-11T07:26:48.760+0000 I CONTROL [initandlisten] MongoDB starting : pid=24849 port=27017 dbpath=/builddir/build/BUILD/MongoDB-v2.0.1/test_db/ 32-bit host=buildhw-06.phx2.fedoraproject.org 2018-07-11T07:26:48.760+0000 I CONTROL [initandlisten] db version v4.0.0 2018-07-11T07:26:48.760+0000 I CONTROL [initandlisten] git version: nogitversion 2018-07-11T07:26:48.760+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.0h-fips 27 Mar 2018 2018-07-11T07:26:48.761+0000 I CONTROL [initandlisten] allocator: tcmalloc 2018-07-11T07:26:48.761+0000 I CONTROL [initandlisten] modules: none 2018-07-11T07:26:48.761+0000 I CONTROL [initandlisten] build environment: 2018-07-11T07:26:48.761+0000 I CONTROL [initandlisten] distarch: i386 2018-07-11T07:26:48.761+0000 I CONTROL [initandlisten] target_arch: i386 2018-07-11T07:26:48.761+0000 I CONTROL [initandlisten] options: { processManagement: { fork: true, pidFilePath: "/builddir/build/BUILD/MongoDB-v2.0.1/mongod.pid" }, storage: { dbPath: "/builddir/build/BUILD/MongoDB-v2.0.1/test_db/", mmapv1: { smallFiles: true } }, systemLog: { destination: "file", path: "/builddir/build/BUILD/MongoDB-v2.0.1/mongod.log" } } 2018-07-11T07:26:48.761+0000 I STORAGE [initandlisten] exception in initAndListen: Location28663: Cannot start server. The default storage engine 'wiredTiger' is not available with this build of mongod. Please specify a different storage engine explicitly, e.g. --storageEngine=mmapv1., terminating 2018-07-11T07:26:48.761+0000 I NETWORK [initandlisten] shutdown: going to close listening sockets... 2018-07-11T07:26:48.761+0000 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock 2018-07-11T07:26:48.761+0000 I CONTROL [initandlisten] now exiting 2018-07-11T07:26:48.761+0000 I CONTROL [initandlisten] shutting down with code:100
armv7 is affected too.
It should be fixed now. Thanks for reporting it.