[SERVER-18942] Mongodb enter dead-loop when client process be killed Created: 12/Jun/15 Updated: 03/Aug/15 Resolved: 03/Aug/15 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Internal Code, Networking |
| Affects Version/s: | 2.6.6 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | ZhangKun [X] | Assignee: | Mark Benvenuto |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Operating System: | ALL |
| Sprint: | Platform 7 08/10/15 |
| Participants: |
| Description |
|
I wrote a go-language mongodb client to use mongodb data, if I kill my client process, I found that mongodb entered dead-loop state. I used htop to see what happens: PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command It looked that the thread(PID:347) of mongod process(PID:1211) occupy 100% CPU, I tried use mongostat, mongotop to figure out which operation there, but no any operation in mongodb. I used pstack 347, it looked that mongod enter a dead-loop because the following unhandled exception. [root@hkDEV6 ~]# pstack 347 |
| Comments |
| Comment by Ramon Fernandez Marina [ 03/Aug/15 ] |
|
ZhangKun, have you seen this behavior again? Is this still an issue for you? Given Mark's answer I'm going to close this ticket for now; if you observe this behavior again please let us know so we can re-open this ticket. Thanks, |
| Comment by Mark Benvenuto [ 24/Jul/15 ] |
|
_Unwind_Find_FDE calls dl_iterate_phdr using _Unwind_IteratePhdrCallback as a callback. See http://osxr.org/glibc/source/sysdeps/generic/unwind-dw2-fde-glibc.c as an example of the source code. I suspect that either the binary was corrupt or some other data structure was corrupt in the binary image. This is the only explanation I can think of why the code got stuck in a infinite loop. |
| Comment by ZhangKun [X] [ 12/Jun/15 ] |
|
Here something I missed in the submit: |