[SERVER-27540] Queryable MMAPV1 needs to be able to handle block sizes greater than 2MB Created: 29/Dec/16  Updated: 29/Dec/16  Resolved: 29/Dec/16

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: 3.4.1
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Chunming Li (Inactive) Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates SERVER-27512 queryable_mmapv1 can encounter larger... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Participants:

 Description   

2016-12-22T15:36:53.085-0500 I CONTROL  [initandlisten] MongoDB starting : pid=13102 port=27700 dbpath=/data/backups/daemon/queryable/585c39614c1e5254d15e8d7a/dbpath/ 64-bit host=arch-li
2016-12-22T15:36:53.085-0500 I CONTROL  [initandlisten] db version v3.4.1
2016-12-22T15:36:53.085-0500 I CONTROL  [initandlisten] git version: 5e103c4f5583e2566a45d740225dc250baacfbd7
2016-12-22T15:36:53.085-0500 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2j  26 Sep 2016
2016-12-22T15:36:53.085-0500 I CONTROL  [initandlisten] allocator: tcmalloc
2016-12-22T15:36:53.085-0500 I CONTROL  [initandlisten] modules: enterprise 
2016-12-22T15:36:53.085-0500 I CONTROL  [initandlisten] build environment:
2016-12-22T15:36:53.085-0500 I CONTROL  [initandlisten]     distarch: x86_64
2016-12-22T15:36:53.085-0500 I CONTROL  [initandlisten]     target_arch: x86_64
2016-12-22T15:36:53.085-0500 I CONTROL  [initandlisten] options: { config: "/data/backups/daemon/queryable/585c39614c1e5254d15e8d7a/dbpath/conf.yaml", net: { bindIp: "0.0.0.0", port: 27700, ssl: { CAFile: "/data/backups/daemon/queryable/585c39614c1e5254d15e8d7a/dbpath/ca.pem", PEMKeyFile: "/data/backups/daemon/queryable/585c39614c1e5254d15e8d7a/dbpath/serverIdentity.pem", mode: "requireSSL" } }, queryableBackup: { apiUri: "127.0.0.1:8097", memoryQuotaMB: 4096.0, snapshotId: "585c39384c1e521fabebf395" }, setParameter: { authenticationMechanisms: "MONGODB-X509" }, storage: { dbPath: "/data/backups/daemon/queryable/585c39614c1e5254d15e8d7a/dbpath/", engine: "queryable_mmapv1", queryableBackupMode: true }, systemLog: { destination: "file", path: "/data/backups/daemon/queryable/585c39614c1e5254d15e8d7a/mongod.log" } }
2016-12-22T15:36:53.129-0500 I STORAGE  [initandlisten] Downloading .ns files...
2016-12-22T15:36:53.274-0500 I STORAGE  [initandlisten] downloading: admin.ns
2016-12-22T15:36:53.668-0500 I STORAGE  [initandlisten] downloading: random_db.ns
2016-12-22T15:36:54.052-0500 I CONTROL  [initandlisten] 
2016-12-22T15:36:54.052-0500 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2016-12-22T15:36:54.052-0500 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2016-12-22T15:36:54.052-0500 I CONTROL  [initandlisten] 
2016-12-22T15:36:54.053-0500 I CONTROL  [initandlisten] 
2016-12-22T15:36:54.053-0500 I CONTROL  [initandlisten] ** WARNING: You are running on a NUMA machine.
2016-12-22T15:36:54.053-0500 I CONTROL  [initandlisten] **          We suggest launching mongod like this to avoid performance problems:
2016-12-22T15:36:54.053-0500 I CONTROL  [initandlisten] **              numactl --interleave=all mongod [other options]
2016-12-22T15:36:54.053-0500 I CONTROL  [initandlisten] 
2016-12-22T15:36:54.053-0500 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-12-22T15:36:54.053-0500 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2016-12-22T15:36:54.053-0500 I CONTROL  [initandlisten] 
2016-12-22T15:36:55.021-0500 F -        [initandlisten] Invalid access at address: 0x7f3417ff5fe0
2016-12-22T15:36:55.037-0500 F -        [initandlisten] Got signal: 11 (Segmentation fault).
 
 0x55b1b3646e1a 0x55b1b3645f59 0x55b1b364659f 0x7f3434060080 0x7f3433dd9b0e 0x55b1b2d55b84 0x55b1b2d58d55 0x55b1b2d5a0ad 0x55b1b2d5ccf1 0x55b1b331e2f9 0x55b1b331ab5a 0x55b1b32f5be8 0x55b1b32f72e0 0x55b1b3300414 0x55b1b2a1d862 0x55b1b2805234 0x55b1b282371c 0x7f3433cd1291 0x55b1b288af9a
