Main Menu

Browser Freezes

Started by XhenEd, June 15, 2016, 10:44:38 AM

Previous topic - Next topic

fixer

Ohhh, these HOOK_CONTROL access rights... they tend to jump out in mysterious ways. Will check it out and come back with more info later.

fixer

After hell of a lot debugging I don't think it's ReHIPS issue.
1. It happens only with PaleMoon, Firefox is fine.
2. It happens only with Flash plugin, HTML5 is fine.
3. It doesn't seem to happen on x86, so x64 only.
4. Several different x64 PCs failed to play flash with PaleMoon showing error while playing fine with FireFox. ReHIPS wasn't installed, so something is wrong with PaleMoon itself.
5. After some thread suspending/resuming in plugin-container.exe process PaleMoon unfreezes. If it was ReHIPS and access rights issue, this wouldn't be that easy.

So my best guess is something is wrong with messages. The thread mentioned in 5 does message processing. And SetWindowsHookEx is also about messages. I think something is wrong with their queue, maybe they're received in the wrong order, maybe some messages are stuck/processed by wrong handler-something like this. These things are pain in... well, everywhere, to debug when you have no idea about software design and I'm not familiar with FireFox architecture.
I'm 90% sure it's PaleMoon issue and ReHIPS just triggers it. So I'll save it for later as I'm not sure I can spend several days now to be completely sure it's not our fault.

XhenEd

#17
Thanks for taking a look at the issue, fixer!

Only 64-bit, uhmmmm... 64-bit can really be problematic. Maybe the build, itself, is the reason for the issue.
QuoteTherefore, there are some very important things to note before you decide if you want to use an x64 build:
    1. You will need an x64 Windows Operating System! Just having a 64-bit processor is not enough, you will also have to have a 64-bit version of Windows (i.e. Windows Vista 64-bit, Windows 7/8/8.1/10 64-bit).
    2. Many plugins are either not available or not officially released yet for 64-bit browsers. This will mostly hamper things like in-browser document viewers and media/gaming plugins or authentication plugins (e.g. for banking sites). Most extensions, however, do work, not to be confused with plugins.
    3. Adobe Flash, used on many pages, is only available on the 64-bit browser if you run Windows 7 or later! Their plugin does not support Windows Vista 64-bit.
    4. Pale Moon x64 will be one of the very few, if not the only, desktop application on your system that will use natively 64-bit hardware acceleration. Especially with embedded graphics, legacy graphics cards, hybrid systems with 2 GPUs, or new operating systems, this may cause (sometimes severe) problems that would otherwise not show up. Native 64-bit graphical hardware acceleration for desktop use (as opposed to games) is still in need of development by a large number of driver manufacturers, and you may run into unexpected problems like memory inflation (excessive memory use by the browser), hangs or lockups of your graphics card or operating system due to driver bugs. You may have to switch to the 32-bit build of Pale Moon if you run into issues because of this; a solution is not always available.

Should I report this to Pale Moon devs?

aDVll

Quote from: XhenEd on June 19, 2016, 05:10:41 AM
Should I report this to Pale Moon devs?
Obviously they messed something up because it doesn't happen on firefox so if you can report it. 100% they could do what firefox does to avoid the issue.

Now something off topic if you don't mind. What's the reasoning behind using palemoon instead of Firefox. Ok before it was for the 64 bit version but Firefox has one now so what is the benefit if you don't mind me asking. Just curious.

XhenEd

#19
Quote from: aDVll on June 19, 2016, 09:40:03 AM
Quote from: XhenEd on June 19, 2016, 05:10:41 AM
Should I report this to Pale Moon devs?
Now something off topic if you don't mind. What's the reasoning behind using palemoon instead of Firefox. Ok before it was for the 64 bit version but Firefox has one now so what is the benefit if you don't mind me asking. Just curious.
It's now a complete fork. It does not follow Firefox's model now. It already does this for several years. Honestly, the developers technical knowledge about how browsers should be is why I chose it over firefox. They also have user-friendly documentation about their program.

Because Pale Moon has problems currently with ReHIPS, I changed to Cyberfox, still not firefox. :D Firefox is too vanilla for me. I want something "enhanced".

Edit: Actually, Google Chrome is always my top choice among browsers. Since I get demo limit when using it, I would need to use browsers with less processes running. :D

aDVll

 I see. Makes sense and hopefully rehips will get released soon so all can buy a copy for their pc and avoid the limit. In my opinion Chrome is the most secure and one of the fastest browsers available.

XhenEd

Quote from: aDVll on June 19, 2016, 10:23:06 AM
I see. Makes sense and hopefully rehips will get released soon so all can buy a copy for their pc and avoid the limit. In my opinion Chrome is the most secure and one of the fastest browsers available.
I certainly agree.  :)

But still, I'll try to report the problem to Pale Moon.

fixer

I'm inclined it's PaleMoon issue. And such races/queues are extremely hard to debug, especially when you're not familiar with software architecture. So I think the best course is to report it to PaleMoon devs.

XhenEd

