[SERVER-15778] ClientCursor "totalNoTimeout" counter incorrectly includes cursors that have been cleaned up Created: 22/Oct/14 Updated: 11/Jul/16 Resolved: 05/Dec/14 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | MapReduce |
| Affects Version/s: | 2.6.1, 2.6.5 |
| Fix Version/s: | 2.8.0-rc3 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Mateusz Jaworski | Assignee: | J Rassi |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Operating System: | ALL | ||||||||||||||
| Steps To Reproduce: | Every time I run a simple MapReduce command like this
a new open cursor is added:
|
||||||||||||||
| Participants: |
| Description |
|
Every time I run mapReduce command a new cursor with noTimeout is added. Those cursors are never closed. On the production server I reached thousands of them. I tried with setting the timeout option somewhere, but I did not succeeded. The same issue is when I run
Initially I spotted it using node.js driver, but it in command line the behaviour is the same. I tried to find a way to close the cursor in the documentation, but there is no mentioning that. |
| Comments |
| Comment by Githook User [ 17/Dec/14 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by Githook User [ 05/Dec/14 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message:
|
| Comment by Githook User [ 05/Dec/14 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: The "noTimeout" counter was never being decremented for no-timeout |
| Comment by J Rassi [ 03/Dec/14 ] |
|
I've diagnosed this as a reporting error, not a cursor leak. Those cursors are indeed being created by the mapReduce command and reflected in the "noTimeout" counter, but they are actually properly being cleaned up when the command finishes executing. The issue here is that the "noTimeout" counter is not being properly decremented in this case. Please continue to watch this ticket for updates on when a fix may be available. |
| Comment by Mateusz Jaworski [ 03/Nov/14 ] |
|
Thanks Ramon. Those cursors consume lots of RAM, this is why it is so problematic. |
| Comment by Ramon Fernandez Marina [ 29/Oct/14 ] |
|
Thanks for your report mjaworsk. Looks like in There's currently no way to kill cursors by id from the shell, but |