RequestManager_FLP pid-5477 E [LocationManager] Location request 53da71c(PendingIntent) gps interval=10000 from com.weru (10408 foreground)
I am scraping some HTML content..
for i, c in enumerate(cards[75:77]):
print(i)
a = c.find_element_by_class_name("influencer-stagename")
print(a.get_attribute('innerHTML'))
Works fine for all records except the 76th one. Output before error...
0
b'<a class="influencer-analytics-link" href="/influencers/sophiewilling"><h5><span>SOPHIE WILLING</span></h5></a>'
1
b'<a class="influencer-analytics-link" href="/influencers/ferntaylorr"><h5><span>Fern Taylor.</span></h5></a>'
2
b'<a class="influencer-analytics-link" href="/influencers/officialshaniceslatter"><h5><span>Shanice Slatter</span></h5></a>'
3
Stacktrace...
> -------------------------------------------------------------------------
WebDriverException Traceback (most recent call last) <ipython-input-484-0a80d1af1568> in <module>
3 #print(c.find_element_by_class_name("influencer-stagename").text)
4 a = c.find_element_by_class_name("influencer-stagename")
----> 5 print(a.get_attribute('innerHTML').encode('ascii', 'ignore'))
~/anaconda3/envs/py3-env/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py in get_attribute(self, name)
141 self, name)
142 else:
--> 143 resp = self._execute(Command.GET_ELEMENT_ATTRIBUTE, {'name': name})
144 attributeValue = resp.get('value')
145 if attributeValue is not None:
~/anaconda3/envs/py3-env/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py in _execute(self, command, params)
631 params = {}
632 params['id'] = self._id
--> 633 return self._parent.execute(command, params)
634
635 def find_element(self, by=By.ID, value=None):
~/anaconda3/envs/py3-env/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
319 response = self.command_executor.execute(driver_command, params)
320 if response:
--> 321 self.error_handler.check_response(response)
322 response['value'] = self._unwrap_value(
323 response.get('value', None))
~/anaconda3/envs/py3-env/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
240 alert_text = value['alert'].get('text')
241 raise exception_class(message, screen, stacktrace, alert_text)
--> 242 raise exception_class(message, screen, stacktrace)
243
244 def _value_or_default(self, obj, key, default):
WebDriverException: Message: unknown error: bad inspector message: {"id":110297,"result":{"result":{"type":"object","value":{"status":0,"value":"<a class=\"influencer-analytics-link\" href=\"/influencers/bookishemily\"><h5><span>Emily | 18 | GB | Student\uD83C...</span></h5></a>"}}}} (Session info: chrome=75.0.3770.100) (Driver info: chromedriver=2.40.565386 (45a059dc425e08165f9a10324bd1380cc13ca363),platform=Mac OS X 10.14.0 x86_64)
I suspect it is an invalid character in
value":"Emily | 18 | GB | Student\uD83C..."
Specifically I suspect "\uD83C"
Adding
.encode("utf-8") OR .encode('ascii', 'ignore')
to the second print statement changes nothing.
Any thoughts on how to solve this??
UPDATE: The problem is with Emoji characters. I have found 3 examples to far and each has an emoji (pink flower ๐ธ, russian flag ๐ท๐บ and swirling leaves ๐). If I edit them out with Chrome inspector my code runs fine but this is not a solution that works at scale
This error message...
WebDriverException: Message: unknown error: bad inspector message: {"id":110297,"result":{"result":{"type":"object","value":{"status":0,"value":"<a class=\"influencer-analytics-link\" href=\"/influencers/bookishemily\"><h5><span>Emily | 18 | GB | Student\uD83C...</span></h5></a>"}}}} (Session info: chrome=75.0.3770.100) (Driver info: chromedriver=2.40.565386 (45a059dc425e08165f9a10324bd1380cc13ca363),platform=Mac OS X 10.14.0 x86_64)
...implies that the ChromeDriver was unable to parse some non-UTF-8 characters due to JSON encoding/decoding issue.
Deep Dive
As per the discussion in Issue 723592: 'Bad inspector message' errors when running URL web-platform-tests via webdriver John Chen (Owner - WebDriver for Google Chrome) in his comment mentioned:
A JSON encoding/decoding issue caused the "Bad inspector message" error reported at https://travis-ci.org/w3c/web-platform-tests/jobs/232845351. Part of the error message from part 1 contains an invalid Unicode character \uFDD0 (from https://github.com/w3c/web-platform-tests/blob/34435a4/url/urltestdata.json#L3596). The JSON encoder inside Chrome didn't detect such error, and passed it through in the JSON blob sent to ChromeDriver. ChromeDriver uses base/json/json_parser.cc to parse the JSON string. This parser does a more thorough error detection, notices that \uFDD0 is an invalid character, and reports an error. I think our JSON encoder and decoder should have exactly the same amount of error checking. It's problematic that the encoder can create a blob that is rejected by the decoder.
Analysis
John Chen (Owner - WebDriver for Google Chrome) further added:
The JSON encoding happens in protocol layout of DevTools, just before the result is sent back to ChromeDriver. The relevant code is in https://cs.chromium.org/chromium/src/out/Debug/gen/v8/src/inspector/protocol/Protocol.cpp. In particular, escapeStringForJSON function is responsible for encoding strings. It's actually quite conservative. Anything above 126 is encoded in \uXXXX format. (Note that Protocol.cpp is a generated file. The real source is https://cs.chromium.org/chromium/src/v8/third_party/inspector_protocol/lib/Values_cpp.template.)
The error occurs in the JSON parser used by ChromeDriver. The decoding of \uXXXX sequence happens at https://cs.chromium.org/chromium/src/base/json/json_parser.cc?l=564 and https://cs.chromium.org/chromium/src/base/json/json_parser.cc?l=670. After decoding an escape sequence, the decoder rejects anything that's not a valid Unicode character.
I noticed that there was a recent change to prevent a JSON encoder from emitting invalid Unicode code point: https://crrev.com/478900. Unfortunately it's not the JSON encoder used by the code involved in this bug, so it doesn't help us directly, but it's an indication that we're not the only ones affected by this type of issue.
Solution
This issue was addressed replacing invalid UTF-16 escape sequences when decoding invalid UTF strings in chromedriver as Web platform tests may use ECMAScript strings which aren't necessarily utf-16 characters through this revision / commit.
So a quick solution would be to ensure the following and re-execute your tests:
Selenium is upgraded to current levels Version 3.141.59.
ChromeDriver is updated to current ChromeDriver v79.0.3945.36 level.
Chrome is updated to current Chrome Version 79.0 level. (as per ChromeDriver v79.0 release notes)
Alternative
As an alternative you can use GeckoDriver / Firefox combination and you can find a relevant discussion in Chromedriver only supports characters in the BMP error while sending Emoji with ChromeDriver Chrome using Selenium Python to Tkinter's label() textbox
The Code & Question
I'm trying out Microsoft's Application Verifier and hitting a read-access violation on the simple code below. Is this my fault? If not, who should I report this to?
#include <D3D11_1.h>
#pragma comment(lib, "d3d11.lib")
void main()
{
ID3D11Device* device = NULL;
D3D11CreateDevice(
NULL,
D3D_DRIVER_TYPE_HARDWARE,
NULL,
0,
NULL,
0,
D3D11_SDK_VERSION,
&device,
NULL,
NULL);
}
Application Verifier Output
Page heap: pid 0x1034: page heap enabled with flags 0x3.
AVRF: D3D11_Fails_AppVerifier.exe: pid 0x1034: flags 0x81643027: application verifier enabled
First-chance exception at 0x00007FFA4EA681B9 (atiuxp64.dll) in D3D11_Fails_AppVerifier.exe: 0xC0000005: Access violation reading location 0x0000009411813000.
=======================================
VERIFIER STOP 0000000000000013: pid 0x1034: First chance access violation for current stack trace.
0000009411813000 : Invalid address causing the exception.
00007FFA4EA681B9 : Code address executing the invalid access.
000000940FA5B430 : Exception record.
000000940FA5AF40 : Context record.
WinDBG Callstack
*** ERROR: Symbol file could not be found. Defaulted to export symbols for vrfcore.dll -
vrfcore!VerifierStopMessageEx+0x6f4:
00007ffa`48d33a00 cc int 3
0:000> k
Child-SP RetAddr Call Site
00000094`0fa5a1b0 00007ffa`48d39d20 vrfcore!VerifierStopMessageEx+0x6f4
*** ERROR: Symbol file could not be found. Defaulted to export symbols for verifier.dll -
00000094`0fa5a510 00007ffa`48c5a9d0 vrfcore!VerifierDisableVerifier+0x948
00000094`0fa5a5a0 00007ffa`54b6a743 verifier!VerifierStopMessage+0xa0
*** ERROR: Module load completed but symbols could not be loaded for vfbasics.dll
00000094`0fa5a640 00007ffa`48cc62d9 ntdll!RtlApplicationVerifierStop+0x103
00000094`0fa5a6a0 00007ffa`48cc8246 vfbasics+0x62d9
00000094`0fa5a700 00007ffa`48cc787e vfbasics+0x8246
00000094`0fa5a790 00007ffa`54af5f42 vfbasics+0x787e
00000094`0fa5a7e0 00007ffa`54af4763 ntdll!RtlRestoreContext+0x182
00000094`0fa5a870 00007ffa`54b330aa ntdll!RtlRaiseException+0xe33
00000094`0fa5af40 00007ffa`4ea681b9 ntdll!KiUserExceptionDispatcher+0x3a
*** ERROR: Symbol file could not be found. Defaulted to export symbols for atiuxp64.dll -
00000094`0fa5b658 00000094`1170b0f0 atiuxp64!OpenAdapter10_2+0x12525
00000094`0fa5b660 00000094`0fa5b800 0x00000094`1170b0f0
00000094`0fa5b668 00007ffa`4ea5aa93 0x00000094`0fa5b800
00000094`0fa5b670 00007ffa`4ea55dbe atiuxp64!OpenAdapter10_2+0x4dff
*** ERROR: Symbol file could not be found. Defaulted to export symbols for aticfx64.dll -
00000094`0fa5b720 00007ffa`4f18120e atiuxp64!OpenAdapter10_2+0x12a
*** ERROR: Symbol file could not be found. Defaulted to export symbols for d3d11.dll -
00000094`0fa5b750 00007ffa`4f3a88c1 aticfx64!OpenAdapter10_2+0x13e
00000094`0fa5b780 00007ffa`4f3a8691 d3d11!D3D11CoreCreateLayeredDevice+0x1ba1
00000094`0fa5b8a0 00007ffa`4f3a85db d3d11!D3D11CoreCreateLayeredDevice+0x1971
00000094`0fa5b900 00007ffa`4f387f3d d3d11!D3D11CoreCreateLayeredDevice+0x18bb
00000094`0fa5ba30 00007ffa`4f387e60 d3d11+0x7f3d
00000094`0fa5ba90 00007ffa`4f3a7c6e d3d11+0x7e60
00000094`0fa5bc60 00007ffa`4f3a81fb d3d11!D3D11CoreCreateLayeredDevice+0xf4e
00000094`0fa5c4c0 00007ffa`4f3a80ad d3d11!D3D11CoreCreateLayeredDevice+0x14db
00000094`0fa5c8a0 00007ffa`4f3a6cf9 d3d11!D3D11CoreCreateLayeredDevice+0x138d
00000094`0fa5c8d0 00007ffa`4f3a73cf d3d11!D3D11CoreCreateDevice+0xb09
00000094`0fa5c910 00007ffa`4f3a730b d3d11!D3D11CoreCreateLayeredDevice+0x6af
00000094`0fa5c960 00007ffa`4f3a7295 d3d11!D3D11CoreCreateLayeredDevice+0x5eb
00000094`0fa5c9d0 00007ffa`4f3a6e61 d3d11!D3D11CoreCreateLayeredDevice+0x575
00000094`0fa5caa0 00007ffa`4f3a7573 d3d11!D3D11CoreCreateLayeredDevice+0x141
00000094`0fa5cb40 00007ffa`4f3a5b7f d3d11!D3D11CoreCreateLayeredDevice+0x853
00000094`0fa5f260 00007ffa`4f3a58e4 d3d11!D3D11CreateDeviceAndSwapChain+0x37f
00000094`0fa5f590 00007ffa`4f3a57ec d3d11!D3D11CreateDeviceAndSwapChain+0xe4
00000094`0fa5f650 00007ffa`4f3a576c d3d11!D3D11CreateDevice+0x14c
*** WARNING: Unable to verify checksum for D3D11_Fails_AppVerifier.exe
00000094`0fa5f6c0 00007ff7`a70b1087 d3d11!D3D11CreateDevice+0xcc
00000094`0fa5f770 00007ff7`a70b175d D3D11_Fails_AppVerifier!main+0x77 [c:\_personalprojects\d3d11_fails_appverifier\main.cpp # 18]
00000094`0fa5f800 00007ff7`a70b188e D3D11_Fails_AppVerifier!__tmainCRTStartup+0x19d [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c # 536]
*** ERROR: Symbol file could not be found. Defaulted to export symbols for kernel32.dll -
00000094`0fa5f870 00007ffa`540113d2 D3D11_Fails_AppVerifier!mainCRTStartup+0xe [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c # 377]
00000094`0fa5f8a0 00007ffa`54ab5454 kernel32!BaseThreadInitThunk+0x22
00000094`0fa5f8d0 00000000`00000000 ntdll!RtlUserThreadStart+0x34
My PC's Info
Windows 8.1 Pro 64-bit (6.3, Build 9600)
AMD Radeon (TM) R9 200 Series
AMD Catalyst driver (15.7.1) Up to Date (Last checked 10/15/2015 10:16:39 PM)
App-Verifier no longer detects a read violation after using D3D_DRIVER_TYPE_WARP.
I've contacted AMD. Thanks for the suggestion Chuck Walbourn!
Getting the error below from log file, Any idea why this is not working.
2015-02-06 13:09:48,212 ERROR [utils.logging] Uncaught exception
org.ini4j.InvalidFileFormatException: parse error (at line: 61): You have new mail in /var/mail/root
at org.ini4j.spi.AbstractParser.parseError(AbstractParser.java:53)
at org.ini4j.spi.AbstractParser.parseOptionLine(AbstractParser.java:85)
at org.ini4j.spi.IniParser.parse(IniParser.java:101)
at org.ini4j.spi.IniParser.parse(IniParser.java:62)
at org.ini4j.Ini.load(Ini.java:109)
at org.ini4j.Ini.<init>(Ini.java:50)
at puppetlabs.kitchensink.core$ini_to_map.invoke(core.clj:384)
at clojure.core$map$fn__4207.invoke(core.clj:2487)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.Cons.next(Cons.java:39)
at clojure.lang.RT.boundedLength(RT.java:1654)
at clojure.lang.RestFn.applyTo(RestFn.java:130)
at clojure.core$apply.invoke(core.clj:617)
at puppetlabs.kitchensink.core$inis_to_map.invoke(core.clj:411)
at puppetlabs.kitchensink.core$inis_to_map.invoke(core.clj:402)
at com.puppetlabs.puppetdb.config$parse_config.invoke(config.clj:415)
at com.puppetlabs.puppetdb.cli.services$_main.doInvoke(services.clj:237)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at clojure.lang.Var.invoke(Var.java:419)
at clojure.lang.AFn.applyToHelper(AFn.java:163)
at clojure.lang.Var.applyTo(Var.java:532)
at clojure.core$apply.invoke(core.clj:617)
at com.puppetlabs.puppetdb.core$run_command.invoke(core.clj:87)
at com.puppetlabs.puppetdb.core$_main.doInvoke(core.clj:95)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at com.puppetlabs.puppetdb.core.main(Unknown Source)
There is an error in your ini file. Check line 61.
I have application with CMFCShellTreeCtrl on one of it's dialog and it is crashing when running on some Win8 machines. It happen when tree control trying to initialize and calls SHGetFileInfo in this part of afxshelltreectrl.cpp:
int CMFCShellTreeCtrl::OnGetItemIcon(LPAFX_SHELLITEMINFO pItem, BOOL bSelected)
{
ENSURE(pItem != NULL);
SHFILEINFO sfi;
UINT uiFlags = SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON;
if (bSelected)
{
uiFlags |= SHGFI_OPENICON;
}
else
{
uiFlags |= SHGFI_LINKOVERLAY;
}
if (SHGetFileInfo((LPCTSTR)pItem->pidlFQ, 0, &sfi, sizeof(sfi), uiFlags))
{
return sfi.iIcon;
}
return -1;
}
Application was build in VS2010 on Win7 32-bit.
I could not replicate this bug on VM so I debug remotely on client PC.
I compared the values โโof arguments for SHGetFileInfo function, and they looked the same on my machine and the client's, except the memory addresses.
Call stack after exception:
screenshot
WinDbg log:
ModLoad: 02b70000 02bc9000 cmd.exe
ModLoad: 60780000 607ca000 C:\windows\SysWOW64\mscoree.dll
ModLoad: 60700000 6077a000 C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscoreei.dll
ModLoad: 711b0000 71250000 C:\windows\SysWOW64\sxs.dll
ModLoad: 60150000 606ff000 C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
ModLoad: 70e30000 70ecb000 C:\windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6910_none_d089c358442de345\MSVCR80.dll
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6910_none_d089c358442de345\MSVCR80.dll -
ModLoad: 5f650000 6014a000 C:\windows\assembly\NativeImages_v2.0.50727_32\mscorlib\7f763721bf47dc8d58ec21cb64cbec91\mscorlib.ni.dll
ModLoad: 71770000 71778000 C:\Windows\Microsoft.NET\Framework\v2.0.50727\culture.dll
(c18.227c): CLR exception - code e0434f4d (first chance)
(c18.227c): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\windows\SysWOW64\combase.dll -
eax=002d0068 ebx=80040154 ecx=04b1f654 edx=04b1f678 esi=0018b654 edi=76cbbda0
eip=002d0068 esp=0018b63c ebp=0018b648 iopl=0 nv up ei ng nz ac pe cy
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010297
002d0068 ?? ???
According to the call stack error occurs in some COM functions.
I am not familiar with COM so may be some one can help me to find the reason why SHGetFileInfo cause exception.
c0000005 is memory accessing exception. check whether your pItem has been initialized before calling this function. Or you can check whether 'pItem->pidlFQ' is valid.