[SERVER-13489] some query stage constructors touch disk Created: 04/Apr/14 Updated: 11/Jul/16 Resolved: 09/Apr/14 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Querying |
| Affects Version/s: | 2.6.0-rc3 |
| Fix Version/s: | 2.6.1, 2.7.0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | hari.khalsa@10gen.com | Assignee: | hari.khalsa@10gen.com |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Operating System: | ALL |
| Backport Completed: | |
| Participants: |
| Description |
|
Write commands use PageFaultRetryableSection(s) and also use query. Some query constructors touch disk, and since there's a PFRS, the disk access may throw. This may cause memory leaks. Also, in the DEV case we sometimes hit an fassert. We should fix this for 2.6.1. |
| Comments |
| Comment by Githook User [ 10/Apr/14 ] | ||||||||||||||||||||||||||
|
Author: {u'username': u'hkhalsa', u'name': u'Hari Khalsa', u'email': u'hkhalsa@10gen.com'}Message: (cherry picked from commit ae2dc0a937cd66c249d0d98802fe8229e1a32df8) | ||||||||||||||||||||||||||
| Comment by Githook User [ 10/Apr/14 ] | ||||||||||||||||||||||||||
|
Author: {u'username': u'hkhalsa', u'name': u'Hari Khalsa', u'email': u'hkhalsa@10gen.com'}Message: (cherry picked from commit 5f3174ac46b169a90e1e17a7327a21824609abbf) | ||||||||||||||||||||||||||
| Comment by Githook User [ 09/Apr/14 ] | ||||||||||||||||||||||||||
|
Author: {u'username': u'hkhalsa', u'name': u'Hari Khalsa', u'email': u'hkhalsa@10gen.com'}Message: | ||||||||||||||||||||||||||
| Comment by Githook User [ 09/Apr/14 ] | ||||||||||||||||||||||||||
|
Author: {u'username': u'hkhalsa', u'name': u'Hari Khalsa', u'email': u'hkhalsa@10gen.com'}Message: | ||||||||||||||||||||||||||
| Comment by Eric Milkie [ 04/Apr/14 ] | ||||||||||||||||||||||||||
|
All the places I found were due to IndexScan constructor calling isMultikey(). I would fix this first and then rerun tests in debug mode with likelyInPhysicalMemory()'s "mod"'s changed to 10 in all cases. | ||||||||||||||||||||||||||
| Comment by Eric Milkie [ 04/Apr/14 ] | ||||||||||||||||||||||||||
|
core/auth1.js, same class but different place:
core/bulk_api_unordered.js, same trace. bulk_api_ordered.js. delx.js. | ||||||||||||||||||||||||||
| Comment by Eric Milkie [ 04/Apr/14 ] | ||||||||||||||||||||||||||
|
So far, only found one place, by cranking up the lying likelyInPhysicalMemory() debug randomizer.
|