Closed
Bug 298730
Opened 20 years ago
Closed 20 years ago
ASSERTION: unexpected target property value: '!JSVAL_IS_PRIMITIVE(*vp)
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: bc, Assigned: brendan)
Details
(Keywords: fixed-aviary1.0.5, fixed1.7.9, regression)
Attachments
(1 file)
|
1.62 KB,
patch
|
brendan
:
review+
brendan
:
superreview+
jay
:
approval-aviary1.0.5+
jay
:
approval1.7.9+
|
Details | Diff | Splinter Review |
I first started seeing this assertion on 6/22 on the 1.0.5 branch only in windows.
###!!! ASSERTION: unexpected target property value: '!JSVAL_IS_PRIMITIVE(*vp)',
file ./mozilla/caps/src/nsScriptSecurityManager.cpp, line 458
nsScriptSecurityManager::CheckObjectAccess(JSContext * 0x00f0eec8, JSObject *
0x02d4abc8, long 47490132, JSAccessMode JSACC_WATCH, long * 0x0012f144) line 458
+ 46 bytes
js_CheckAccess(JSContext * 0x00f0eec8, JSObject * 0x02d4abc8, long 16345400, int
3, long * 0x0012f144, unsigned int * 0x0012f140) line 3413 + 50 bytes
js_Interpret(JSContext * 0x00f0eec8, long * 0x0012f260) line 3954 + 48 bytes
js_Execute(JSContext * 0x00f0eec8, JSObject * 0x02d4a220, JSScript * 0x00fbc8a8,
JSStackFrame * 0x00000000, unsigned int 0, long * 0x0012f38c) line 1173 + 13 bytes
JS_ExecuteScript(JSContext * 0x00f0eec8, JSObject * 0x02d4a220, JSScript *
0x00fbc8a8, long * 0x0012f38c) line 3540 + 25 bytes
mozJSComponentLoader::GlobalForLocation(const char * 0x00fb0d98, nsIFile *
0x02c9ada8) line 1120 + 27 bytes
mozJSComponentLoader::ModuleForLocation(const char * 0x00fb0d98, nsIFile *
0x02c9ada8) line 913 + 19 bytes
mozJSComponentLoader::AttemptRegistration(nsIFile * 0x02c9ada8, int 0) line 749
+ 24 bytes
mozJSComponentLoader::AutoRegisterComponent(mozJSComponentLoader * const
0x00fb0e70, int 0, nsIFile * 0x02c9ada8, int * 0x0012f680) line 675 + 14 bytes
mozJSComponentLoader::RegisterComponentsInDir(int 0, nsIFile * 0x003e8380) line
583 + 24 bytes
mozJSComponentLoader::AutoRegisterComponents(mozJSComponentLoader * const
0x00fb0e70, int 0, nsIFile * 0x003e8380) line 540
nsComponentManagerImpl::AutoRegisterNonNativeComponents(nsIFile * 0x003e8380)
line 3280 + 47 bytes
nsComponentManagerImpl::AutoRegisterImpl(int 0, nsIFile * 0x00000000, int 1)
line 3250 + 20 bytes
nsComponentManagerImpl::AutoRegister(nsComponentManagerImpl * const 0x003eeca8,
nsIFile * 0x00000000) line 3422 + 19 bytes
NS_InitXPCOM2(nsIServiceManager * * 0x0012fb04, nsIFile * 0x003e7740,
nsIDirectoryServiceProvider * 0x0012ff40) line 603
ScopedXPCOMStartup::Initialize() line 795 + 29 bytes
xre_main(int 1, char * * 0x003e7678, const nsXREAppData * 0x0041e01c kAppData)
line 1783 + 11 bytes
main(int 1, char * * 0x003e7678) line 58 + 18 bytes
id 16345400 (0x00F96938) is val 47490132 (0x02D4A454) = string (0x02D4A450)
"operation"
Johnny says that js_CheckAccess should only be called for a limited number of
properties like __proto__ etc and not for things like this.
| Reporter | ||
Updated•20 years ago
|
Flags: blocking-aviary1.0.5?
| Reporter | ||
Comment 1•20 years ago
|
||
To reproduce, just start the browser.
Comment 2•20 years ago
|
||
likely a regression from bug 296397
Comment 3•20 years ago
|
||
Brendan says set XPCOM_DEBUG_BREAK=warn, we aren't going to fix this for 1.0.5
Flags: blocking-aviary1.0.5? → blocking-aviary1.0.5-
Comment 4•20 years ago
|
||
How many times does the assertion fire? If it's firing a lot then it might
indicate we're checking a lot more than we intend to--if so the patch for bug
296397 might not be doing the right thing.
Otherwise we can just fix an innocuous warning assertion on the trunk. Basically
it comes down to the question "In the future 'assertions are fatal' world, would
this one be left as an assertion or changed to a warning?" If it's just a
warning we don't need to rush a fix for the stable branch.
Flags: blocking-aviary1.0.5- → blocking-aviary1.0.5?
Updated•20 years ago
|
Flags: blocking-aviary1.0.5? → blocking-aviary1.0.5-
| Assignee | ||
Comment 5•20 years ago
|
||
Re: comment 2: Actually this is not a regression from bug 296397 -- jst just
removed the assertion on the trunk. I can do the same on the branch if someone
wants to approve that.
/be
Comment 6•20 years ago
|
||
Brendan, I thought we fixed the JS engine also to always get the value of the
property we're checking for before doing the check. That should make us not hit
this assertion, or was that done only for __parent__ and __proto__ or something?
| Reporter | ||
Comment 7•20 years ago
|
||
(In reply to comment #4)
> How many times does the assertion fire?
24 times on startup and for the occasional page. You can see the most recent log
at <http://test.bclary.com/results/2005-06-30-firefox-1.0.x-dbg-01.log>
Flags: blocking-aviary1.0.5- → blocking-aviary1.0.5?
| Assignee | ||
Comment 8•20 years ago
|
||
(In reply to comment #6)
> Brendan, I thought we fixed the JS engine also to always get the value of the
> property we're checking for before doing the check.
No, we didn't need or want that cost -- getters are not idempotent, or even
necessarily cheap, etc. In this case, some JS object initialisers are using get
and set syntax to declare getters and setters, so there is no such property
before the first (usually getter) is declared.
> That should make us not hit
> this assertion, or was that done only for __parent__ and __proto__ or something?
Only for proto and parent, based on JSACC_PROTO/PARENT, and using the directly
addressed object, not the prototype object in which the property was found, cuz
__proto__ and __parent__ are magic.
Again, you (how soon we forget ;-) removed the bogo-assertion in trunk rev 1.261
of nsScriptSecurityManager.cpp. We could put that change on the branch. All I
need is the word from jay.
/be
| Assignee | ||
Comment 9•20 years ago
|
||
Here's the diff.
/be
Attachment #187901 -
Flags: superreview+
Attachment #187901 -
Flags: review+
Attachment #187901 -
Flags: approval1.7.9?
Attachment #187901 -
Flags: approval-aviary1.0.5?
Comment 10•20 years ago
|
||
Comment on attachment 187901 [details] [diff] [review]
jst's trunk patch to rid us of this irritation
Yes, let's get that patch in. a=jay
Attachment #187901 -
Flags: approval1.7.9?
Attachment #187901 -
Flags: approval1.7.9+
Attachment #187901 -
Flags: approval-aviary1.0.5?
Attachment #187901 -
Flags: approval-aviary1.0.5+
| Assignee | ||
Comment 11•20 years ago
|
||
Fixed on branches.
/be
Status: NEW → RESOLVED
Closed: 20 years ago
Keywords: fixed-aviary1.0.5,
fixed1.7.9
Resolution: --- → FIXED
Updated•20 years ago
|
Flags: blocking-aviary1.0.5? → blocking-aviary1.0.5+
Comment 12•20 years ago
|
||
Removing keywords until we know this made it onto the suite.
Brendan: I don't see a checkin for this on the 1.7 branch, can you take a look
and get that in asap? If it's already in, please return the fixed keyword.
Flags: blocking1.7.9+
Keywords: fixed1.7.9
| Assignee | ||
Comment 13•20 years ago
|
||
Sorry, forgot to hit the MOZILLA_1_7_BRANCH -- done.
/be
Keywords: fixed1.7.9
| Reporter | ||
Updated•20 years ago
|
Flags: testcase-
You need to log in
before you can comment on or make changes to this bug.
Description
•