Launching mfcembed crashes [@ GKLAYOUT.DLL]

VERIFIED FIXED

Status

()

Core
Embedding: APIs
--
critical
VERIFIED FIXED
17 years ago
17 years ago

People

(Reporter: bmartin, Assigned: Stuart Parmenter)

Tracking

({crash, smoketest, topcrash})

Trunk
x86
Windows ME
crash, smoketest, topcrash
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(crash signature)

Attachments

(2 attachments)

(Reporter)

Description

17 years ago
Latest mfcembed Mtrunk dated: 03-23-01

O/S: Windows ME
System: CompaqDeskPro 6000 166MHz 64MB

Steps:
1. Download latest embed-win32.zip from 
ftp://ftp.mozilla.org/pub/mozilla/nightly/2001-03-23-06-Mtrunk/  and extract 
file
2. Launch mfcembed.exe

Results:

"Mfcembed - Mfcembed has caused an error in GKLAYOUT.DLL Mfcembed will now 
close" [Close]

Comment 1

17 years ago
Brian : What happens when you launch winembed?

Comment 2

17 years ago
Downloaded the build from 
ftp://ftp.mozilla.org/pub/mozilla/nightly/2001-03-23-06-Mtrunk/ 
and tried running winembed from there - it crashes in gklayout.dll too.

Stack trace does not provide much info either.

Looks like there's some file mismatches.

Cc:ing Jud and Adam.

Comment 3

17 years ago
As of this morning both winembed and mfcembed work fine when executed from the 
win32_d.obj/bin dir. However, we're still seeing this crash when they're run 
from the Embed dir(after running the makefile.win from the embedding/config dir 
to make the embedding distribution)

Cc:ing cls@seawood.org since he was the last one to touch the 
embedding/config/makefile.win to see if he can provide some insight what's 
happening here.

Comment 4

17 years ago
*blink*  Red herring.  This crash predates all of my recent chrome changes. 

Comment 5

17 years ago
Upon some investigation found that we're missing some components from the Embed 
dist:

By adding the following dlls to the Embed dist i get a little bit further than 
before:

imglib2.dll
nkcache.dll

However, then it assert's at modules/libpr0n/src/ImageCache.cpp(Line 61):

nsCOMPtr<nsICacheService> 
cacheService(do_GetService("@mozilla.org/network/cache-service;1"));
NS_ASSERTION(cacheService, "Unable to get the cache service"); <--Line 61

Comment 6

17 years ago
here's a stack trace chak sent me. I believe pavlovs been in this code doing
image lib stuff. smoketests can't be run w/ this bug, upgrading severity.

