Anonymous | Login | Signup for a new account | 2024-12-14 05:14 CET |
My View | View Issues | Change Log | Roadmap |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0000439 | aMule | Misc | public | 2005-05-18 11:24 | 2005-05-20 02:03 | ||||
Reporter | eyalzo | ||||||||
Assigned To | Kry | ||||||||
Priority | normal | Severity | crash | Reproducibility | random | ||||
Status | resolved | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | 2.0.0 | ||||||||
Target Version | Fixed in Version | SVN | |||||||
Summary | 0000439: Null pointers in ListenSocket.cpp | ||||||||
Description | Under very heavy load, amule crashes because of null pointer . It's a matter of luck, because there is no resource-lock there, so checking a pointer just before using it just improve the chances not to crash. I saw that one of these crahses in ListenSocket.cpp was already fixed in 2.0.0final, but there is one more: Before: ~~~~~~~~ case OP_AICHFILEHASHREQ: { if (m_client->IsSupportingAICH() && reqfile->GetAICHHashset()->GetStatus() == AICH_HASHSETCOMPLETE && reqfile->GetAICHHashset()->HasValidMasterHash()) After: ~~~~~~~ case OP_AICHFILEHASHREQ: { if (m_client && reqfile && m_client->IsSupportingAICH() && reqfile->GetAICHHashset()->GetStatus() == AICH_HASHSETCOMPLETE && reqfile->GetAICHHashset()->HasValidMasterHash()) | ||||||||
Tags | No tags attached. | ||||||||
Fixed in Revision | |||||||||
Operating System | |||||||||
Attached Files | |||||||||
Notes | |
(0000977) eyalzo (reporter) 2005-05-18 11:29 |
There is one more in: if (m_client->IsSupportingAICH() && pPartFile->GetAICHHashset()->GetStatus() == AICH_HASHSETCOMPLETE Which I have changed to: if (m_client && m_client->IsSupportingAICH() && pPartFile->GetAICHHashset()->GetStatus() == AICH_HASHSETCOMPLETE |
(0000979) Kry (manager) 2005-05-19 01:14 |
ACK (you're good, btw, many thanks) |
(0000981) Kry (manager) 2005-05-19 02:03 edited on: 2005-05-19 02:06 |
Actually, your tests are not needed. The events are sync (so i.e. one client can NEVER be deleted from another event/thread). The places where those tests are added are strategically placed: one client can only die on a SendPacket function. So this crashes should _never_ happen. If they do, there's a bigger problem out there. I could have skipped some SendPacket call, so feel free to correct me. edited on: 05-19-05 02:06 |
(0000982) eyalzo (reporter) 2005-05-19 07:10 |
Thanks. I didn't know that. I just had several crashes in rc8, so I added these tests everywhere, and problem was solved. Now I see that these two were not the reason, but the other two that were already fixed in 2.0.0final. And, I think it's a good practice to add tests like these even when they're not needed. Becuase one day someone might add a SendPacket somewhere... |
(0000985) Kry (manager) 2005-05-20 02:03 |
Well, what's life without new bugs ;) Closing anyway :) |
Issue History | |||
Date Modified | Username | Field | Change |
2005-05-18 11:24 | eyalzo | New Issue | |
2005-05-18 11:29 | eyalzo | Note Added: 0000977 | |
2005-05-19 01:14 | Kry | Status | new => assigned |
2005-05-19 01:14 | Kry | Assigned To | => Kry |
2005-05-19 01:14 | Kry | Note Added: 0000979 | |
2005-05-19 01:14 | Kry | Status | assigned => acknowledged |
2005-05-19 02:03 | Kry | Note Added: 0000981 | |
2005-05-19 02:06 | Kry | Note Edited: 0000981 | |
2005-05-19 07:10 | eyalzo | Note Added: 0000982 | |
2005-05-20 02:03 | Kry | Status | acknowledged => resolved |
2005-05-20 02:03 | Kry | Fixed in Version | => CVS |
2005-05-20 02:03 | Kry | Resolution | open => fixed |
2005-05-20 02:03 | Kry | Note Added: 0000985 |
Copyright © 2000 - 2024 MantisBT Team |