[SERVER-4913] prevent process segv crash in javascript when a document has some bad string value Created: 08/Feb/12 Updated: 15/Aug/12 Resolved: 11/Aug/12 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | JavaScript |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Antoine Girbal | Assignee: | Antoine Girbal |
| Resolution: | Duplicate | Votes: | 10 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||
| Operating System: | ALL | ||||||||||||
| Participants: | |||||||||||||
| Description |
|
The following strings in documents crashed mongod, as seen from pymongo: In general we've seen crashes whenever a string could not be decoded into UTF-16. |
| Comments |
| Comment by Tad Marshall [ 21/Feb/12 ] |
|
Note that the other character in your description example (\ufffd) is itself the character usually used to represent a Unicode error. Probably, isolated surrogate halves (U+D800 through U+DBFF without matching U+DC00 through U+DFFF, or vice versa) should be converted to the the error character. |
| Comment by Pavel Dmitriev [ 21/Feb/12 ] |
|
Hello, Could you please provide us any ETA for this bug fix? It's very important for us. |
| Comment by Antoine Girbal [ 09/Feb/12 ] |
|
The character triggering the issue here is \udc34 |
| Comment by Antoine Girbal [ 08/Feb/12 ] |
|
Did insert with pymongo. >>> c.test.eval("doc = db.foo.findOne(); print('blah'); printjson(doc)") Using v8 build, no such error. unlikely that SM is using a "limited" set of UTF16. |