Bug 240023 - REGRESSION (r293703): 358 JSC tests failing
Summary: REGRESSION (r293703): 358 JSC tests failing
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Chris Dumez
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2022-05-03 10:11 PDT by Truitt Savell
Modified: 2022-05-03 12:16 PDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Truitt Savell 2022-05-03 10:11:46 PDT
Somewhere between 250180@main - 250200@main it seems that 358 JSC tests began failing constantly on Mac 
Most of these are from the stress/ directory, with some in microbenchmarks/ and v8-v6/

Build
https://build.webkit.org/#/builders/378/builds/1003

history example:
https://results.webkit.org/?suite=javascriptcore-tests&test=microbenchmarks%2Fempty-string-plus-int.js.bytecode-cache
Comment 1 Radar WebKit Bug Importer 2022-05-03 10:12:15 PDT
<rdar://problem/92676663>
Comment 2 Truitt Savell 2022-05-03 10:14:54 PDT
stress/for-in-string.js.bytecode-cache: ASSERTION FAILED: m_isConstructed
stress/for-in-string.js.bytecode-cache: /Users/yusukesuzuki/dev/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/NeverDestroyed.h(152) : WTF::LazyNeverDestroyed::PointerType WTF::LazyNeverDestroyed<const WTF::AtomString>::storagePointerWithoutAccessCheck() const [T = const WTF::AtomString, AccessTraits = WTF::AnyThreadsAccessTraits]
stress/for-in-string.js.bytecode-cache: 1   0x10ddccb04 WTFCrash
stress/for-in-string.js.bytecode-cache: 2   0x10e3e8434 WTFCrashWithInfo(int, char const*, char const*, int)
stress/for-in-string.js.bytecode-cache: 3   0x10f813f50 WTF::LazyNeverDestroyed<WTF::AtomString const, WTF::AnyThreadsAccessTraits>::storagePointerWithoutAccessCheck() const
stress/for-in-string.js.bytecode-cache: 4   0x10f813ec8 WTF::LazyNeverDestroyed<WTF::AtomString const, WTF::AnyThreadsAccessTraits>::storagePointer() const
stress/for-in-string.js.bytecode-cache: 5   0x10f813e94 WTF::LazyNeverDestroyed<WTF::AtomString const, WTF::AnyThreadsAccessTraits>::get()
stress/for-in-string.js.bytecode-cache: 6   0x10f813590 WTF::emptyAtom()
stress/for-in-string.js.bytecode-cache:
Comment 3 Chris Dumez 2022-05-03 10:15:57 PDT
microbenchmarks/string-out-of-bounds.js.bytecode-cache: ASSERTION FAILED: m_isConstructed
microbenchmarks/string-out-of-bounds.js.bytecode-cache: /Volumes/Data/worker/Apple-Monterey-Debug-Build/build/Source/WTF/wtf/NeverDestroyed.h(152) : WTF::LazyNeverDestroyed::PointerType WTF::LazyNeverDestroyed<const WTF::AtomString>::storagePointerWithoutAccessCheck() const [T = const WTF::AtomString, AccessTraits = WTF::AnyThreadsAccessTraits]
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 1   0x11476ce70 WTFCrash
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 2   0x114d79a30 void JSC::IntlNumberFormat::visitChildrenImpl<JSC::AbstractSlotVisitor>(JSC::JSCell*, JSC::AbstractSlotVisitor&)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 3   0x114773bf0 WTF::LazyNeverDestroyed<WTF::AtomString const, WTF::AnyThreadsAccessTraits>::storagePointerWithoutAccessCheck() const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 4   0x11617f1e4 WTF::LazyNeverDestroyed<WTF::AtomString const, WTF::AnyThreadsAccessTraits>::storagePointer() const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 5   0x114773b70 WTF::LazyNeverDestroyed<WTF::AtomString const, WTF::AnyThreadsAccessTraits>::get()
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 6   0x114773a60 WTF::emptyAtom()
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 7   0x11617e690 JSC::CachedUniquedStringImplBase<WTF::UniquedStringImpl>::decode(JSC::Decoder&) const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 8   0x1161c5940 JSC::CachedJSValue::decode(JSC::Decoder&, JSC::WriteBarrier<JSC::Unknown, WTF::RawValueTraits<JSC::Unknown> >&, JSC::JSCell const*) const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 9   0x1161c4b6c std::__1::enable_if<!(std::is_same<JSC::CachedJSValue, JSC::SourceTypeImpl<JSC::CachedJSValue, void>::type>::value), void>::type JSC::decode<JSC::CachedJSValue, JSC::UnlinkedCodeBlock*>(JSC::Decoder&, JSC::CachedJSValue const&, JSC::SourceTypeImpl<JSC::CachedJSValue, void>::type&, JSC::UnlinkedCodeBlock*)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 10  0x1161c457c void JSC::CachedVector<JSC::CachedJSValue, 0ul, WTF::CrashOnOverflow, WTF::FastMalloc>::decode<JSC::UnlinkedCodeBlock*, WTF::FixedVector<JSC::WriteBarrier<JSC::Unknown, WTF::RawValueTraits<JSC::Unknown> > > >(JSC::Decoder&, WTF::FixedVector<JSC::WriteBarrier<JSC::Unknown, WTF::RawValueTraits<JSC::Unknown> > >&, JSC::UnlinkedCodeBlock*) const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 11  0x1161af728 JSC::CachedCodeBlock<JSC::UnlinkedProgramCodeBlock>::decode(JSC::Decoder&, JSC::UnlinkedCodeBlock&) const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 12  0x1161af54c JSC::CachedProgramCodeBlock::decode(JSC::Decoder&) const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 13  0x1161af34c JSC::UnlinkedProgramCodeBlock* JSC::CachedPtr<JSC::CachedProgramCodeBlock, JSC::UnlinkedProgramCodeBlock>::decode<>(JSC::Decoder&, bool&) const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 14  0x1161ab824 JSC::UnlinkedProgramCodeBlock* JSC::CachedPtr<JSC::CachedProgramCodeBlock, JSC::UnlinkedProgramCodeBlock>::decode<>(JSC::Decoder&) const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 15  0x116175d08 JSC::CacheEntry<JSC::UnlinkedProgramCodeBlock>::decode(JSC::Decoder&, std::__1::pair<JSC::SourceCodeKey, JSC::UnlinkedProgramCodeBlock*>&) const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 16  0x116175a78 JSC::GenericCacheEntry::decode(JSC::Decoder&, std::__1::pair<JSC::SourceCodeKey, JSC::UnlinkedCodeBlock*>&) const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 17  0x116176818 JSC::decodeCodeBlockImpl(JSC::VM&, JSC::SourceCodeKey const&, WTF::Ref<JSC::CachedBytecode, WTF::RawPtrTraits<JSC::CachedBytecode> >)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 18  0x1161f0ea0 JSC::UnlinkedProgramCodeBlock* JSC::decodeCodeBlock<JSC::UnlinkedProgramCodeBlock>(JSC::VM&, JSC::SourceCodeKey const&, WTF::Ref<JSC::CachedBytecode, WTF::RawPtrTraits<JSC::CachedBytecode> >)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 19  0x1161f0d30 JSC::UnlinkedProgramCodeBlock* JSC::CodeCacheMap::fetchFromDiskImpl<JSC::UnlinkedProgramCodeBlock>(JSC::VM&, JSC::SourceCodeKey const&)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 20  0x1161f0988 std::__1::enable_if<(std::is_base_of<JSC::UnlinkedCodeBlock, JSC::UnlinkedProgramCodeBlock>::value) && (!(std::is_same<JSC::UnlinkedProgramCodeBlock, JSC::UnlinkedEvalCodeBlock>::value)), JSC::UnlinkedProgramCodeBlock*>::type JSC::CodeCacheMap::fetchFromDisk<JSC::UnlinkedProgramCodeBlock>(JSC::VM&, JSC::SourceCodeKey const&)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 21  0x1161f052c JSC::UnlinkedProgramCodeBlock* JSC::CodeCacheMap::findCacheAndUpdateAge<JSC::UnlinkedProgramCodeBlock>(JSC::VM&, JSC::SourceCodeKey const&)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 22  0x116179950 JSC::UnlinkedProgramCodeBlock* JSC::CodeCache::getUnlinkedGlobalCodeBlock<JSC::UnlinkedProgramCodeBlock, JSC::ProgramExecutable>(JSC::VM&, JSC::ProgramExecutable*, JSC::SourceCode const&, JSC::JSParserStrictMode, JSC::JSParserScriptMode, WTF::OptionSet<JSC::CodeGenerationMode>, JSC::ParserError&, JSC::EvalContextType)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 23  0x116179824 JSC::CodeCache::getUnlinkedProgramCodeBlock(JSC::VM&, JSC::ProgramExecutable*, JSC::SourceCode const&, JSC::JSParserStrictMode, WTF::OptionSet<JSC::CodeGenerationMode>, JSC::ParserError&)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 24  0x116588178 JSC::ProgramExecutable::initializeGlobalProperties(JSC::VM&, JSC::JSGlobalObject*, JSC::JSScope*)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 25  0x115d84be8 JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::JSGlobalObject*, JSC::JSObject*)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 26  0x116211528 JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 27  0x10263fe80 runWithOptions(GlobalObject*, CommandLine&, bool&)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 28  0x1025f6a98 jscmain(int, char**)::$_9::operator()(JSC::VM&, GlobalObject*, bool&) const
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 29  0x1025c20fc int runJSC<jscmain(int, char**)::$_9>(CommandLine const&, bool, jscmain(int, char**)::$_9 const&)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 30  0x1025bfa44 jscmain(int, char**)
microbenchmarks/string-out-of-bounds.js.bytecode-cache: 31  0x1025bf654 main

Seems like something fails to call AtomString::init() before running JSC tests.
Comment 4 Chris Dumez 2022-05-03 10:25:21 PDT
Pull request: https://github.com/WebKit/WebKit/pull/470
Comment 5 EWS 2022-05-03 12:16:13 PDT
Committed r293735 (250223@main): <https://commits.webkit.org/250223@main>

Reviewed commits have been landed. Closing PR #470 and removing active labels.