[SERVER-16615] Long database names will crash server during repair on mmapv1 when using directoryperdb Created: 19/Dec/14 Updated: 29/Apr/15 Resolved: 29/Dec/14 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | None |
| Fix Version/s: | 2.8.0-rc5 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Spencer Jackson | Assignee: | Spencer Jackson |
| Resolution: | Done | Votes: | 0 |
| Labels: | 28qa, mmapv1 | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||
| Operating System: | ALL | ||||||||
| Steps To Reproduce: | Start a fresh database with: > use aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ) ) |
||||||||
| Participants: | |||||||||
| Description |
|
A document inserted into a mmapv1 database using directoryperdb with a sufficiently long name will terminate the server and cause a backtrace when repairDatabase is executed. This behavior was not observed under WiredTiger. 2014-12-19T18:04:26.157-0500 I INDEX [conn1] build index on: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.u properties: { v: 1, key: { _id: 1 }, name: "id", ns: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.u" } 0x19a1e53 0x19a1d15 0x19a1823 0x7f7a015ae550 0x7f7a015ae4c9 0x7f7a015af958 0x136ef84 0x16d309d 0x1596cc6 0x19e9084 0x7f7a022be0db 0x7f7a0166058d , {"b":"400000","o":"15A1D15"}, {"b":"400000","o":"15A1823"}, {"b":"7F7A01579000","o":"35550"}, {"b":"7F7A01579000","o":"354C9"}, {"b":"7F7A01579000","o":"36958"}, {"b":"400000","o":"F6EF84"}, {"b":"400000","o":"12D309D"}, {"b":"400000","o":"1196CC6"}, {"b":"400000","o":"15E9084"}, {"b":"7F7A022B6000","o":"80DB"}, {"b":"7F7A01579000","o":"E758D"}],"processInfo":{ "mongodbVersion" : "2.8.0-rc4-pre-", "gitVersion" : "e7b514171c2bfbd6029e9cfc5daf3ac2a699e293 modules: subscription", "uname" : { "sysname" : "Linux", "release" : "3.17.4-2.g2d23787-desktop", "version" : "#1 SMP PREEMPT Tue Nov 25 20:17:30 UTC 2014 (2d23787)", "machine" : "x86_64" }, "somap" : [ { "elfType" : 2, "b" : "400000", "buildId" : "127F808698F4CA62F7627FF75D7EA3C5A552321D" }, { "b" : "7FFF925FE000", "path" : "linux-vdso.so.1", "elfType" : 3, "buildId" : "6B2E43D38205BED52DFAD1887AC63806A7345757" }, { "b" : "7F7A04456000", "path" : "/usr/lib64/libsasl2.so.2", "elfType" : 3, "buildId" : "BE3019C7B6BB3BB0312613871673857E98EBF34E" }, { "b" : "7F7A03F9E000", "path" : "/usr/lib64/libnetsnmpmibs.so.30", "elfType" : 3, "buildId" : "6BAB066098313A5B6F6E503B3E5CA738EC00A3EF" }, { "b" : "7F7A03D8F000", "path" : "/usr/lib64/libsensors.so.4", "elfType" : 3, "buildId" : "FB719500964D1833D52CE8DD730849E89D96BA05" }, { "b" : "7F7A03B8B000", "path" : "/lib64/libdl.so.2", "elfType" : 3, "buildId" : "666913EC064C25FDE1720DB77B1F57BDEB5D9B3A" }, { "b" : "7F7A037B7000", "path" : "/usr/lib64/librpm.so.3", "elfType" : 3, "buildId" : "038922E310A8B00BE9E9BA564CDAA47C87A184AA" }, { "b" : "7F7A03566000", "path" : "/usr/lib64/librpmio.so.3", "elfType" : 3, "buildId" : "B42C339BCC9D9CB51416716F080F1A32013C92BC" }, { "b" : "7F7A032F7000", "path" : "/usr/lib64/libnetsnmpagent.so.30", "elfType" : 3, "buildId" : "AB25E6A40B2BFE5F7EE213E271A496F7724A5821" }, { "b" : "7F7A030EC000", "path" : "/lib64/libwrap.so.0", "elfType" : 3, "buildId" : "1B986139DE9922CBAD77FD86BBBEDD752844FEAF" }, { "b" : "7F7A02E09000", "path" : "/usr/lib64/libnetsnmp.so.30", "elfType" : 3, "buildId" : "B7518EBA89C271B322A57A42E3427E52AF54EB74" }, { "b" : "7F7A02A1D000", "path" : "/lib64/libcrypto.so.1.0.0", "elfType" : 3, "buildId" : "D781931A27CC80C55A27B8448944BA7F5B0C3E08" }, { "b" : "7F7A0271A000", "path" : "/lib64/libm.so.6", "elfType" : 3, "buildId" : "35D35D9CE781BE3A140A34242D998498615B021F" }, { "b" : "7F7A024D4000", "path" : "/usr/lib64/libgssapi_krb5.so.2", "elfType" : 3, "buildId" : "4500EFC6B03F2515A34C8CBFFEB536EAB625BFFA" }, { "b" : "7F7A022B6000", "path" : "/lib64/libpthread.so.0", "elfType" : 3, "buildId" : "24A941B6C85E244BD2E4906928DC17AB63B0A38A" }, { "b" : "7F7A0204E000", "path" : "/lib64/libssl.so.1.0.0", "elfType" : 3, "buildId" : "44F5AFDAB585C00E3E94A89882CBFDB9BAA60F06" }, { "b" : "7F7A01E46000", "path" : "/lib64/librt.so.1", "elfType" : 3, "buildId" : "0913D5EA4659CFA3FFAD451ACC84A6ED62772141" }, { "b" : "7F7A01B3E000", "path" : "/usr/lib64/libstdc++.so.6", "elfType" : 3, "buildId" : "893844CE9810835B76559F6EC3DC5A15E0D32A00" }, { "b" : "7F7A01927000", "path" : "/lib64/libgcc_s.so.1", "elfType" : 3, "buildId" : "26253BEC1076626F73B8B13BED9510AE626E1EAD" }, { "b" : "7F7A01579000", "path" : "/lib64/libc.so.6", "elfType" : 3, "buildId" : "71DBBED0200919BA751AD20A545B9266258CD5E5" }, { "b" : "7F7A04673000", "path" : "/lib64/ld-linux-x86-64.so.2", "elfType" : 3, "buildId" : "AFA98667969782208459E394F8C8F87AC7510710" }, { "b" : "7F7A0136D000", "path" : "/usr/lib64/libpopt.so.0", "elfType" : 3, "buildId" : "006D8E514AC130530294E6CFF5D8F77900DF869B" }, { "b" : "7F7A01149000", "path" : "/lib64/libselinux.so.1", "elfType" : 3, "buildId" : "E2BBA1E6E7493C181AB4DA9F2C771C8DB0875872" }, { "b" : "7F7A00F44000", "path" : "/lib64/libcap.so.2", "elfType" : 3, "buildId" : "6F5E67B736B349EBE34CC2196BD4342736278777" }, { "b" : "7F7A00D3B000", "path" : "/lib64/libacl.so.1", "elfType" : 3, "buildId" : "684353207FA9BBA104A505EA9577DD10D74B9B51" }, { "b" : "7F7A00B0B000", "path" : "/usr/lib64/liblua.so.5.1", "elfType" : 3, "buildId" : "8A9137F7CB106BDC6A51591F03AADABADB2088F9" }, { "b" : "7F7A008FC000", "path" : "/usr/lib64/libbz2.so.1", "elfType" : 3, "buildId" : "0B6B84C801AD3C496B90FDA2D310259CEF812099" }, { "b" : "7F7A006E6000", "path" : "/lib64/libz.so.1", "elfType" : 3, "buildId" : "9E815EF41BF59451F1855B91195B2124E2A95F9E" }, { "b" : "7F7A004D0000", "path" : "/usr/lib64/libelf.so.1", "elfType" : 3, "buildId" : "984C530D8F881257D517CE19FCD80841F2230D80" }, { "b" : "7F7A002AA000", "path" : "/usr/lib64/liblzma.so.5", "elfType" : 3, "buildId" : "8F2CBB2A0E341BEF4D5116EEDE8A83465DE6CA4B" }, { "b" : "7F79FFF17000", "path" : "/usr/lib/perl5/5.18.1/x86_64-linux-thread-multi/CORE/libperl.so", "elfType" : 3, "buildId" : "217B4A7EA7DF2A7B46BC93993FD7630EC1175D0C" }, { "b" : "7F79FFC48000", "path" : "/usr/lib64/libkrb5.so.3", "elfType" : 3, "buildId" : "43FCBEA839B52BDA91D5CC00AFA9EC4AE0E324DC" }, { "b" : "7F79FFA15000", "path" : "/usr/lib64/libk5crypto.so.3", "elfType" : 3, "buildId" : "3EA89068D8F8FEE53C767950C64293B4D678FF61" }, { "b" : "7F79FF811000", "path" : "/lib64/libcom_err.so.2", "elfType" : 3, "buildId" : "94324D6C48D39D04069706D01E6AF2D5D4429385" }, { "b" : "7F79FF604000", "path" : "/usr/lib64/libkrb5support.so.0", "elfType" : 3, "buildId" : "BC48F2A6DC84F7475BCD61857A742D8F2FE27139" }, { "b" : "7F79FF39E000", "path" : "/usr/lib64/libpcre.so.1", "elfType" : 3, "buildId" : "EF846533CF9AA9F40966FF8F2C1D120F1847BB45" }, { "b" : "7F79FF199000", "path" : "/lib64/libattr.so.1", "elfType" : 3, "buildId" : "B6C7F251CBA059292F8892B74F4D2C167665C785" }, { "b" : "7F79FEF5E000", "path" : "/lib64/libcrypt.so.1", "elfType" : 3, "buildId" : "355B60D4EFA51BB76FF03EB56A0986F555755453" }, { "b" : "7F79FED5A000", "path" : "/lib64/libkeyutils.so.1", "elfType" : 3, "buildId" : "8EEA8B23F6DF125C66129A2DB29614A38300B77A" }, { "b" : "7F79FEB43000", "path" : "/lib64/libresolv.so.2", "elfType" : 3, "buildId" : "799562EB36D9479DF11B4BB13D8C29D852484FE8" } ] }} |
| Comments |
| Comment by Githook User [ 29/Dec/14 ] |
|
Author: {u'username': u'spencerjackson', u'name': u'Spencer Jackson', u'email': u'spencer.jackson@mongodb.com'}Message: |
| Comment by Spencer Jackson [ 19/Dec/14 ] |
|
It turns out this issue is not related to unicode, and can be reproduced with a sufficiently large ASCII string. |
| Comment by Eric Milkie [ 19/Dec/14 ] |
|
http://docs.mongodb.org/manual/reference/limits/#naming-restrictions But I suppose you could craft a Unicode name that happened to have no null bytes in it? |
| Comment by Eric Milkie [ 19/Dec/14 ] |
|
"Unicode" database names are prohibited; the character set allowed is basically the same character set that is allowed for Windows FAT-32 filenames. |