NTDLL! 77f762e8()
nsDebug::Assertion(const char * 0x016937f8
??_C@_0DJ@KMGL@You?5can?8t?5dereference?5a?5NULL?5nsC@, const char * 0x0169383c
??_C@_0N@NHHF@mRawPtr?5?$CB?$DN?50?$AA@, const char * 0x01698a20
??_C@_0CE@LLDK@?4?4?2?4?4?2?4?4?2?4?4?2dist?2include?2nsCOMPt@, int 648) line
286 + 13 bytes
nsDebug::PreCondition(const char * 0x016937f8
??_C@_0DJ@KMGL@You?5can?8t?5dereference?5a?5NULL?5nsC@, const char * 0x0169383c
??_C@_0N@NHHF@mRawPtr?5?$CB?$DN?50?$AA@, const char * 0x01698a20
??_C@_0CE@LLDK@?4?4?2?4?4?2?4?4?2?4?4?2dist?2include?2nsCOMPt@, int 648) line
430 + 21 bytes
nsCOMPtr<imgILoader>::operator->() line 648 + 34 bytes
nsImageBoxFrame::UpdateImage(nsIPresContext * 0x02921640, int & 0) line 354 + 78
bytes
nsImageBoxFrame::DidSetStyleContext(nsImageBoxFrame * const 0x00bb23c0,
nsIPresContext * 0x02921640) line 464
nsFrame::SetStyleContext(nsFrame * const 0x00bb23c0, nsIPresContext *
0x02921640, nsIStyleContext * 0x0294f0d0) line 476
nsFrame::Init(nsFrame * const 0x00bb23c0, nsIPresContext * 0x02921640,
nsIContent * 0x02967770, nsIFrame * 0x00bb2330, nsIStyleContext * 0x0294f0d0,
nsIFrame * 0x00000000) line 327
nsLeafBoxFrame::Init(nsLeafBoxFrame * const 0x00bb23c0, nsIPresContext *
0x02921640, nsIContent * 0x02967770, nsIFrame * 0x00bb2330, nsIStyleContext *
0x0294f0d0, nsIFrame * 0x00000000) line 92 + 29 bytes
nsImageBoxFrame::Init(nsImageBoxFrame * const 0x00bb23c0, nsIPresContext *
0x02921640, nsIContent * 0x02967770, nsIFrame * 0x00bb2330, nsIStyleContext *
0x0294f0d0, nsIFrame * 0x00000000) line 203 + 29 bytes
nsCSSFrameConstructor::InitAndRestoreFrame(nsIPresContext * 0x02921640,
nsFrameConstructorState & {...}, nsIContent * 0x02967770, nsIFrame * 0x00bb2330,
nsIStyleContext * 0x0294f0d0, nsIFrame * 0x00000000, nsIFrame * 0x00bb23c0) line
6648 + 32 bytes
nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell * 0x029268d0,
nsIPresContext * 0x02921640, nsFrameConstructorState & {...}, nsIContent *
0x02967770, nsIFrame * 0x00bb2330, nsIAtom * 0x021ae3b0, int 6, nsIStyleContext
* 0x0294f0d0, nsFrameItems & {...}, int 0, int & 0) line 5777
nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell * 0x029268d0,
nsIPresContext * 0x02921640, nsFrameConstructorState & {...}, nsIContent *
0x02967770, nsIFrame * 0x00bb2330, nsIAtom * 0x021ae3b0, int 6, nsIStyleContext
* 0x0294f0d0, nsFrameItems & {...}, int 0) line 7176 + 60 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x029268d0, nsIPresContext
* 0x02921640, nsFrameConstructorState & {...}, nsIContent * 0x02967770, nsIFrame
* 0x00bb2330, nsFrameItems & {...}) line 7076 + 56 bytes
nsCSSFrameConstructor::ProcessChildren(nsIPresShell * 0x029268d0, nsIPresContext
* 0x02921640, nsFrameConstructorState & {...}, nsIContent * 0x02967960, nsIFrame
* 0x00bb2330, int 0, nsFrameItems & {...}, int 0, nsTableCreator * 0x00000000)
line 11192 + 43 bytes
nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell * 0x029268d0,
nsIPresContext * 0x02921640, nsFrameConstructorState & {...}, nsIContent *
0x02967960, nsIFrame * 0x00bb229c, nsIAtom * 0x021b1d40, int 6, nsIStyleContext
* 0x029674a0, nsFrameItems & {...}, int 0, int & 0) line 5800 + 44 bytes
nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell * 0x029268d0,
nsIPresContext * 0x02921640, nsFrameConstructorState & {...}, nsIContent *
0x02967960, nsIFrame * 0x00bb229c, nsIAtom * 0x021b1d40, int 6, nsIStyleContext
* 0x029674a0, nsFrameItems & {...}, int 0) line 7176 + 60 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x029268d0, nsIPresContext
* 0x02921640, nsFrameConstructorState & {...}, nsIContent * 0x02967960, nsIFrame
* 0x00bb229c, nsFrameItems & {...}) line 7076 + 56 bytes
nsCSSFrameConstructor::ProcessChildren(nsIPresShell * 0x029268d0, nsIPresContext
* 0x02921640, nsFrameConstructorState & {...}, nsIContent * 0x02966f30, nsIFrame
* 0x00bb229c, int 0, nsFrameItems & {...}, int 0, nsTableCreator * 0x00000000)
line 11192 + 43 bytes
nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell * 0x029268d0,
nsIPresContext * 0x02921640, nsFrameConstructorState & {...}, nsIContent *
0x02966f30, nsIFrame * 0x00bb2204, nsIAtom * 0x021b2f30, int 6, nsIStyleContext
* 0x029664f0, nsFrameItems & {...}, int 0, int & 0) line 5800 + 44 bytes
nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell * 0x029268d0,
nsIPresContext * 0x02921640, nsFrameConstructorState & {...}, nsIContent *
0x02966f30, nsIFrame * 0x00bb2204, nsIAtom * 0x021b2f30, int 6, nsIStyleContext
* 0x029664f0, nsFrameItems & {...}, int 0) line 7176 + 60 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x029268d0, nsIPresContext
* 0x02921640, nsFrameConstructorState & {...}, nsIContent * 0x02966f30, nsIFrame
* 0x00bb2204, nsFrameItems & {...}) line 7076 + 56 bytes
nsCSSFrameConstructor::ProcessChildren(nsIPresShell * 0x029268d0, nsIPresContext
* 0x02921640, nsFrameConstructorState & {...}, nsIContent * 0x02949810, nsIFrame
* 0x00bb2204, int 0, nsFrameItems & {...}, int 0, nsTableCreator * 0x00000000)
line 11192 + 43 bytes
nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell * 0x029268d0,
nsIPresContext * 0x02921640, nsFrameConstructorState & {...}, nsIContent *
0x02949810, nsIFrame * 0x00bb20ac, nsIAtom * 0x021ae7c0, int 6, nsIStyleContext
* 0x0294acf0, nsFrameItems & {...}, int 0, int & 0) line 5800 + 44 bytes
nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell * 0x029268d0,
nsIPresContext * 0x02921640, nsFrameConstructorState & {...}, nsIContent *
0x02949810, nsIFrame * 0x00bb20ac, nsIAtom * 0x021ae7c0, int 6, nsIStyleContext
* 0x0294acf0, nsFrameItems & {...}, int 0) line 7176 + 60 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x029268d0, nsIPresContext
* 0x02921640, nsFrameConstructorState & {...}, nsIContent * 0x02949810, nsIFrame
* 0x00bb20ac, nsFrameItems & {...}) line 7076 + 56 bytes
nsCSSFrameConstructor::CreateAnonymousFrames(nsIPresShell * 0x029268d0,
nsIPresContext * 0x02921640, nsFrameConstructorState & {...}, nsIContent *
0x02920150, nsIDocument * 0x0226fe50, nsIFrame * 0x00bb20ac, nsFrameItems &
{...}) line 5195
nsCSSFrameConstructor::BuildGfxScrollFrame(nsIPresShell * 0x029268d0,
nsIPresContext * 0x02921640, nsFrameConstructorState & {...}, nsIContent *
0x02920150, nsIDocument * 0x0226fe50, nsIFrame * 0x00bb2038, nsIStyleContext *
0x029480a0, int 1, nsIFrame * & 0x00bb20ac, nsFrameItems & {...}, nsIFrame *
0x00bb2154) line 6087
nsCSSFrameConstructor::BeginBuildingScrollFrame(nsIPresShell * 0x029268d0,
nsIPresContext * 0x02921640, nsFrameConstructorState & {...}, nsIContent *
0x02920150, nsIStyleContext * 0x029480a0, nsIFrame * 0x00bb2038, nsIAtom *
0x021a9970, nsIDocument * 0x0226fe50, int 1, nsIFrame * & 0x00bb2074,
nsCOMPtr<nsIStyleContext> & {...}, nsIFrame * & 0x00000000, nsIFrame *
0x00000000) line 5
nsCSSFrameConstructor::ConstructRootFrame(nsCSSFrameConstructor * const
0x02926c60, nsIPresShell * 0x029268d0, nsIPresContext * 0x02921640, nsIContent *
0x02920150, nsIFrame * & 0x00000000) line 3850
StyleSetImpl::ConstructRootFrame(StyleSetImpl * const 0x02926f80, nsIPresContext
* 0x02921640, nsIContent * 0x02920150, nsIFrame * & 0x00000000) line 1200 + 39 bytes
PresShell::InitialReflow(PresShell * const 0x029268d0, int 9072, int 5508) line 2379
HTMLContentSink::StartLayout() line 3550
HTMLContentSink::OpenBody(HTMLContentSink * const 0x02920580, const
nsIParserNode & {...}) line 2859
CNavDTD::OpenBody(const nsIParserNode * 0x00baf060) line 3066 + 31 bytes
CNavDTD::OpenContainer(const nsIParserNode * 0x00baf060, nsHTMLTag
eHTMLTag_body, int 1, nsEntryStack * 0x00000000) line 3386 + 12 bytes
CNavDTD::HandleDefaultStartToken(CToken * 0x00ba7b58, nsHTMLTag eHTMLTag_body,
nsIParserNode * 0x00baf060) line 1258 + 20 bytes
CNavDTD::HandleStartToken(CToken * 0x00ba7b58) line 1671 + 22 bytes
CNavDTD::HandleToken(CNavDTD * const 0x0292f3f0, CToken * 0x00ba7b58, nsIParser
* 0x02265970) line 824 + 12 bytes
CNavDTD::BuildModel(CNavDTD * const 0x0292f3f0, nsIParser * 0x02265970,
nsITokenizer * 0x02930ce0, nsITokenObserver * 0x00000000, nsIContentSink *
0x02920580) line 518 + 20 bytes
nsParser::BuildModel() line 2028 + 34 bytes
nsParser::ResumeParse(int 1, int 1) line 1909 + 11 bytes
nsParser::ContinueParsing() line 1521 + 17 bytes
CSSLoaderImpl::Cleanup(URLKey & {...}, SheetLoadData * 0x02932ed0) line 709
CSSLoaderImpl::SheetComplete(nsICSSStyleSheet * 0x00000000, SheetLoadData *
0x02932ed0) line 833
CSSLoaderImpl::ParseSheet(nsIUnicharInputStream * 0x029334f0, SheetLoadData *
0x02932ed0, int & 1, nsICSSStyleSheet * & 0x02932750) line 868
CSSLoaderImpl::DidLoadStyle(nsIStreamLoader * 0x02932bf0, nsString * 0x02933cd0,
SheetLoadData * 0x02932ed0, unsigned int 0) line 903 + 27 bytes
SheetLoadData::OnStreamComplete(SheetLoadData * const 0x02932ed0,
nsIStreamLoader * 0x02932bf0, nsISupports * 0x00000000, unsigned int 0, unsigned
int 972, const char * 0x02934360) line 643
nsStreamLoader::OnStopRequest(nsStreamLoader * const 0x02932bf4, nsIRequest *
0x02932ad0, nsISupports * 0x00000000, unsigned int 0, const unsigned short *
0x100b0a38 gCommonEmptyBuffer) line 120 + 81 bytes
nsHTTPFinalListener::OnStopRequest(nsHTTPFinalListener * const 0x02932950,
nsIRequest * 0x02932ad0, nsISupports * 0x00000000, unsigned int 0, const
unsigned short * 0x100b0a38 gCommonEmptyBuffer) line 1130 + 42 bytes
nsHTTPChannel::ResponseCompleted(nsIStreamListener * 0x02932950, unsigned int 0,
const unsigned short * 0x100b0a38 gCommonEmptyBuffer) line 2427 + 36 bytes
nsHTTPServerListener::OnStopRequest(nsHTTPServerListener * const 0x029330b0,
nsIRequest * 0x02934dd0, nsISupports * 0x02932ad0, unsigned int 0, const
unsigned short * 0x100b0a38 gCommonEmptyBuffer) line 704
nsOnStopRequestEvent::HandleEvent(nsOnStopRequestEvent * const 0x029322f0) line
178 + 67 bytes
nsStreamObserverEvent::HandlePLEvent(PLEvent * 0x029322f4) line 79
PL_HandleEvent(PLEvent * 0x029322f4) line 588 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x00975a50) line 518 + 9 bytes
_md_EventReceiverProc(HWND__ * 0xd66b00d6, unsigned int 49336, unsigned int 0,
long 9919056) line 1069 + 9 bytes
USER32! 77e7124c()
00975a50()
Assignee: chak → pavlov
Severity: critical → blocker
Keywords: crash, smoketest
Summary: Launching mfcembed causes error in GKLAYOUT.DLL → Launching mfcembed crashes in GKLAYOUT.DLL

