Debugging Chrome Crashpad crash report from Mac - google-chrome

My application somehow manages to crash a customer's Chrome browser on Mac. I asked the customer to enable crash reports and send me the dump file next time it happens. I got a Crashpad.zip file that contains a bunch of .dmp files. I suppose each file represents a Chrome tab's process. Trying to open these dumps with Visual Studio or WinDbg doesn't work. Note that the dump files were captured on Mac and I'm working on Windows.
When trying to see the callstack with ~k I get the output:
0:000> ~k
# Child-SP RetAddr Call Site
00 00000001`6ee35960 00000000`00000000 Google_Chrome_Framework+0x4486b50
When trying to load symbols from Chromium symbol server I get:
0:000> .sympath+ SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com
Symbol search path is: srv*;https://chromium-browser-symsrv.commondatastorage.googleapis.com;SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com
Expanded Symbol search path is: cache*;SRV*https://msdl.microsoft.com/download/symbols;https://chromium-browser-symsrv.commondatastorage.googleapis.com;srv\*c:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com
************* Path validation summary **************
Response Time (ms) Location
Deferred srv*
Deferred https://chromium-browser-symsrv.commondatastorage.googleapis.com
Deferred SRV\*C:\symbols\*https://chromium-browser-symsrv.commondatastorage.googleapis.com
*** WARNING: Unable to verify timestamp for Google Chrome Framework
0:000> .reload
................................................................
................................................................
................................................................
................................................
Unable to load image /Applications/Google Chrome.app/Contents/Frameworks/Google Chrome Framework.framework/Versions/101.0.4951.54/Google Chrome Framework, Win32 error 0n2
*** WARNING: Unable to verify timestamp for Google Chrome Framework
************* Symbol Loading Error Summary **************
Module name Error
Google Chrome Framewor The system cannot find the file specified
My question is how can I get symbols for the crash dump and debug it?

Crashpad writes its dumps in what is, effectively, a Windows minidump format. The current WinDbg Preview (1.2205.18001.0) in the Microsoft store can indeed open and debug crashpad dumps from platforms other than Windows (including Linux and Mac OS). It understands and has support for MachO images, MachO symbols, and private DWARF symbols contained in MachO.
That said -- for that to be useful -- the images and symbols for what is loaded in the target process need to be discoverable by the debugger. I have limited experience on the Chromium front; however, as far as I'm aware, the symbol servers only index the Windows versions there.
Linux ELF and Mac MachO images can indeed be indexed on a symbol server. Documentation regarding that and the indexing key formats is available at https://github.com/dotnet/symstore/blob/main/docs/specs/SSQP_Key_Conventions.md
If you have the images/symbols from downloading something directly (e.g.: a debug package, etc...), you can put them in a local path, point the debugger at such with .sympath and .reload.
I believe that Chromium also has their own set of tools for extracting information from crashpad dumps: https://www.chromium.org/developers/decoding-crash-dumps/

Related

finding Element causing chrome driver instance to crash

First the Environment:
Node JS 16.15.0
Web Driver io v7 (wdio)
wdio/cucumber framework
end to end testing of a website
-obviously using cucumber and feature files
using a test configuration file similar to wdio's
using wdio-chromedriver-service v7.2.6 and npm chromedriver package version ^107 to produce a browser to hit
my browser : chrome v107.0.5304.62
The Question:
an element cannot be found by webDriver as I expect, but the command causes the instance to crash
I am searching for an element that no longer appears on the page (it is a spinner element that shows the page is loading)
I call
if(await this.spinner.isDisplayed())
and then the test run hangs, the debugger tells me the command
INFO webdriver: COMMAND findElement("css selector", "i.fa-spinner")
is running and then nothing else, finally the renderer times out
WARN chromedriver: [SEVERE]: Timed out receiving message from renderer: 600.000
DEBUG webdriver: request failed due to response error: timeout
and the chrome instance crashes shortly later
I am unsure why this behavior is happening, is something wrong with my wdio configuration? or with my chrome driver?
What I have tried
I understand that
browser.setTimeout exists but
I am sure it is not set in my config anywhere.
I have done a global search (using vscode for all development) for browser.setTimeout (no results).
I have manually set browser.setTimeout({ 'implicit': 0 }) (no success).
I have also tried directly hitting a chrome driver instance by manually downloading a chrome driver exe that matched my browser version v107.0.5304.62 and removing the 'services: ['chromedriver']'
from my test config file
when this happens something very interesting occurs, I can keep running after searching for the element that broke the run before, but we dont get very far and the command still causes issues. Chrome driver is throwing errors like
error: 'no such element',
[0-0] message: 'no such element: Unable to locate element: {"method":"css selector","selector":"i.fa-spinner"}\n' +
[0-0] ' (Session info: chrome=107.0.5304.87)'
The browser closes shortly afterwards without progressing through the rest of the tests.
I find it interesting that the version that chrome driver says it is running is 107.0.5304.87 since the version of chromedriver I downloaded clearly says it is v107.0.5304.62 and my chrome version clearly states it is also v107.0.5304.62 .
though theoretically using v107.0.5304.87 shouldnt be an issue according to this
since the 107.0.5304 part matches across the board
I could use some assistance.
We had the same issue this days, seems there is a bug introduced in Chrome 106; try to change config or downgrade Chrome on the machine to use Chrome 105 as with this version is working.

Could not start a new session. Response code 500. Message: session not created: This version of ChromeDriver only supports Chrome version 100

I am in the learning phase in the automation.
In my first program, when I am trying to run it, getting below error.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Starting ChromeDriver 100.0.4896.60 (6a5d10861ce8de5fce22564658033b43cb7de047-refs/branch-heads/4896#{#875}) on port 57583
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: This version of ChromeDriver only supports Chrome version 100
Current browser version is 102.0.5005.63 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe
Build info: version: '4.2.0', revision: '86eb611648'
It will be a great help if anybody help me in this to resolve.
Thanks in advance.
So first thing you should do is update your google chorme.
Click on the 3 dots > help > about google chrome > and check if it is already up to date.
After updating, search for webdrive for google chrome.
Download the version that is the same as yours, for example.
Mine is 103. Then download driver 103.
When you've downloaded the driver, unzip it and insert it into your drivers folder on your user's C:.
Example:
C:\Users\lucas\driver
After putting it in, try to run your program again.
Note * I found this out by going to my system variables and accessing the Paths that were in there.
You can probably find and check beforehand. If there is something in one of your paths like this:
C:\Users\lucas\driver
and paste exactly in that path. It will work.

I'm getting dozens of "Failed loading" errors in cgi_error_log daily - what do they mean?

I'm seeing dozens of entries, daily, in my cgi_error_log file like this:
20151214T183710: www.example/index.php
Failed loading /usr/local/lib/ioncube/ioncube_loader_lin_5.2.so: /usr/local/lib/ioncube/ioncube_loader_lin_5.2.so: wrong ELF class: ELFCLASS32
Failed loading /usr/local/Zend/lib/ZendExtensionManager.so: /usr/local/Zend/lib/ZendExtensionManager.so: wrong ELF class: ELFCLASS32
I changed the URL in the error message because the site is not yet ready for the public and I don't want any links to the site or even text in posts like this laying around.
As the site is still in testing, these messages are coming from my accessing pages and all of the pages have loaded correctly.
What does this message mean? I have no clue other than that ioncube is some sort of PHP Encoder.
Could this have something to do with the 32bit version of ioncube being run on a 64bit system? I've found references to that sort of problem.
Did some more digging - could this be happening because the version of PHP on the server is not 5.2? Error about ioncube shows 4.2 in the file name.
The version I'm using on the server if 5.5. They have 5.3 and 5.6.
If they had 5.2 I'd give it a try but it is not available.
More digging - found this set in my php.ini file for all my sites.
[Zend]
zend_extension = /usr/local/lib/ioncube/ioncube_loader_lin_5.2.so
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.2.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.2.0
zend_optimizer.version=3.2.0
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so
So - do I need to install newer versions of one or more of the items listed above?
If so - where do I start and can I do it myself or does the hosting company staff have to do it?

unknown error: failed to write prefs file

I keep getting the error while running functional tests using runner with following:
-selenium 2.44
-Chrome Driver
-Windows Server 2008 R2 Enterprise
Error Description: Listening on 0.0.0.0:7000
Starting tunnel...
UnknownError: [POST http://test.com/wd/hub/session / {"de
siredCapabilities":{"browserName":"chrome","name":"tests/intern","idle-timeout":
60,"selenium-version":"2.44.0"}}] unknown error: failed to write prefs file
(Driver info: chromedriver=2.12.301325 (962dea43ddd90e7e4224a03fa3c36a421281ab
b7),platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server did not provide any
stacktrace information)
Command duration or timeout: 1.06 seconds
Anyone have ever come across such issue? How do i fix this? Suggestions please
I've recently had the same issue. The problem was caused by full C drive. Apparently chromedriver needs some space in C drive (or the drive where chrome binary file is located) to create temporary profile files and so on.
One of the solutions could be to move chrome installation to some other drive. You could use mklink command in command line window.
It can be caused by executing ChromeDriver in parallel. Other errors as "failed to write first run file" or "cannot create default profile directory" may happen in that case.
My solution was to specify option user-data-dir. Two concurrent Chromedriver should not use same user data directory.
chromeOptions.AddArgument("--user-data-dir=C:\\tmp\\chromeprofiles\\profile" + someKindOfIdOrIndex);
You can of course change the path for whatever you want :)
This issue occurs if C drive disk runs out of space.The best solution to clear temp files.This solution worked for me.
Open Run command
2.Type % tmp%
3.Click on OK
4.Select all files.Delete all the files permanently.
you have different versions of chrome on server and on node
In my case, it was a consol application which should run as Administrator to gain access to the HDD
Follow These Steps
1)Press Window key+R
Type RUN
Type %temp%
4)Click Ok
5)Press Ctrl+A
Press Shift Delete

Not able to Extract the ISO file using WinZip

ISO file which was downloaded, when I tried to extract using WinZip 16.0 Pro(9686)- 32 bit I got this problem.
The OS I am using is Win XP - Professional - Version 2002- Service Pack 3
with 4GB RAM
WinZip Encountered problems during this operation with file
G:\Setup\PROJECT\Lenel - OnGuard 2012\OnGuard2012\Supplimental Material Disc\Supp_Mat_Rev13. Please choose one of the following actions.
I pressed View Output
This was the message I got
Error: The system cannot find the path specified.
Cannot create G:\Setup\PROJECT\Lenel - OnGuard 2012\OnGuard2012\Supplimental Material Disc\Supp_Mat_Rev13\Credential Center Device Drivers\Card Scanning Solutions\SigniShell\SDK samples\vb.Net\SigniShell Sample\SigniShell Sample\obj\Release\SigniShell_Sample.FormCustom.resources
Severe Error: File creation failed.
Please guide me to overcome this issue