----- BEGIN BACKTRACE -----
{"backtrace":[{"b":"55B1B2079000","o":"15CDE1A","s":"_ZN5mongo15printStackTraceERSo"},{"b":"55B1B2079000","o":"15CCF59"},{"b":"55B1B2079000","o":"15CD59F"},{"b":"7F343404F000","o":"11080"},{"b":"7F3433CB1000","o":"128B0E"},{"b":"55B1B2079000","o":"CDCB84","s":"_ZNK5mongo9queryable14CurlHttpClient4readENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_9DataRangeEmm"},{"b":"55B1B2079000","o":"CDFD55","s":"_ZNK5mongo9queryable6Reader13readBlockIntoENS_9DataRangeEm"},{"b":"55B1B2079000","o":"CE10AD","s":"_ZN5mongo9queryable8DataFile11ensureRangeEmm"},{"b":"55B1B2079000","o":"CE3CF1","s":"_ZNK5mongo9queryable29BlockstoreBackedExtentManager9getExtentERKNS_7DiskLocEb"},{"b":"55B1B2079000","o":"12A52F9","s":"_ZN5mongo27SimpleRecordStoreV1IteratorC2EPNS_16OperationContextEPKNS_19SimpleRecordStoreV1Eb"},{"b":"55B1B2079000","o":"12A1B5A","s":"_ZNK5mongo19SimpleRecordStoreV19getCursorEPNS_16OperationContextEb"},{"b":"55B1B2079000","o":"127CBE8","s":"_ZN5mongo26MMAPV1DatabaseCatalogEntry5_initEPNS_16OperationContextE"},{"b":"55B1B2079000","o":"127E2E0","s":"_ZN5mongo26MMAPV1DatabaseCatalogEntryC1EPNS_16OperationContextENS_10StringDataES3_bbSt10unique_ptrINS_13ExtentManagerESt14default_deleteIS5_EE"},{"b":"55B1B2079000","o":"1287414","s":"_ZN5mongo12MMAPV1Engine23getDatabaseCatalogEntryEPNS_16OperationContextENS_10StringDataE"},{"b":"55B1B2079000","o":"9A4862","s":"_ZN5mongo14DatabaseHolder6openDbEPNS_16OperationContextENS_10StringDataEPb"},{"b":"55B1B2079000","o":"78C234"},{"b":"55B1B2079000","o":"7AA71C","s":"main"},{"b":"7F3433CB1000","o":"20291","s":"__libc_start_main"},{"b":"55B1B2079000","o":"811F9A","s":"_start"}],"processInfo":{ "mongodbVersion" : "3.4.1", "gitVersion" : "5e103c4f5583e2566a45d740225dc250baacfbd7", "compiledModules" : [ "enterprise" ], "uname" : { "sysname" : "Linux", "release" : "4.8.13-1-ARCH", "version" : "#1 SMP PREEMPT Fri Dec 9 07:24:34 CET 2016", "machine" : "x86_64" }, "somap" : [ { "b" : "55B1B2079000", "elfType" : 3, "buildId" : "9E8DDF968605F3851570C1CEF682A6B0538F1E5A" }, { "b" : "7FFFCE5EF000", "path" : "linux-vdso.so.1", "elfType" : 3, "buildId" : "366692F72CA767641707AC476FE9329C8522C9A2" }, { "b" : "7F34375BA000", "path" : "/usr/lib/libz.so.1", "elfType" : 3, "buildId" : "54A865CA8E861366C27BB3ABAE67556C875D7061" }, { "b" : "7F3437347000", "path" : "/usr/lib/libpcre.so.1", "elfType" : 3, "buildId" : "C7BC8017E62BA0A20D39E0E21543D6C4691241E3" }, { "b" : "7F343713D000", "path" : "/usr/lib/libpcrecpp.so.0", "elfType" : 3, "buildId" : "F1973FF166366F215A973CC306A19157F11FC3FB" }, { "b" : "7F3436F35000", "path" : "/usr/lib/libsnappy.so.1", "elfType" : 3, "buildId" : "E4F75978F93D4568DF94DBB86B37354C69F57F5E" }, { "b" : "7F3436AB7000", "path" : "/usr/lib/libnetsnmpmibs.so.30", "elfType" : 3, "buildId" : "DED0FCA94883FADB1D701A85D62BB45E1D10B25F" }, { "b" : "7F34368AA000", "path" : "/usr/lib/libpci.so.3", "elfType" : 3, "buildId" : "D78EE540684108A396932E9F6E7C925DD7FD7AE1" }, { "b" : "7F34366A6000", "path" : "/usr/lib/libdl.so.2", "elfType" : 3, "buildId" : "17EC69093FC89B16363635EA7F76F46145A08384" }, { "b" : "7F3436441000", "path" : "/usr/lib/libnetsnmpagent.so.30", "elfType" : 3, "buildId" : "581EB7E59977359E0EA32CFBD617EFCC3511CEAF" }, { "b" : "7F343615D000", "path" : "/usr/lib/libnetsnmp.so.30", "elfType" : 3, "buildId" : "CD7F88E987C28CA4D815A07DC0883475E23AF8B9" }, { "b" : "7F3435CE5000", "path" : "/usr/lib/libcrypto.so.1.0.0", "elfType" : 3, "buildId" : "1903742987EE3DE11A955DF4BD79482B3AD964BF" }, { "b" : "7F3435AC4000", "path" : "/usr/lib/libnl-3.so.200", "elfType" : 3, "buildId" : "D2E6A9A30E0B3425357203313AE2D1B02EB0474F" }, { "b" : "7F34358A7000", "path" : "/usr/lib/libsasl2.so.3", "elfType" : 3, "buildId" : "79D4F55099FE180EE217B9625266ECC3B39F3EFA" }, { "b" : "7F343565B000", "path" : "/usr/lib/libldap-2.4.so.2", "elfType" : 3, "buildId" : "74618DD154A7959F2D5B67BED3D2AA5BCCB91DD7" }, { "b" : "7F343544C000", "path" : "/usr/lib/liblber-2.4.so.2", "elfType" : 3, "buildId" : "F1E72AEA6C990D47B9350CDE23A37865D37495A0" }, { "b" : "7F34351D6000", "path" : "/usr/lib/libcurl.so.4", "elfType" : 3, "buildId" : "6132F496FCFD71332F77D1FDFE0E40311F221E53" }, { "b" : "7F3434F88000", "path" : "/usr/lib/libgssapi_krb5.so.2", "elfType" : 3, "buildId" : "2E7C755AD6AEC095BB5597D75F73DC93A9757F2E" }, { "b" : "7F3434C84000", "path" : "/usr/lib/libm.so.6", "elfType" : 3, "buildId" : "9BF277AF31D8B043B4806962D815937A068FFF4F" }, { "b" : "7F3434A13000", "path" : "/usr/lib/libssl.so.1.0.0", "elfType" : 3, "buildId" : "4EF4FF924EE537518991F642FE9CDB80B73CEFB2" }, { "b" : "7F343480B000", "path" : "/usr/lib/librt.so.1", "elfType" : 3, "buildId" : "348114FCB35A100A6E346D485EE0BBAFBE691F98" }, { "b" : "7F3434483000", "path" : "/usr/lib/libstdc++.so.6", "elfType" : 3, "buildId" : "B76EAF2D588FF9A942200133A619825F1451FD27" }, { "b" : "7F343426C000", "path" : "/usr/lib/libgcc_s.so.1", "elfType" : 3, "buildId" : "E1A11EEB337AC8B668389FAE07BEA086AA80DE59" }, { "b" : "7F343404F000", "path" : "/usr/lib/libpthread.so.0", "elfType" : 3, "buildId" : "13D24A5495AE34F58E52403F9153263488B62CF4" }, { "b" : "7F3433CB1000", "path" : "/usr/lib/libc.so.6", "elfType" : 3, "buildId" : "8CBA3297F538691EB1875BE62986993C004F3F4D" }, { "b" : "7F34338C1000", "path" : "/usr/lib/perl5/core_perl/CORE/libperl.so", "elfType" : 3, "buildId" : "F95D2360DF087F57C38590D3DCDF13924EDFD27C" }, { "b" : "7F34336A9000", "path" : "/usr/lib/libnsl.so.1", "elfType" : 3, "buildId" : "D49127975701AFC9ADAF235F00D197585DA5B5B4" }, { "b" : "7F3433471000", "path" : "/usr/lib/libcrypt.so.1", "elfType" : 3, "buildId" : "4960697B1F560E5DCF2E01A0B9E3C189BEF272F3" }, { "b" : "7F343326E000", "path" : "/usr/lib/libutil.so.1", "elfType" : 3, "buildId" : "5D9D9D0624679C808AB3988B9B59BF3DF030156F" }, { "b" : "7F3433057000", "path" : "/usr/lib/libresolv.so.2", "elfType" : 3, "buildId" : "F010A6ED2580DE89841FC17D540BC28A0420F6A3" }, { "b" : "7F34377D0000", "path" : "/lib64/ld-linux-x86-64.so.2", "elfType" : 3, "buildId" : "C778954FFB0E2239CD454D40C9DE504E8601D990" }, { "b" : "7F3432E2A000", "path" : "/usr/lib/libssh2.so.1", "elfType" : 3, "buildId" : "A36E47A82328391AE659E6F67A448A731B745154" }, { "b" : "7F3432C1C000", "path" : "/usr/lib/libpsl.so.5", "elfType" : 3, "buildId" : "761FEBF619524CE9D58DAC6F93071759EACBDA1F" }, { "b" : "7F3432937000", "path" : "/usr/lib/libkrb5.so.3", "elfType" : 3, "buildId" : "9D8C1BED9237C0E12481AADA6CAE2C68CDCB26E7" }, { "b" : "7F3432706000", "path" : "/usr/lib/libk5crypto.so.3", "elfType" : 3, "buildId" : "E470280D46AA26B026159C455D75F0EE4C312EC7" }, { "b" : "7F3432502000", "path" : "/usr/lib/libcom_err.so.2", "elfType" : 3, "buildId" : "7A665CF3BFF252F95BCA4D02EBE1E31A6B55E73B" }, { "b" : "7F34322F5000", "path" : "/usr/lib/libkrb5support.so.0", "elfType" : 3, "buildId" : "142586F145EB224BC1B74F2EB4D122BAB75C8AE9" }, { "b" : "7F34320F1000", "path" : "/usr/lib/libkeyutils.so.1", "elfType" : 3, "buildId" : "A1D77ED2785FD40E89588385314308FEDF94A7B8" }, { "b" : "7F3431D45000", "path" : "/usr/lib/libicuuc.so.58", "elfType" : 3, "buildId" : "D2177D1B49D8C5F17B1FF2CA622468258FA3F6AA" }, { "b" : "7F3430245000", "path" : "/usr/lib/libicudata.so.58", "elfType" : 3, "buildId" : "81E2101E5546B98156C13769D4939895E171B238" } ] }}
 mongod(_ZN5mongo15printStackTraceERSo+0x3A) [0x55b1b3646e1a]
 mongod(+0x15CCF59) [0x55b1b3645f59]
 mongod(+0x15CD59F) [0x55b1b364659f]
 libpthread.so.0(+0x11080) [0x7f3434060080]
 libc.so.6(+0x128B0E) [0x7f3433dd9b0e]
 mongod(_ZNK5mongo9queryable14CurlHttpClient4readENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_9DataRangeEmm+0x684) [0x55b1b2d55b84]
 mongod(_ZNK5mongo9queryable6Reader13readBlockIntoENS_9DataRangeEm+0x85) [0x55b1b2d58d55]
 mongod(_ZN5mongo9queryable8DataFile11ensureRangeEmm+0x28D) [0x55b1b2d5a0ad]
 mongod(_ZNK5mongo9queryable29BlockstoreBackedExtentManager9getExtentERKNS_7DiskLocEb+0x41) [0x55b1b2d5ccf1]
 mongod(_ZN5mongo27SimpleRecordStoreV1IteratorC2EPNS_16OperationContextEPKNS_19SimpleRecordStoreV1Eb+0xD9) [0x55b1b331e2f9]
 mongod(_ZNK5mongo19SimpleRecordStoreV19getCursorEPNS_16OperationContextEb+0x3A) [0x55b1b331ab5a]
 mongod(_ZN5mongo26MMAPV1DatabaseCatalogEntry5_initEPNS_16OperationContextE+0x7E8) [0x55b1b32f5be8]
 mongod(_ZN5mongo26MMAPV1DatabaseCatalogEntryC1EPNS_16OperationContextENS_10StringDataES3_bbSt10unique_ptrINS_13ExtentManagerESt14default_deleteIS5_EE+0x2A0) [0x55b1b32f72e0]
 mongod(_ZN5mongo12MMAPV1Engine23getDatabaseCatalogEntryEPNS_16OperationContextENS_10StringDataE+0x294) [0x55b1b3300414]
 mongod(_ZN5mongo14DatabaseHolder6openDbEPNS_16OperationContextENS_10StringDataEPb+0x182) [0x55b1b2a1d862]
 mongod(+0x78C234) [0x55b1b2805234]
 mongod(main+0x15BC) [0x55b1b282371c]
 libc.so.6(__libc_start_main+0xF1) [0x7f3433cd1291]
 mongod(_start+0x2A) [0x55b1b288af9a]
-----  END BACKTRACE  -----

We unprotect one page size of 2MB of memory, and copy blockSize bytes into it. But when blockSize is greater than page size such as 16MB with S3Blockstore, it segfaults. We need to increase the default page size or the ability to dynamically change it.

CC: daniel.gottlieb



 Comments   
Comment by Daniel Gottlieb (Inactive) [ 29/Dec/16 ]

duplicate of SERVER-27512

Generated at Thu Feb 08 04:15:26 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.