Comment 7

17 years ago
Adding myself to the Cc: list

Comment 8

17 years ago
Chak, did you delete component.reg so it gets rebuilt?

Comment 9

17 years ago
Deleted components.reg and tried. It asserts at the following place as mentioned 
in my earlier post:

modules/libpr0n/src/ImageCache.cpp(Line 61):

nsCOMPtr<nsICacheService> 
cacheService(do_GetService("@mozilla.org/network/cache-service;1"));
NS_ASSERTION(cacheService, "Unable to get the cache service"); <-------Line 61


Comment 10

17 years ago
So did anyone add the new necko cache dll to the embed jar file?

Comment 11

17 years ago
Ok, i was getting the assert that it could not get the cache service because i 
was copying the nkcache.dll to the wrong place.

Blowing away the component.reg and copying the nkcache.dll to the components dir 
fixes the crash.

Windows patch on the way. Could someone submit a Unix patch since i can't seem 
to get to my linux box at work (to get the correct .so filenames)

Comment 12

17 years ago
Created attachment 28797 [details] [diff] [review]
Patch to basebrowser-win to copy reqd. cache/imglib dlls to teh Embed dist...

Comment 13

17 years ago
Oops. Sorry about the dup info.  I really need to stop reading bug reports first
thing in the morning.  Wouldn't all of the component/img*.dlls be required in
order to actually decode images?  Wouldn't just adding nkcache & imglib2 just
solve the startup crash but not actually decode images?

Comment 14

17 years ago
The patch fixes the crash but the images are not displayed at all.

Looks like there a few img*.dll's which are not part of the Embed dist. I copied 
all the img*.dlls but then i get another crash - looks like yet anoher component 
dependency.

We get a crash at the code below, since i guess we're missing 
"@mozilla.org/gfx/image/frame;2" component:

    // initalize the frame and append it to the container
    decoder->mImageFrame = do_CreateInstance("@mozilla.org/gfx/image/frame;2");
    decoder->mImageFrame->Init(
      decoder->mGIFStruct.x_offset, decoder->mGIFStruct.y_offset, 
      decoder->mGIFStruct.width, decoder->mGIFStruct.height, format);

Jud : Can you Cc the imglib owner on this bug so that we can get all the dlls 
needed by imglib?

Comment 15

17 years ago
Adding gfx2.dll & gfx2.xpt to the list seems to make things work again.

Comment 16

17 years ago
Created attachment 28804 [details] [diff] [review]
Added additional imglib dlls - not sure if anymore are needed. Can i get a unix patch?

Comment 17

17 years ago
r=cls on the patch.  I'm not seeing this problem on the unix side with gtkEmbed.
 I'm seeing a separate optimize-only crash (same as speedracer, I suspect).

Comment 18

17 years ago
cls : Can i go ahead and check this in - the tree is closed now.
I'm not sure of the process...Thanks

