[SERVER-19238] Fatal Assertion 16143 when starting MongoDB on PPC64 Created: 01/Jul/15  Updated: 01/Jul/15  Resolved: 01/Jul/15

Status: Closed
Project: Core Server
Component/s: Build
Affects Version/s: 3.0.4
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Anup Halarnkar Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Operating System: ALL
Steps To Reproduce:

1. Download mongodb ver 3.0.4.tar.gz from github and extract
2. Download dependencies scons 2.3.5 and python 2.6+ and install
3. cd into mongo folder
4. Apply patch for WiredTiger WT-1942
5. Run command --> scons all --js-engine=none -j32 --install --prefix=/usr/local/mydir
6. Then run ./mongod . But there is READAHEAD error.
7. Run these commands to get rid of READAHEAD errors
--> blockdev --setra 256 /dev/mydev0
--> blockdev --setra 256 /dev/mydev1
..... and so on
8. Verify the above using these commands
--> blockdev --getra /dev/mydev0
... and so on...
9. Run ./mongod again to get the error shown in log

Participants:

 Description   

System: RHEL 7.1/PPC64LE
MongoDB version: 3.0.4

Summary:
I am able to build ver3.0.4 mongodb server from source on PPC64LE. But, I am not using V8 JS engine for build. The command is:

scons all --js-engine=none -j32 --install --prefix=/usr/local/mydir

After installation, when I execute "./mongod", I get the following error,

Log:

2015-07-01T19:18:51.788+0530 I JOURNAL  [initandlisten] journal dir=/data/db/journal
2015-07-01T19:18:51.789+0530 I JOURNAL  [initandlisten] recover : no journal files present, no recovery needed
2015-07-01T19:18:51.790+0530 I -        [initandlisten] Fatal Assertion 16143
2015-07-01T19:18:51.793+0530 I CONTROL  [initandlisten]
 0x10bf683c 0x10b8c6f0 0x10b68834 0x10b8d758 0x1095b090 0x1095b5f4 0x1095f7f4 0x109559e0 0x10988ee8 0x105f90dc 0x102d41c8 0x1028cd10 0x3fff98214580 0x3fff98214774
----- BEGIN BACKTRACE -----
{"backtrace":[{"b":"10000000","o":"BF683C"},{"b":"10000000","o":"B8C6F0"},{"b":"10000000","o":"B68834"},{"b":"10000000","o":"B8D758"},{"b":"10000000","o":"95B090"},{"b":"10000000","o":"95B5F4"},{"b":"10000000","o":"95F7F4"},{"b":"10000000","o":"9559E0"},{"b":"10000000","o":"988EE8"},{"b":"10000000","o":"5F90DC"},{"b":"10000000","o":"2D41C8"},{"b":"10000000","o":"28CD10"},{"b":"3FFF981F0000","o":"24580"},{"b":"3FFF981F0000","o":"24774"}],"processInfo":{ "mongodbVersion" : "3.0.4", "gitVersion" : "nogitversion", "uname" : { "sysname" : "Linux", "release" : "3.10.0-210.ael7a.ppc64le", "version" : "#1 SMP Tue Nov 25 08:27:04 EST 2014", "machine" : "ppc64le" }, "somap" : [ { "elfType" : 2, "b" : "10000000", "buildId" : "1DF85FA234EFEC3891F5F9AD428222F88C4EDEA4" }, { "b" : "3FFF98750000", "elfType" : 3, "buildId" : "68E9DBFEE7725BCA346A3AADFF631D9C20E7E265" }, { "b" : "3FFF98700000", "path" : "/lib64/power8/librt.so.1", "elfType" : 3, "buildId" : "626D07527A63941827A52A38E928E1C6807D3821" }, { "b" : "3FFF986D0000", "path" : "/lib64/libdl.so.2", "elfType" : 3, "buildId" : "57734949376D241AF73F054863FB53E1F93D222D" }, { "b" : "3FFF98540000", "path" : "/lib64/libstdc++.so.6", "elfType" : 3, "buildId" : "FD6A390D603D2F07522F1013D0EF8014E722179E" }, { "b" : "3FFF98450000", "path" : "/lib64/power8/libm.so.6", "elfType" : 3, "buildId" : "0CAADB7D836B16CDD176833A0DAE38764E28006F" }, { "b" : "3FFF98410000", "path" : "/lib64/libgcc_s.so.1", "elfType" : 3, "buildId" : "4E2CAE4975DA8B74EA3059838BDD2ED50EA5EB2A" }, { "b" : "3FFF983D0000", "path" : "/lib64/power8/libpthread.so.0", "elfType" : 3, "buildId" : "4C0A14BCEE88F2C83BC28A4ADF87DD3A74AD853F" }, { "b" : "3FFF981F0000", "path" : "/lib64/power8/libc.so.6", "elfType" : 3, "buildId" : "552EC71564694CA8066C907BD54328EE0C250BCF" }, { "b" : "3FFF98770000", "path" : "/lib64/ld64.so.2", "elfType" : 3, "buildId" : "9F622117176D7D51DC0F827E25352994B88A5489" } ] }}
 mongod(_ZN5mongo15printStackTraceERSo+0x6C) [0x10bf683c]
 mongod(_ZN5mongo10logContextEPKc+0x130) [0x10b8c6f0]
 mongod(_ZN5mongo13fassertFailedEi+0x94) [0x10b68834]
 mongod(_ZN5mongo7LogFile17synchronousAppendEPKvm+0x4A8) [0x10b8d758]
 mongod(_ZN5mongo3dur20_preallocateIsFasterEv+0x140) [0x1095b090]
 mongod(_ZN5mongo3dur19preallocateIsFasterEv+0x44) [0x1095b5f4]
 mongod(_ZN5mongo3dur16preallocateFilesEv+0x194) [0x1095f7f4]
 mongod(_ZN5mongo3dur7startupEv+0x50) [0x109559e0]
 mongod(_ZN5mongo12MMAPV1Engine10finishInitEv+0x28) [0x10988ee8]
 mongod(_ZN5mongo23GlobalEnvironmentMongoD22setGlobalStorageEngineERKSs+0x35C) [0x105f90dc]
 mongod(_ZN5mongo13initAndListenEi+0x488) [0x102d41c8]
 mongod(main+0x190) [0x1028cd10]
 libc.so.6(+0x24580) [0x3fff98214580]
 libc.so.6(__libc_start_main+0xC4) [0x3fff98214774]
-----  END BACKTRACE  -----
2015-07-01T19:18:51.793+0530 I -        [initandlisten]
 
***aborting after fassert() failure

Thanks in advance for any inputs...

Regards,
Anup Halarnkar



 Comments   
Comment by Ramon Fernandez Marina [ 01/Jul/15 ]

Thanks for your report anhal; PPC64 is not currently a supported platform, but this looks like a platform-related issue that may be fixed with some compilation flags to tweak alignment? Here's where this assertion is coming from:

    void LogFile::synchronousAppend(const void *b, size_t len) {
 
        const char *buf = static_cast<const char *>( b );
        ssize_t charsToWrite = static_cast<ssize_t>( len );
 
        fassert( 16144, charsToWrite >= 0 );
        fassert( 16142, _fd >= 0 );
        fassert( 16143, reinterpret_cast<size_t>( buf ) % _blkSize == 0 );  // aligned

I'm going to close this ticket and ask you to please post your question in the mongodb-dev google group where it will reach a larger and more targeted audience.

Thanks,
Ramón.

Generated at Thu Feb 08 03:50:17 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.