Quote from: fixer on June 19, 2016, 04:20:11 PM
I'm inclined it's PaleMoon issue. And such races/queues are extremely hard to debug, especially when you're not familiar with software architecture. So I think the best course is to report it to PaleMoon devs.
I reported the issue. I'm awaiting for their response.  :)

aDVll

Quote from: XhenEd on June 19, 2016, 04:21:32 PM
Quote from: fixer on June 19, 2016, 04:20:11 PM
I'm inclined it's PaleMoon issue. And such races/queues are extremely hard to debug, especially when you're not familiar with software architecture. So I think the best course is to report it to PaleMoon devs.
I reported the issue. I'm awaiting for their response.  :)
They left you a reply with a possible fix that doesn't work when i tested it and then basically told you if this doesn't work switch browser or ditch rehips which is obviously the easy way out for them. From what i understand they don't investigate such issues but they gave a few ideas. Anw for context if rehips is going to investigate more in the future.
QuoteThanks for reporting this, but without knowing exactly what the sandbox does, this is incredibly hard to troubleshoot. Pale Moon uses IPC to communicate with plugins -- if the sandboxing software intercepts that messaging to manipulate/monitor/control intra-OS IPC, it's likely the cause of this hang condition, e.g. if it releases messages back the queue out-of-order or in bursts (with the possibility of causing a race, especially with very fast processing more likely to happen in x64). This can be further aggravated by the fact that Flash tries to use its own sandboxing on top of that by default (which is known to cause issues) -- Firefox disables this Flash sandboxing by default in later versions; we have a small tool available to help make the proper configuration entries. You can try that first.

Stacking sandboxing frameworks is bound to cause issues, though. If disabling Flash "protected mode" doesn't help, you're left with just the option to disable recrypt for Pale Moon, or use the x86 version of Pale Moon that will have more even/controlled flow through the compatibility layer in Windows (or use a different browser that is compatible with recrypt's way of handling IPC messaging). Unfortunately, Pale Moon doesn't have the option to not use flash out-of-process right now because there are known stability issues with that; I can add a pref to control this specifically if it's needed, as that would be very simple to put in.

XhenEd

Quote from: aDVll on June 19, 2016, 06:48:44 PM
Quote from: XhenEd on June 19, 2016, 04:21:32 PM
Quote from: fixer on June 19, 2016, 04:20:11 PM
I'm inclined it's PaleMoon issue. And such races/queues are extremely hard to debug, especially when you're not familiar with software architecture. So I think the best course is to report it to PaleMoon devs.
I reported the issue. I'm awaiting for their response.  :)
They left you a reply with a possible fix that doesn't work when i tested it and then basically told you if this doesn't work switch browser or ditch rehips which is obviously the easy way out for them. From what i understand they don't investigate such issues but they gave a few ideas. Anw for context if rehips is going to investigate more in the future.
QuoteThanks for reporting this, but without knowing exactly what the sandbox does, this is incredibly hard to troubleshoot. Pale Moon uses IPC to communicate with plugins -- if the sandboxing software intercepts that messaging to manipulate/monitor/control intra-OS IPC, it's likely the cause of this hang condition, e.g. if it releases messages back the queue out-of-order or in bursts (with the possibility of causing a race, especially with very fast processing more likely to happen in x64). This can be further aggravated by the fact that Flash tries to use its own sandboxing on top of that by default (which is known to cause issues) -- Firefox disables this Flash sandboxing by default in later versions; we have a small tool available to help make the proper configuration entries. You can try that first.

Stacking sandboxing frameworks is bound to cause issues, though. If disabling Flash "protected mode" doesn't help, you're left with just the option to disable recrypt for Pale Moon, or use the x86 version of Pale Moon that will have more even/controlled flow through the compatibility layer in Windows (or use a different browser that is compatible with recrypt's way of handling IPC messaging). Unfortunately, Pale Moon doesn't have the option to not use flash out-of-process right now because there are known stability issues with that; I can add a pref to control this specifically if it's needed, as that would be very simple to put in.
Yeah, just saw the reply. Thanks for posting this here!

fixer

I understand their position, bugs like this are really hard to debug, especially when you don't have for about 5 days completely free for this. ReHIPS doesn't intercept any IPC in any invasive manner (like remove some message from queue, inspect it and reinject back) that could break order of messages. Bullets 1, 4 and 5 above suggest that most likely it's not ReHIPS issue. So it's written in our TODO list, but with low priority, I'll come back to it later.

aDVll

Flash is going to die sooner or later anw. One can only hope.  8)

XhenEd

Quote from: fixer on June 19, 2016, 07:08:20 PM
I understand their position, bugs like this are really hard to debug, especially when you don't have for about 5 days completely free for this. ReHIPS doesn't intercept any IPC in any invasive manner (like remove some message from queue, inspect it and reinject back) that could break order of messages. Bullets 1, 4 and 5 above suggest that most likely it's not ReHIPS issue. So it's written in our TODO list, but with low priority, I'll come back to it later.
I understand, fixer. :)