Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-27540

Queryable MMAPV1 needs to be able to handle block sizes greater than 2MB

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Duplicate
    • Affects Version/s: 3.4.1
    • Fix Version/s: None
    • Component/s: Storage
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL

      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

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: