New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deep freeze on Intel [10.4 QE only] #209

Open
GoogleCodeExporter opened this Issue Aug 9, 2015 · 21 comments

Comments

Projects
None yet
1 participant
@GoogleCodeExporter
Contributor

GoogleCodeExporter commented Aug 9, 2015

What steps will reproduce the problem?
1. Open Preferences->Content->Fonts & Colors - Advanced...
2. Select one of the categories and open font pulldown menu

The pulldown menu opens up but the display is partly incorrect (white & black 
boxes) and eventually the system will freeze. This happens on 10.4.11, but does 
not happen with the same binary on 10.6.8 and 10.8.2, at least.

This also happens sporadically during normal browsing.

Original issue reported on code.google.com by lei...@gmail.com on 4 Mar 2013 at 1:49

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
I just found that the system is still functional over SSH. Looking at the log 
for windowserver it reports a ton of OpenGL errors.

Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelAccess : GL error 0502 
exiting
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelAccess : GL error 0502 
exiting
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelAccess : GL error 0502 
exiting
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelAccess : GL error 0502 
exiting
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelCompositeLayer_ : GL 
error 0502 from layer tile(0,0) render
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelCompositeLayer_ : GL 
error 0502 from layer tile(1,0) render
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelCompositeLayer_ : GL 
error 0502 from layer tile(0,1) render

Not sure if this is a TFF problem or a system bug. I will have to try disabling 
Quartz Extreme. OpenGL is off in the build (I believe) but in any case it's 
checked off.

Original comment by lei...@gmail.com on 4 Mar 2013 at 1:52

Contributor

GoogleCodeExporter commented Aug 9, 2015

I just found that the system is still functional over SSH. Looking at the log 
for windowserver it reports a ton of OpenGL errors.

Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelAccess : GL error 0502 
exiting
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelAccess : GL error 0502 
exiting
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelAccess : GL error 0502 
exiting
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelAccess : GL error 0502 
exiting
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelCompositeLayer_ : GL 
error 0502 from layer tile(0,0) render
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelCompositeLayer_ : GL 
error 0502 from layer tile(1,0) render
Mar 04 08:48:11  [61] kCGErrorCannotComplete: CGXGLAccelCompositeLayer_ : GL 
error 0502 from layer tile(0,1) render

Not sure if this is a TFF problem or a system bug. I will have to try disabling 
Quartz Extreme. OpenGL is off in the build (I believe) but in any case it's 
checked off.

Original comment by lei...@gmail.com on 4 Mar 2013 at 1:52

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
Confirmed it does *not* happen with Quartz Extreme disabled. Not sure what to 
make of this at this point.

Original comment by lei...@gmail.com on 4 Mar 2013 at 2:02

Contributor

GoogleCodeExporter commented Aug 9, 2015

Confirmed it does *not* happen with Quartz Extreme disabled. Not sure what to 
make of this at this point.

Original comment by lei...@gmail.com on 4 Mar 2013 at 2:02

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
Chris mentioned something similar with drop-downs on PPC, but it just made the 
browser weird, not the entire system (and you really had to work at it), so it 
might not be the same underlying issue.

However, the browser doesn't have OpenGL on, does it?

Original comment by classi...@floodgap.com on 5 Mar 2013 at 4:44

Contributor

GoogleCodeExporter commented Aug 9, 2015

Chris mentioned something similar with drop-downs on PPC, but it just made the 
browser weird, not the entire system (and you really had to work at it), so it 
might not be the same underlying issue.

However, the browser doesn't have OpenGL on, does it?

Original comment by classi...@floodgap.com on 5 Mar 2013 at 4:44

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
I have hardware acceleration checked off in the settings. I'm not sure if it's 
being built with GL acceleration in the first place--it's not on PPC, right?

Original comment by lei...@gmail.com on 5 Mar 2013 at 2:43

Contributor

GoogleCodeExporter commented Aug 9, 2015

I have hardware acceleration checked off in the settings. I'm not sure if it's 
being built with GL acceleration in the first place--it's not on PPC, right?

Original comment by lei...@gmail.com on 5 Mar 2013 at 2:43

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
No. In fact, it's explicitly disabled.

Any way of testing it with 10.5.8?

Original comment by classi...@floodgap.com on 6 Mar 2013 at 3:02

Contributor

GoogleCodeExporter commented Aug 9, 2015

No. In fact, it's explicitly disabled.

Any way of testing it with 10.5.8?

Original comment by classi...@floodgap.com on 6 Mar 2013 at 3:02

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
It's OK on 10.5.8, too.

Original comment by lei...@gmail.com on 6 Mar 2013 at 3:25

Contributor

GoogleCodeExporter commented Aug 9, 2015

It's OK on 10.5.8, too.

Original comment by lei...@gmail.com on 6 Mar 2013 at 3:25

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
Under about:support I'd verify that OpenGL is "blocked for your OS version." If 
it shows any other value, something is amiss (and I can give you some ideas 
where to look). If it does show it's blocked, then I don't know what to 
suggest. The version of OpenGL in Intel Tiger is 2.0 but only 1.2 in PPC Tiger, 
so this must be a OS bug that the later code trips.

The other option, which is less optimal but at least helps some class of users, 
is just to change the minimum version to 10.5 for the Intel fork until this is 
fixed. At least that's more helpful than the alternative.

Original comment by classi...@floodgap.com on 6 Mar 2013 at 4:06

Contributor

GoogleCodeExporter commented Aug 9, 2015

Under about:support I'd verify that OpenGL is "blocked for your OS version." If 
it shows any other value, something is amiss (and I can give you some ideas 
where to look). If it does show it's blocked, then I don't know what to 
suggest. The version of OpenGL in Intel Tiger is 2.0 but only 1.2 in PPC Tiger, 
so this must be a OS bug that the later code trips.

The other option, which is less optimal but at least helps some class of users, 
is just to change the minimum version to 10.5 for the Intel fork until this is 
fixed. At least that's more helpful than the alternative.

Original comment by classi...@floodgap.com on 6 Mar 2013 at 4:06

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
OK, it does say it is blocked for the OS version.

I suppose making it 10.5-only is the way to go for now. Is this just a change 
in .mozconfig?

Since the code is here anyone who really, really wants it for 10.4 can build it 
themselves. I've gone a long time browsing without running into the crash so 
it's not completely useless, but it's totally unpredictable. I haven't seen any 
sort of pattern as to why it crashes when it does. The font dialog is the only 
action I've found where it crashes every time.

There is also the apparent workaround of disabling QE, but that was very slow. 
Somehow it is worse than on my B&W G3 that doesn't support QE by default.

Original comment by lei...@gmail.com on 6 Mar 2013 at 4:56

Contributor

GoogleCodeExporter commented Aug 9, 2015

OK, it does say it is blocked for the OS version.

I suppose making it 10.5-only is the way to go for now. Is this just a change 
in .mozconfig?

Since the code is here anyone who really, really wants it for 10.4 can build it 
themselves. I've gone a long time browsing without running into the crash so 
it's not completely useless, but it's totally unpredictable. I haven't seen any 
sort of pattern as to why it crashes when it does. The font dialog is the only 
action I've found where it crashes every time.

There is also the apparent workaround of disabling QE, but that was very slow. 
Somehow it is worse than on my B&W G3 that doesn't support QE by default.

Original comment by lei...@gmail.com on 6 Mar 2013 at 4:56

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
There's no Quartz Extreme on PPC either, but it is very weird that it is so 
slow.

But given that's a workaround, here's a heretical solution. It's a little 
involved, but doable. In toolkit/xre/nsAppRunner.cpp, there is code for popping 
up a dialogue box to prevent two copies of Firefox/TenFourFox/etc running at 
once (look for "kRestartUnlocker"). This uses the XPCOM prompt service to pop 
up a dialogue and then quit the app.

We should be able to -- I've never checked this on 10.4 -- find out if the main 
screen is Quartz Extreme enabled:

NSNumber screenNum = [[[NSScreen mainScreen] deviceDescription] objectForKey: 
@"NSScreenNumber"];
BOOL supportsQuartzExtreme = CGDisplayUsesOpenGLAcceleration( 
(CGDirectDisplayID) [screenNum pointerValue] ); 

This would have to go in a trivial .mm file since it has Obj-C in it with a 
single method which just returns true or false based on supportsQuartzExtreme 
(we could do the OS version check here too since it only applies to 10.4). 
Then, nsAppRunner.cpp can instantiate that C++ class, check it, and if it's 
true, pop up a dialogue (I don't think we need to localize it right now) to 
tell the user to disable Quartz Extreme on 10.4 to run TenFourFox.

CGDisplayUsesOpenGLAcceleration should exist in Intel 10.4, but there may be no 
header, so you might have to fake one up in the .mm. Something like

extern "C" {
BOOL CGDisplayUsesOpenGLAcceleration(CGDirectDisplayID cgddid);
}

should work.

It's just an idea, but it should work, based on what you've said. At least then 
it lets some 10.4 users use it too, and the really motivated could hack it as 
you suggest.

Original comment by classi...@floodgap.com on 6 Mar 2013 at 5:25

  • Changed title: Deep freeze on Intel [10.4 QE only]
Contributor

GoogleCodeExporter commented Aug 9, 2015

There's no Quartz Extreme on PPC either, but it is very weird that it is so 
slow.

But given that's a workaround, here's a heretical solution. It's a little 
involved, but doable. In toolkit/xre/nsAppRunner.cpp, there is code for popping 
up a dialogue box to prevent two copies of Firefox/TenFourFox/etc running at 
once (look for "kRestartUnlocker"). This uses the XPCOM prompt service to pop 
up a dialogue and then quit the app.

We should be able to -- I've never checked this on 10.4 -- find out if the main 
screen is Quartz Extreme enabled:

NSNumber screenNum = [[[NSScreen mainScreen] deviceDescription] objectForKey: 
@"NSScreenNumber"];
BOOL supportsQuartzExtreme = CGDisplayUsesOpenGLAcceleration( 
(CGDirectDisplayID) [screenNum pointerValue] ); 

This would have to go in a trivial .mm file since it has Obj-C in it with a 
single method which just returns true or false based on supportsQuartzExtreme 
(we could do the OS version check here too since it only applies to 10.4). 
Then, nsAppRunner.cpp can instantiate that C++ class, check it, and if it's 
true, pop up a dialogue (I don't think we need to localize it right now) to 
tell the user to disable Quartz Extreme on 10.4 to run TenFourFox.

CGDisplayUsesOpenGLAcceleration should exist in Intel 10.4, but there may be no 
header, so you might have to fake one up in the .mm. Something like

extern "C" {
BOOL CGDisplayUsesOpenGLAcceleration(CGDirectDisplayID cgddid);
}

should work.

It's just an idea, but it should work, based on what you've said. At least then 
it lets some 10.4 users use it too, and the really motivated could hack it as 
you suggest.

Original comment by classi...@floodgap.com on 6 Mar 2013 at 5:25

  • Changed title: Deep freeze on Intel [10.4 QE only]
@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
(And obviously that should be all #ifndef __ppc__ or whatever)

Original comment by classi...@floodgap.com on 7 Mar 2013 at 2:32

Contributor

GoogleCodeExporter commented Aug 9, 2015

(And obviously that should be all #ifndef __ppc__ or whatever)

Original comment by classi...@floodgap.com on 7 Mar 2013 at 2:32

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
hmm... that is interesting. I'll try it. Thanks for the help.

Just to clarify: the slowness I was referring to with QE disabled is not TFF, 
but with system UI stuff like dragging windows around. For the little I used 
the browser it was pretty acceptable.

Original comment by lei...@gmail.com on 7 Mar 2013 at 3:18

Contributor

GoogleCodeExporter commented Aug 9, 2015

hmm... that is interesting. I'll try it. Thanks for the help.

Just to clarify: the slowness I was referring to with QE disabled is not TFF, 
but with system UI stuff like dragging windows around. For the little I used 
the browser it was pretty acceptable.

Original comment by lei...@gmail.com on 7 Mar 2013 at 3:18

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
I haven't had much time to work on this project but I'm still looking for a fix 
that doesn't involve disabling QE.

I combed through the Cocoa stuff and found where it draws buttons and such, but 
I can't find where it draws the list part of the drop-down. Do you happen to 
know, Cameron? The debugging code (that makes widgets stand out) doesn't 
highlight the list part of the boxes either.

I noticed the code isn't all that different from the version for 3.6.24, which 
doesn't crash. There is hope yet?

Original comment by lei...@gmail.com on 28 Mar 2013 at 1:40

Contributor

GoogleCodeExporter commented Aug 9, 2015

I haven't had much time to work on this project but I'm still looking for a fix 
that doesn't involve disabling QE.

I combed through the Cocoa stuff and found where it draws buttons and such, but 
I can't find where it draws the list part of the drop-down. Do you happen to 
know, Cameron? The debugging code (that makes widgets stand out) doesn't 
highlight the list part of the boxes either.

I noticed the code isn't all that different from the version for 3.6.24, which 
doesn't crash. There is hope yet?

Original comment by lei...@gmail.com on 28 Mar 2013 at 1:40

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
Do you mean nsNativeThemeCocoa::DrawDropdown? Or are you referring to something 
else?

Something interesting to try here might be to see what it does with a styled 
drop-down, since those are not drawn with native widgets.

Original comment by classi...@floodgap.com on 29 Mar 2013 at 3:29

Contributor

GoogleCodeExporter commented Aug 9, 2015

Do you mean nsNativeThemeCocoa::DrawDropdown? Or are you referring to something 
else?

Something interesting to try here might be to see what it does with a styled 
drop-down, since those are not drawn with native widgets.

Original comment by classi...@floodgap.com on 29 Mar 2013 at 3:29

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
That's what I was looking at. I was wondering if there was anything else, since 
the debugging option (which makes interface elements have colored borders) 
doesn't highlight the list part of the dropdown, just the button part of it.

Original comment by lei...@gmail.com on 29 Mar 2013 at 6:25

Contributor

GoogleCodeExporter commented Aug 9, 2015

That's what I was looking at. I was wondering if there was anything else, since 
the debugging option (which makes interface elements have colored borders) 
doesn't highlight the list part of the dropdown, just the button part of it.

Original comment by lei...@gmail.com on 29 Mar 2013 at 6:25

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
Styled ones are definitely drawn differently. What are you using for a test 
page?

Original comment by classi...@floodgap.com on 1 Apr 2013 at 5:07

Contributor

GoogleCodeExporter commented Aug 9, 2015

Styled ones are definitely drawn differently. What are you using for a test 
page?

Original comment by classi...@floodgap.com on 1 Apr 2013 at 5:07

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
What's your feeling for 24?

Original comment by classi...@floodgap.com on 31 Oct 2013 at 3:08

Contributor

GoogleCodeExporter commented Aug 9, 2015

What's your feeling for 24?

Original comment by classi...@floodgap.com on 31 Oct 2013 at 3:08

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
I was just thinking about that, having tried the beta on my PPC Mini. The 
biggest issues are that I never got anything above 17 to link with gcc 4.6+ 
(some sort of Cocoa link error towards the very end) and that I don't have the 
Tiger partition on my one supported Intel Mac anymore. I needed that space for 
something else. So, it's not looking good, never mind the fact I never figured 
this issue out.

Original comment by lei...@gmail.com on 31 Oct 2013 at 12:31

Contributor

GoogleCodeExporter commented Aug 9, 2015

I was just thinking about that, having tried the beta on my PPC Mini. The 
biggest issues are that I never got anything above 17 to link with gcc 4.6+ 
(some sort of Cocoa link error towards the very end) and that I don't have the 
Tiger partition on my one supported Intel Mac anymore. I needed that space for 
something else. So, it's not looking good, never mind the fact I never figured 
this issue out.

Original comment by lei...@gmail.com on 31 Oct 2013 at 12:31

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
Yeah, that certainly sounds like it. We'll put the Intel port on ice then and 
see if someone else with a Tiger partition wants to step in and give it a 
whirl. I wonder if clang will build any better, or if the problem is actually 
within ld also.

Original comment by classi...@floodgap.com on 31 Oct 2013 at 1:36

Contributor

GoogleCodeExporter commented Aug 9, 2015

Yeah, that certainly sounds like it. We'll put the Intel port on ice then and 
see if someone else with a Tiger partition wants to step in and give it a 
whirl. I wonder if clang will build any better, or if the problem is actually 
within ld also.

Original comment by classi...@floodgap.com on 31 Oct 2013 at 1:36

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
I wish I had kept a log of the error. I tried gcc 4.6 and 4.7 at the time, but 
I got the feeling it was indeed related to ld and not to gcc.

Original comment by lei...@gmail.com on 31 Oct 2013 at 6:11

Contributor

GoogleCodeExporter commented Aug 9, 2015

I wish I had kept a log of the error. I tried gcc 4.6 and 4.7 at the time, but 
I got the feeling it was indeed related to ld and not to gcc.

Original comment by lei...@gmail.com on 31 Oct 2013 at 6:11

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
Do you think it might build on, say, 10.6 (linked against the 10.4 SDK)? Or do 
you have no more pre-Lion systems?

Original comment by classi...@floodgap.com on 1 Nov 2013 at 6:41

Contributor

GoogleCodeExporter commented Aug 9, 2015

Do you think it might build on, say, 10.6 (linked against the 10.4 SDK)? Or do 
you have no more pre-Lion systems?

Original comment by classi...@floodgap.com on 1 Nov 2013 at 6:41

@GoogleCodeExporter

This comment has been minimized.

Show comment
Hide comment
@GoogleCodeExporter

GoogleCodeExporter Aug 9, 2015

Contributor
It's worth a shot. My newer MBP is on still Snow Leopard, so I can try it on 
there.

Original comment by lei...@gmail.com on 1 Nov 2013 at 11:27

Contributor

GoogleCodeExporter commented Aug 9, 2015

It's worth a shot. My newer MBP is on still Snow Leopard, so I can try it on 
there.

Original comment by lei...@gmail.com on 1 Nov 2013 at 11:27

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment