Proxy-related pale moon crash

Users and developers helping users with generic and technical Pale Moon issues on all operating systems.

Moderator: trava90

Forum rules
This board is for technical/general usage questions and troubleshooting for the Pale Moon browser only.
Technical issues and questions not related to the Pale Moon browser should be posted in other boards!
Please keep off-topic and general discussion out of this board, thank you!
User avatar
CrouZ
Moongazer
Moongazer
Posts: 11
Joined: 2019-07-05, 10:39

Proxy-related pale moon crash

Unread post by CrouZ » 2023-01-05, 18:53

Operating system: Windows 10 21H2
Browser version: 31.4.2
32-bit or 64-bit browser?: 32-bit
Problem URL: N/A, happens at random
Browser theme (if not default): N/A, default
Installed add-ons: A whole bunch. I'd rather not list them all.
Installed plugins: (about:plugins): None enabled

If possible, please include the output of help->troubleshooting information (as text):
**PASTE troubleshooting information here**
Since 2022-09-28 when I updated to v31.3.0, pale moon started crashing a few times a day, seemingly at random.

Looking into one of the dump files, it appears to be proxy related:

Code: Select all

 	26c12d2f()	Unknown
 	[Frames below may be incorrect and/or missing]	Unknown
 	[Inline Frame] xul.dll!EnterIon(JSContext *) Line 2849	C++
 	xul.dll!js::jit::IonCannon(JSContext * cx, js::RunState & state) Line 2947	C++
 	xul.dll!js::RunScript(JSContext * cx, js::RunState & state) Line 399	C++
 	xul.dll!js::InternalCallOrConstruct(JSContext * cx, const JS::CallArgs & args, js::MaybeConstruct construct) Line 500	C++
 	xul.dll!InternalCall(JSContext * cx, const js::AnyInvokeArgs & args) Line 524	C++
 	xul.dll!js::Call(JSContext * cx, JS::Handle<JS::Value> fval, JS::Handle<JS::Value> thisv, const js::AnyInvokeArgs & args, JS::MutableHandle<JS::Value> rval) Line 543	C++
 	xul.dll!JS_CallFunctionName(JSContext * cx, JS::Handle<JSObject *> obj, const char * name, const JS::HandleValueArray & args, JS::MutableHandle<JS::Value> rval) Line 2872	C++
>	xul.dll!mozilla::net::ProxyAutoConfig::GetProxyForURI(const nsCString & aTestURI, const nsCString & aTestHost, nsACString_internal & result) Line 832	C++
 	[Inline Frame] xul.dll!mozilla::net::nsPACMan::ProcessPending() Line 617	C++
 	xul.dll!mozilla::net::nsPACMan::ProcessPendingQ() Line 559	C++
 	[Inline Frame] xul.dll!mozilla::net::nsPACMan::PostQuery(mozilla::net::PendingPACQuery *) Line 378	C++
 	xul.dll!mozilla::net::PendingPACQuery::Run() Line 278	C++
 	xul.dll!nsThread::ProcessNextEvent(bool aMayWait, bool * aResult) Line 1146	C++
 	xul.dll!NS_ProcessNextEvent(nsIThread * aThread, bool aMayWait) Line 355	C++
 	xul.dll!mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate * aDelegate) Line 367	C++
 	[Inline Frame] xul.dll!MessageLoop::RunInternal() Line 228	C++
 	xul.dll!MessageLoop::RunHandler() Line 222	C++
 	xul.dll!MessageLoop::Run() Line 202	C++
 	xul.dll!nsThread::ThreadFunc(void * aArg) Line 460	C++
 	[External Code]	
The crash happens, seemingly at random, with proxy setting "Auto-detect proxy settings for this network".
After switching to "Manual proxy configuration" it has not crashed again.
Yesterday I switched to "Use system proxy settings" and so far that has not crashed either.

I'm not comfortable posting a dump file for my main profile in the forum, but I could PM it if you want to have a look.
Otherwise, I'll see if I can repeat the issue with a clean profile.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35474
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Proxy-related pale moon crash

Unread post by Moonchild » 2023-01-05, 21:52

A crash dump would be very helpful in this case, so would getting a copy of the PAC file in use.

This may be due to a compiler bug (the version indicated is when we switched to VS2022, and its 32-bit compiler seems to have more than a few issues with stability) which might make it more difficult to troubleshoot, but we may get lucky.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
CrouZ
Moongazer
Moongazer
Posts: 11
Joined: 2019-07-05, 10:39

Re: Proxy-related pale moon crash

Unread post by CrouZ » 2023-01-16, 09:54

The PAC file is a proxy configuration file that is fetched when I have selected 'Auto-detect proxy settings for this network'', right? What URL does Pale Moon use to fetch this?

So far I have not been able to repeat the issue with a clean profile, but I'm still working on it. It might be related to my 'No proxy for' list. When I reset that to default, my main profile didn't crash either, but since the crash happens at random and not very often it might just have been a coincidence. Is there some config that I could change to make the code in the call stack happen more often to maybe make is crash more often?

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35474
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Proxy-related pale moon crash

Unread post by Moonchild » 2023-01-16, 11:28

CrouZ wrote:
2023-01-16, 09:54
Is there some config that I could change to make the code in the call stack happen more often to maybe make is crash more often?
Only if we have more information about what exactly the cause was, for which I'd need to see the values of arguments passed to functions which would require the crash dump file ;)
It curious though that clearing the "no proxy for" list made the issue go away. What exactly was in there? did it perhaps have strange entries or formatting?
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
CrouZ
Moongazer
Moongazer
Posts: 11
Joined: 2019-07-05, 10:39

Re: Proxy-related pale moon crash

Unread post by CrouZ » 2023-01-17, 10:31

Moonchild wrote:
2023-01-16, 11:28
Only if we have more information about what exactly the cause was, for which I'd need to see the values of arguments passed to functions which would require the crash dump file ;)
It curious though that clearing the "no proxy for" list made the issue go away. What exactly was in there? did it perhaps have strange entries or formatting?
:) I was thinking if it was possible to change the interval time for proxy auto-detect if that's what crashes.

I have been slimming down my "no proxy for" setting and last time it crashed I had:
localhost, 127.0.0.1, 172.16.0.0/16, 10.0.0.0/8

User avatar
CrouZ
Moongazer
Moongazer
Posts: 11
Joined: 2019-07-05, 10:39

Re: Proxy-related pale moon crash

Unread post by CrouZ » 2023-01-18, 09:09

CrouZ wrote:
2023-01-17, 10:31
I have been slimming down my "no proxy for" setting and last time it crashed I had:
localhost, 127.0.0.1, 172.16.0.0/16, 10.0.0.0/8
... and now it crashed with the default "no proxy for" (localhost, 127.0.0.1), so that's not what causes the crash.

User avatar
CrouZ
Moongazer
Moongazer
Posts: 11
Joined: 2019-07-05, 10:39

Re: Proxy-related pale moon crash

Unread post by CrouZ » 2023-01-18, 20:14

I finally managed to repeat the crash with a clean profile and have uploaded the dump-fil to the ftp with the following filename:
2023-01-18 Pale moon proxy crash.7z

I am still not able to repeat the crash consistently, but I have a feeling that it crashes more often after alternating between browsing internal (not using proxy) and external (using proxy) webpages. Sometimes it crashes when I'm using the browser and sometimes it crashes when the browser is just running in the background. I think it crashes more often when I'm using the browser though. Also, when I failed to repeat the crash with a clean profile before, I did not visit any internal webpages, while with my main profile I practically always have several open tabs for internal webpages.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35474
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Proxy-related pale moon crash

Unread post by Moonchild » 2023-01-19, 00:24

Thanks for the crash dump. It was enlightening.

It doesn't seem like this crash is caused by code in Pale Moon.
First off, the exception code is 0xc0000096 which is "privileged instruction"; this error code is very rare and only triggered by CPU instructions that are not normally found in user applications. The crash address is also not within scope of the running application, which means it is either crashing in a driver or externally loaded module. It also did not provide a callstack.
This leads me to a pretty smoking gun: Cylance has injected a library into the Pale Moon process that seems to be 64-bit (CyMemDef64.dll) -- that will absolutely not work and might be the reason why the PC has been jumped to a memory region that contains invalid/privileged instructions.

A few things:
  • Why aren't you using 64-bit Pale Moon? You're obviously on a 64-bit O.S. and it's recommended you use the native 64-bit browser in that case.
  • Can you try excluding Pale Moon from Cylance's real-time application monitoring/babysitting?
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
CrouZ
Moongazer
Moongazer
Posts: 11
Joined: 2019-07-05, 10:39

Re: Proxy-related pale moon crash

Unread post by CrouZ » 2023-01-19, 18:15

Moonchild wrote:
2023-01-19, 00:24
The crash address is also not within scope of the running application, which means it is either crashing in a driver or externally loaded module. It also did not provide a callstack.
I'm not able to get the call stack for this dump file either. :(

In the call stack that I posted from one of my earlier crashes it looked like it crashed in some jit-code, which I would guess is put somewhere on the heap. Is the instruction pointer not within a memory range where jit-code might be generated?
Moonchild wrote:
2023-01-19, 00:24
  • Why aren't you using 64-bit Pale Moon? You're obviously on a 64-bit O.S. and it's recommended you use the native 64-bit browser in that case.
  • Can you try excluding Pale Moon from Cylance's real-time application monitoring/babysitting?
I have some add-ons which only work with 32-bit Pale Moon. With the clean profile that doesn't matter, so I could try to repeat the issue again with 64-bit Pale Moon.

Unfortunately, I cannot change anything related to Cylance. It's really frustrating. :(

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35474
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Proxy-related pale moon crash

Unread post by Moonchild » 2023-01-19, 22:00

CrouZ wrote:
2023-01-19, 18:15
I'm not able to get the call stack for this dump file either. :(
The whole point in me asking for the crash dump was to be able to "walk" the callstack and see the values (or lack thereof) of arguments and properties on each step. Without that, the dump offers little usable information (well aside from showing the weird error code and the totally out of bounds address the instruction pointer ended up at).
So if you manage to crash again and have a usable dump from it, I'd be happy to have another look, but can't analyze anything until then.
CrouZ wrote:
2023-01-19, 18:15
Unfortunately, I cannot change anything related to Cylance. It's really frustrating. :(
Most definitely if it is crashing the application. At the very least this should be reported to Cylance if it's confirmed to be the culprit (seems very likely).
Is this corporately enforced? Most individual end-users don't use Cylance.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

Locked