View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000439aMuleMiscpublic2005-05-18 11:242005-05-20 02:03
Reportereyalzo 
Assigned ToKry 
PrioritynormalSeveritycrashReproducibilityrandom
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version2.0.0 
Target VersionFixed in VersionSVN 
Summary0000439: Null pointers in ListenSocket.cpp
DescriptionUnder 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())
TagsNo tags attached.
Fixed in Revision
Operating System
Attached Files

- Relationships

-  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
Powered by Mantis Bugtracker