Closed
Bug 254394
Opened 21 years ago
Closed 21 years ago
nsHttpHandler PR_Assert WellOrdered
Categories
(Core :: Networking: HTTP, defect)
Tracking
()
VERIFIED
FIXED
People
(Reporter: timeless, Assigned: Callek)
Details
Attachments
(2 files)
|
904 bytes,
patch
|
darin.moz
:
review-
|
Details | Diff | Splinter Review |
|
1.62 KB,
patch
|
darin.moz
:
review+
darin.moz
:
superreview+
mkaply
:
approval1.7.5-
|
Details | Diff | Splinter Review |
This is amusing since it's ABA
XPCOM has a monitor for getservice (seen twice in this stack), and in the middle
there's a monitor at nsHttpConnectionMgr::Init.
nspr4.dll!PR_Assert(const char * s=0x0038f9cc, const char * file=0x0038f9a4,
int ln=0x000000e8) Line 602 C
xpcom.dll!WellOrdered(const void * addr1=0x015e3e60, const void *
addr2=0x003ff6d0, const void * callsite2=0x00000000, unsigned int *
index2p=0x0012f1c4, nsNamedVector * * vec1p=0x0012f1c8, nsNamedVector * *
vec2p=0x0012f1d4) Line 232 + 0x19 C++
xpcom.dll!nsAutoLockBase::nsAutoLockBase(void * addr=0x003ff6d0,
nsAutoLockBase::nsAutoLockType type=eAutoMonitor) Line 281 + 0x15 C++
xpcom.dll!nsAutoMonitor::nsAutoMonitor(PRMonitor * mon=0x003ff6d0) Line 247
+ 0x10 C++
xpcom.dll!nsComponentManagerImpl::GetService(const nsID & aClass={...}, const
nsID & aIID={...}, void * * result=0x0012f26c) Line 2062 C++
xpcom.dll!nsGetServiceByCID::operator()(const nsID & aIID={...}, void * *
aInstancePtr=0x003ff064) Line 101 + 0x15 C++
necko.dll!nsCOMPtr<nsIEventTarget>::assign_from_helper(const nsCOMPtr_helper &
helper={...}, const nsID & aIID={...}) Line 1050 + 0x10 C++
necko.dll!nsCOMPtr<nsIEventTarget>::operator=(const nsCOMPtr_helper &
rhs={...}) Line 643 C++
> necko.dll!nsHttpConnectionMgr::Init(unsigned short maxConns=0x0018, unsigned
short maxConnsPerHost=0x0008, unsigned short maxConnsPerProxy=0x0008, unsigned
short maxPersistConnsPerHost=0x0002, unsigned short
maxPersistConnsPerProxy=0x0004, unsigned short maxRequestDelay=0x000a, unsigned
short maxPipelinedRequests=0x0004) Line 105 + 0x1f C++
necko.dll!nsHttpHandler::InitConnectionMgr() Line 287 + 0x2f C++
necko.dll!nsHttpHandler::Init() Line 248 C++
necko.dll!nsHttpHandlerConstructor(nsISupports * aOuter=0x00000000, const nsID
& aIID={...}, void * * aResult=0x0012f3a8) Line 187 + 0x4c C++
xpcom.dll!nsGenericFactory::CreateInstance(nsISupports * aOuter=0x00000000,
const nsID & aIID={...}, void * * aResult=0x0012f3a8) Line 82 + 0xe C++
xpcom.dll!nsComponentManagerImpl::CreateInstance(const nsID & aClass={...},
nsISupports * aDelegate=0x00000000, const nsID & aIID={...}, void * *
aResult=0x015ea708) Line 1886 + 0x10 C++
xpcom.dll!nsComponentManagerImpl::GetService(const nsID & aClass={...}, const
nsID & aIID={...}, void * * result=0x0012f3e0) Line 2090 C++
xpcom.dll!nsGetServiceByCID::operator()(const nsID & aIID={...}, void * *
aInstancePtr=0x003ff064) Line 101 + 0x15 C++
gkplugin.dll!nsCOMPtr<nsIHttpProtocolHandler>::assign_from_helper(const
nsCOMPtr_helper & helper={...}, const nsID & aIID={...}) Line 1050 + 0x10 C++
gkplugin.dll!nsCOMPtr<nsIHttpProtocolHandler>::nsCOMPtr<nsIHttpProtocolHandler>(const
nsCOMPtr_helper & helper={...}) Line 589 C++
gkplugin.dll!nsPluginHostImpl::UserAgent(const char * * retstring=0x0012f6ac)
Line 2739 + 0x22 C++
jpins7.dll!6d35318c()
jpinsp.dll!6d366bb4()
There should be a way for B to avoid holding its monitor while it gets the STS.
I'll post a suggested patch which should resolve this.
Attachment #155247 -
Flags: superreview?(brendan)
Attachment #155247 -
Flags: review?(darin)
Comment 2•21 years ago
|
||
+ nsCOMPtr<nsIEventTarget> sts = do_GetService(kSocketTransportServiceCID, &rv);
looks like this rv is now ignored.
Comment 3•21 years ago
|
||
Comment on attachment 155247 [details] [diff] [review]
don't getservice while monitoring
like biesi said: do something with the |rv| returned from do_GetService. maybe
add |if NS_FAILED(rv)) return rv;|
i guess we normally don't hit this because the IO service would have already
initialized the STS.
Attachment #155247 -
Flags: review?(darin) → review-
| Assignee | ||
Comment 4•21 years ago
|
||
Same patch with review comments added (fixed for timeless)
| Assignee | ||
Comment 5•21 years ago
|
||
Comment on attachment 156669 [details] [diff] [review]
Patch + rv verification
please fix erroneous \t's in my added lines on checkin (damn MSVC; Knew I
shouldnt have used it to create the patch)
If you'd rather have a patch with that fixed, request it and add me to CC at
the same time.
Attachment #156669 -
Flags: superreview?(brendan)
Attachment #156669 -
Flags: review?(darin)
| Assignee | ||
Updated•21 years ago
|
Attachment #155247 -
Flags: superreview?(brendan)
Comment 6•21 years ago
|
||
Comment on attachment 156669 [details] [diff] [review]
Patch + rv verification
r+sr=darin
i'll fix the indentation before landing this patch.
Attachment #156669 -
Flags: superreview?(brendan)
Attachment #156669 -
Flags: superreview+
Attachment #156669 -
Flags: review?(darin)
Attachment #156669 -
Flags: review+
Comment 7•21 years ago
|
||
checked in by timeless 2004-08-26 06:45
Status: UNCONFIRMED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Attachment #156669 -
Flags: approval1.7.x?
Status: RESOLVED → VERIFIED
Summary: mozilla nsHttpHandler PR_Assert WellOrdered → nsHttpHandler PR_Assert WellOrdered
Comment 9•21 years ago
|
||
Comment on attachment 156669 [details] [diff] [review]
Patch + rv verification
This doesn't strike me as branch material. Ping me if you think otherwise.
Attachment #156669 -
Flags: approval1.7.x? → approval1.7.x-
| Reporter | ||
Comment 10•21 years ago
|
||
mkaply@us.ibm.com: among other problems, PR_Asserts are fatal.
Comment 11•21 years ago
|
||
What causes this to actually happen?
| Reporter | ||
Comment 12•21 years ago
|
||
really bad luck involving startup and java (or at least that's the case in
comment 0, it could probably happen some other way too).
Comment 13•21 years ago
|
||
OK, so after drivers discussion, if it didn't make the aviary branch, and it's
gecko, it's not going in 1.7.5. This will be a 1.7.6 candidate.
We want 1.7.5 to match aviary as close as possible. Even crashes.
You need to log in
before you can comment on or make changes to this bug.
Description
•