Comment 19

17 years ago
It's best to log onto IRC and ask leaf.

Comment 20

17 years ago
Fix just checked in. Thanks everyone for your help.
Status: NEW → RESOLVED
Last Resolved: 17 years ago
Resolution: --- → FIXED
*** Bug 73480 has been marked as a duplicate of this bug. ***
(Reporter)

Comment 22

17 years ago
re-opening....

Latest mfcembed (03-26-01-14:22) crashes in gklayout.dll 
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
(Assignee)

Comment 23

17 years ago
uh, where?

Comment 24

17 years ago
Brian : Can you check to see if yout have the following dlls under 
Embed/Components dir?

imglib2.dll
imggif.dll
imgjpeg.dll
imgpng.dll
imgppm.dll
gfx2.dll
nkcache.dll

Just wanted to make sure you've got the build with these updates...
(Reporter)

Comment 25

17 years ago
The files listed above are not included in the Embed\Components directory.

It appears that the release team's respin didn't pick up your fix.
(Reporter)

Comment 26

17 years ago
This morning's build is working. (03-27-01-07:37)

Marking resolved fixed.
Status: REOPENED → RESOLVED
Last Resolved: 17 years ago17 years ago
Resolution: --- → FIXED
(Reporter)

Comment 27

17 years ago
Marking Verified
Status: RESOLVED → VERIFIED

Comment 28

17 years ago
This bug is going to hit gtkEmbed as soon as libpr0n is turned on for Linux.

Comment 29

17 years ago
CC'ing pavlov.

Stuart, could you ensure that when libpr0n lands on Linux that the embedding 
manifest is updated correctly?

Comment 30

17 years ago
re-opening until this is addressed on linux.
Status: VERIFIED → REOPENED
Resolution: FIXED → ---

Comment 31

17 years ago
Jud says this is not a blocker
Severity: blocker → critical
(Assignee)

Comment 32

17 years ago
ok.  i'm marking this fixed.  if you want to file a new bug reminding me to do 
it on linux thats fine.
Status: REOPENED → RESOLVED
Last Resolved: 17 years ago17 years ago
Resolution: --- → FIXED

Comment 33

17 years ago
Bug 73773 covers the Unix manifest changes

Comment 34

17 years ago
adding topcrash keyword and [@ GKLAYOUT.DLL] for tracking.
Keywords: topcrash
Summary: Launching mfcembed crashes in GKLAYOUT.DLL → Launching mfcembed crashes [@ GKLAYOUT.DLL]
verified with embed build from 4/9
Status: RESOLVED → VERIFIED
Crash Signature: [@ GKLAYOUT.DLL]
You need to log in before you can comment on or make changes to this bug.