[SERVER-9318] Mapreduce implementation call dropCollection for MRInline Created: 11/Apr/13 Updated: 06/Dec/22 Resolved: 18/Jul/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | MapReduce |
| Affects Version/s: | 2.4.1, 2.6.3 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Blake-R | Assignee: | Backlog - Storage Execution Team |
| Resolution: | Done | Votes: | 0 |
| Labels: | c++, mapreduce | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
ArchLinux 3.8.6-1-ARCH |
||
| Issue Links: |
|
||||||||||||
| Assigned Teams: |
Storage Execution
|
||||||||||||
| Operating System: | Linux | ||||||||||||
| Steps To Reproduce: | Execute an mapreduce command with MRInline object for output argument. |
||||||||||||
| Participants: | |||||||||||||
| Description |
|
After last update our mapreduce task was fail with last error "no collection name".
|
| Comments |
| Comment by Ramon Fernandez Marina [ 18/Jul/16 ] | |||||||||||||||||||||||||||||||||||||||
|
I'm unable to reproduce this in 3.0.12 or 3.2.8 either. | |||||||||||||||||||||||||||||||||||||||
| Comment by Asya Kamsky [ 18/Jul/16 ] | |||||||||||||||||||||||||||||||||||||||
|
This no longer reproduces in 3.3.9
| |||||||||||||||||||||||||||||||||||||||
| Comment by Thomas Rueckstiess [ 29/Jul/14 ] | |||||||||||||||||||||||||||||||||||||||
|
This can be reproduced with any map/reduce job that outputs inline. It seems the error fields err and code are set by the non-existent collection drop, but the map/reduce command succeeds and sets ok: 1 without resetting the other fields. This reproducer script shows the behavior:
This results in:
| |||||||||||||||||||||||||||||||||||||||
| Comment by Blake-R [ 05/Jun/14 ] | |||||||||||||||||||||||||||||||||||||||
|
You right, this error is not ok at all. But it does't affect operation completness check by "ok" field. I think that is answer of cause of ignorance this bug. | |||||||||||||||||||||||||||||||||||||||
| Comment by Luis Iñiguez [ 05/Jun/14 ] | |||||||||||||||||||||||||||||||||||||||
|
However, although the "ok" field result is true, I do not understand why this error happens. | |||||||||||||||||||||||||||||||||||||||
| Comment by Blake-R [ 05/Jun/14 ] | |||||||||||||||||||||||||||||||||||||||
|
Luis Iñiguez, in wich driver? JS output in your and my "getPrevError" - just ok (you should check correctness by "ok" field in db.runCommand result). Trouble was in C++ where request throw exception instead show error or silently ignore it. | |||||||||||||||||||||||||||||||||||||||
| Comment by Luis Iñiguez [ 05/Jun/14 ] | |||||||||||||||||||||||||||||||||||||||
|
I have the same error with the version 2.6.1.
| |||||||||||||||||||||||||||||||||||||||
| Comment by Blake-R [ 17/Mar/14 ] | |||||||||||||||||||||||||||||||||||||||
|
Acknowledge. | |||||||||||||||||||||||||||||||||||||||
| Comment by Stennie Steneker (Inactive) [ 17/Mar/14 ] | |||||||||||||||||||||||||||||||||||||||
|
Hi, Please be advised that I'm closing this issue. I apologise that no one has followed up on the issue earlier, but assume that it is no longer relevant given the length of time that has passed. If you are still seeing this problem, please feel free to reopen with additional information. Ideally we would need the full Map/Reduce code and a sample document to try to reproduce the issue. Thanks, | |||||||||||||||||||||||||||||||||||||||
| Comment by Blake-R [ 30/Apr/13 ] | |||||||||||||||||||||||||||||||||||||||
|
I'm was wrong about other drivers - it's true only without checking last error:
| |||||||||||||||||||||||||||||||||||||||
| Comment by Blake-R [ 11/Apr/13 ] | |||||||||||||||||||||||||||||||||||||||
|
Stack was been gained with change | |||||||||||||||||||||||||||||||||||||||
| Comment by Blake-R [ 11/Apr/13 ] | |||||||||||||||||||||||||||||||||||||||
|
In log our mapreduce task looks thus: Poker.$cmd { mapreduce: "Users", map: function() { emit('bank', (this.spec_chips || 0) + (this.spec_locked_c..., reduce: function(k, va) { var r = 0; va.forEach(function(v) { r += v; }); return r; }, query: { updated_at: { $gte: 1365364800 }, weeklong_member: true }, out: { inline: 1 }} |