[SERVER-2075] userqueryop cursor becoming null after yield shouldn't cause seg fault Created: 08/Nov/10 Updated: 12/Jul/16 Resolved: 08/Nov/10 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 1.7.3 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Aaron Staple | Assignee: | Eliot Horowitz (Inactive) |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Operating System: | ALL |
| Participants: |
| Description |
|
mongod: /opt/extra/include/boost/smart_ptr/shared_ptr.hpp:418: T* boost::shared_ptr< <template-parameter-1-1> >::operator->() const [with T = mongo::Cursor]: Assertion `px != 0' failed. |
| Comments |
| Comment by Eliot Horowitz (Inactive) [ 08/Nov/10 ] |
|
Ah ok - pretty sure kristina had a dup case that was the same that's now fixed |
| Comment by Aaron Staple [ 08/Nov/10 ] |
|
Comment - it was causing the buildbot parallel tests to fail - in the parallel/del.js test. |
| Comment by auto [ 08/Nov/10 ] |
|
Author: {'login': 'erh', 'name': 'Eliot Horowitz', 'email': 'eliot@10gen.com'}Message: fix cursor usage when possible deleted |
| Comment by Eliot Horowitz (Inactive) [ 08/Nov/10 ] |
|
Do you have a way to reproduce? |
| Comment by Aaron Staple [ 08/Nov/10 ] |
|
Ok, so it's actually this commit that caused this: In the current code there are some places in finish() where _c is now used unsafely. |
| Comment by Eliot Horowitz (Inactive) [ 08/Nov/10 ] |
|
ok - let me know what you find |
| Comment by Aaron Staple [ 08/Nov/10 ] |
|
Actually, that may not be right. I'm looking more carefully. |
| Comment by Aaron Staple [ 08/Nov/10 ] |
|
This is a result of the following new code: if ( _capped ) { msgassertedNoTrace( 13338, str::stream() << "capped cursor overrun during query: " << _pq.ns() ); }else { // we don't fail query since we're fine with returning partial data if collection dropped }Eliot, let me know if I should work on it further. |