Bug 151241

Summary: Restore CodeBlock jettison code to jettison when a CodeBlock has been alive for a long time
Product: WebKit Reporter: Geoffrey Garen <ggaren>
Component: New BugsAssignee: Saam Barati <saam>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, keith_miller, kling, mark.lam, msaboff, saam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=151277
Bug Depends on: 151282, 153471    
Bug Blocks:    
Attachments:
Description Flags
Patch
none
Patch for landing
commit-queue: commit-queue-
Patch for landing
none
WIP
none
patch benjamin: review+

Description Geoffrey Garen 2015-11-12 17:59:54 PST
Restore CodeBlock jettison code I accidentally removed
Comment 1 Geoffrey Garen 2015-11-12 18:01:31 PST
Created attachment 265461 [details]
Patch
Comment 2 Andreas Kling 2015-11-12 18:04:31 PST
Comment on attachment 265461 [details]
Patch

r=me
(Hope it works, too!)
Comment 3 WebKit Commit Bot 2015-11-12 18:53:53 PST
Comment on attachment 265461 [details]
Patch

Clearing flags on attachment: 265461

Committed r192401: <http://trac.webkit.org/changeset/192401>
Comment 4 WebKit Commit Bot 2015-11-12 18:53:55 PST
All reviewed patches have been landed.  Closing bug.
Comment 5 WebKit Commit Bot 2015-11-13 16:37:10 PST
Re-opened since this is blocked by bug 151282
Comment 6 Alexey Proskuryakov 2015-11-15 13:28:12 PST
This broke animometer, and also rolling this out somehow fixed v8-raytrace (even though landing it wasn't what broke it).

Tim rolled out in r192450.
Comment 7 Andreas Kling 2016-01-25 11:31:17 PST
Created attachment 269770 [details]
Patch for landing
Comment 8 WebKit Commit Bot 2016-01-25 11:32:42 PST
Comment on attachment 269770 [details]
Patch for landing

Rejecting attachment 269770 [details] from commit-queue.

Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.webkit.org', '--bot-id=webkit-cq-03', 'validate-changelog', '--check-oops', '--non-interactive', 269770, '--port=mac']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Geoff Garen found in /Volumes/Data/EWS/WebKit/Source/JavaScriptCore/ChangeLog does not appear to be a valid reviewer according to contributors.json.
/Volumes/Data/EWS/WebKit/Source/JavaScriptCore/ChangeLog neither lists a valid reviewer nor contains the string "Unreviewed" or "Rubber stamp" (case insensitive).

Full output: http://webkit-queues.webkit.org/results/737719
Comment 9 Andreas Kling 2016-01-25 12:07:03 PST
Created attachment 269777 [details]
Patch for landing
Comment 10 WebKit Commit Bot 2016-01-25 13:04:37 PST
Comment on attachment 269777 [details]
Patch for landing

Clearing flags on attachment: 269777

Committed r195550: <http://trac.webkit.org/changeset/195550>
Comment 11 WebKit Commit Bot 2016-01-25 13:04:42 PST
All reviewed patches have been landed.  Closing bug.
Comment 12 WebKit Commit Bot 2016-01-25 19:08:29 PST
Re-opened since this is blocked by bug 153471
Comment 13 Andreas Kling 2016-01-25 19:11:03 PST
Crashed Thread:        9  WTF Parallel Helper Thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

VM Regions Near 0:
--> 
    __TEXT                 0000000106c76000-0000000106c77000 [    4K] r-x/rwx SM=COW  /System/Library/Frameworks/WebKit.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebContent

Application Specific Information:
Bundle controller class:
BrowserBundleController
 
Process Model:
Multiple Web Processes
 

Global Trace Buffer (reverse chronological seconds):
12.372942    CFNetwork                 	0x00007fff951833eb Explicitly setting CF cookie storage singleton
12.373440    CFNetwork                 	0x00007fff951b9c85 Explicitly setting cookie storage singleton

Thread 0:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff8bf73d7a swtch_pri + 10
1   libsystem_pthread.dylib       	0x00007fff8b7973ac sched_yield + 11
2   com.apple.JavaScriptCore      	0x00007fff94ddbeb5 WTF::LockBase::lockSlow() + 293
3   com.apple.JavaScriptCore      	0x00007fff94476b87 JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 535
4   com.apple.JavaScriptCore      	0x00007fff94a4c845 JSC::Heap::markRoots(double, void*, void*, int (&) [37]) + 1125
5   com.apple.JavaScriptCore      	0x00007fff94a4d6fd JSC::Heap::collectImpl(JSC::HeapOperation, void*, void*, int (&) [37]) + 717
6   com.apple.JavaScriptCore      	0x00007fff94a4d400 JSC::Heap::collect(JSC::HeapOperation) + 96
7   com.apple.JavaScriptCore      	0x00007fff94a471fc JSC::GCActivityCallback::doWork() + 76
8   com.apple.JavaScriptCore      	0x00007fff944759ea JSC::HeapTimer::timerDidFire(__CFRunLoopTimer*, void*) + 186
9   com.apple.CoreFoundation      	0x00007fff969579f4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
10  com.apple.CoreFoundation      	0x00007fff96957683 __CFRunLoopDoTimer + 1075
11  com.apple.CoreFoundation      	0x00007fff969571da __CFRunLoopDoTimers + 298
12  com.apple.CoreFoundation      	0x00007fff9694e6d1 __CFRunLoopRun + 1841
13  com.apple.CoreFoundation      	0x00007fff9694dd38 CFRunLoopRunSpecific + 296
14  com.apple.HIToolbox           	0x00007fff9a3f3d55 RunCurrentEventLoopInMode + 235
15  com.apple.HIToolbox           	0x00007fff9a3f3b8f ReceiveNextEventCommon + 432
16  com.apple.HIToolbox           	0x00007fff9a3f39cf _BlockUntilNextEventMatchingListInModeWithFilter + 71
17  com.apple.AppKit              	0x00007fff894fbf3a _DPSNextEvent + 1067
18  com.apple.AppKit              	0x00007fff894fb369 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
19  com.apple.AppKit              	0x00007fff894efecc -[NSApplication run] + 682
20  com.apple.AppKit              	0x00007fff894b9162 NSApplicationMain + 1176
21  libxpc.dylib                  	0x00007fff9b30a4f2 _xpc_objc_main + 793
22  libxpc.dylib                  	0x00007fff9b308f1e xpc_main + 494
23  com.apple.WebKit.WebContent   	0x0000000106c76b46 0x106c76000 + 2886
24  libdyld.dylib                 	0x00007fff8ed9e5ad start + 1

Thread 1:
0   libsystem_kernel.dylib        	0x00007fff8bf7978a __workq_kernreturn + 10
1   libsystem_pthread.dylib       	0x00007fff8b79658c _pthread_wqthread + 1283
2   libsystem_pthread.dylib       	0x00007fff8b794375 start_wqthread + 13

Thread 2:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib        	0x00007fff8bf7a0a2 kevent_qos + 10
1   libdispatch.dylib             	0x00007fff9a8ca1ad _dispatch_mgr_invoke + 216
2   libdispatch.dylib             	0x00007fff9a8c9e15 _dispatch_mgr_thread + 52

Thread 3:
0   libsystem_kernel.dylib        	0x00007fff8bf7978a __workq_kernreturn + 10
1   libsystem_pthread.dylib       	0x00007fff8b79658c _pthread_wqthread + 1283
2   libsystem_pthread.dylib       	0x00007fff8b794375 start_wqthread + 13

Thread 4:
0   libsystem_kernel.dylib        	0x00007fff8bf7978a __workq_kernreturn + 10
1   libsystem_pthread.dylib       	0x00007fff8b79658c _pthread_wqthread + 1283
2   libsystem_pthread.dylib       	0x00007fff8b794375 start_wqthread + 13

Thread 5:: com.apple.NSEventThread
0   libsystem_kernel.dylib        	0x00007fff8bf73c96 mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x00007fff8bf730d7 mach_msg + 55
2   com.apple.CoreFoundation      	0x00007fff9694f024 __CFRunLoopServiceMachPort + 212
3   com.apple.CoreFoundation      	0x00007fff9694e4ec __CFRunLoopRun + 1356
4   com.apple.CoreFoundation      	0x00007fff9694dd38 CFRunLoopRunSpecific + 296
5   com.apple.AppKit              	0x00007fff89651eed _NSEventThread + 149
6   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
7   libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
8   libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 6:: com.apple.NSURLConnectionLoader
0   libsystem_kernel.dylib        	0x00007fff8bf73c96 mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x00007fff8bf730d7 mach_msg + 55
2   com.apple.CoreFoundation      	0x00007fff9694f024 __CFRunLoopServiceMachPort + 212
3   com.apple.CoreFoundation      	0x00007fff9694e4ec __CFRunLoopRun + 1356
4   com.apple.CoreFoundation      	0x00007fff9694dd38 CFRunLoopRunSpecific + 296
5   com.apple.CFNetwork           	0x00007fff94fbcc2d +[NSURLConnection(Loader) _resourceLoadLoop:] + 412
6   com.apple.Foundation          	0x00007fff9370e084 __NSThread__start__ + 1351
7   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
8   libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
9   libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 7:
0   libsystem_kernel.dylib        	0x00007fff8bf792b2 __semwait_signal + 10
1   libsystem_c.dylib             	0x00007fff87515a75 nanosleep + 199
2   libc++.1.dylib                	0x00007fff92335020 std::__1::this_thread::sleep_for(std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > const&) + 75
3   com.apple.JavaScriptCore      	0x00007fff94df378b bmalloc::Heap::scavengeLargeObjects(std::__1::unique_lock<bmalloc::StaticMutex>&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >) + 219
4   com.apple.JavaScriptCore      	0x00007fff94df30ff bmalloc::Heap::scavenge(std::__1::unique_lock<bmalloc::StaticMutex>&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >) + 287
5   com.apple.JavaScriptCore      	0x00007fff94df2cd4 bmalloc::Heap::concurrentScavenge() + 68
6   com.apple.JavaScriptCore      	0x00007fff94df559a bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>::threadRunLoop() + 90
7   com.apple.JavaScriptCore      	0x00007fff94df57bd void* std::__1::__thread_proxy<std::__1::tuple<void (*)(bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>*), bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>*> >(void*) + 93
8   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
9   libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
10  libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 8:: WebCore: Scrolling
0   libsystem_kernel.dylib        	0x00007fff8bf73c96 mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x00007fff8bf730d7 mach_msg + 55
2   com.apple.CoreFoundation      	0x00007fff9694f024 __CFRunLoopServiceMachPort + 212
3   com.apple.CoreFoundation      	0x00007fff9694e4ec __CFRunLoopRun + 1356
4   com.apple.CoreFoundation      	0x00007fff9694dd38 CFRunLoopRunSpecific + 296
5   com.apple.CoreFoundation      	0x00007fff9698f751 CFRunLoopRun + 97
6   com.apple.WebCore             	0x00007fff910e4a7d WebCore::ScrollingThread::initializeRunLoop() + 253
7   com.apple.JavaScriptCore      	0x00007fff9445fc62 WTF::threadEntryPoint(void*) + 178
8   com.apple.JavaScriptCore      	0x00007fff9445fb8f WTF::wtfThreadEntryPoint(void*) + 15
9   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
10  libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
11  libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 9 Crashed:: WTF Parallel Helper Thread
0   com.apple.JavaScriptCore      	0x00007fff94476d54 JSC::SlotVisitor::drain() + 244
1   com.apple.JavaScriptCore      	0x00007fff944769d8 JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 104
2   com.apple.JavaScriptCore      	0x00007fff94a4eafe WTF::SharedTaskFunctor<void (), JSC::Heap::markRoots(double, void*, void*, int (&) [37])::$_0>::run() + 286
3   com.apple.JavaScriptCore      	0x00007fff94de33ac WTF::ParallelHelperClient::runTask(WTF::RefPtr<WTF::SharedTask<void ()> >) + 44
4   com.apple.JavaScriptCore      	0x00007fff94de3c0f WTF::ParallelHelperPool::helperThreadBody() + 223
5   com.apple.JavaScriptCore      	0x00007fff9445fc62 WTF::threadEntryPoint(void*) + 178
6   com.apple.JavaScriptCore      	0x00007fff9445fb8f WTF::wtfThreadEntryPoint(void*) + 15
7   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
8   libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
9   libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 10:: WTF Parallel Helper Thread
0   com.apple.JavaScriptCore      	0x00007fff947a961d JSC::CodeBlock::propagateTransitions(JSC::SlotVisitor&) + 701
1   com.apple.JavaScriptCore      	0x00007fff94476d75 JSC::SlotVisitor::drain() + 277
2   com.apple.JavaScriptCore      	0x00007fff944769d8 JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 104
3   com.apple.JavaScriptCore      	0x00007fff94a4eafe WTF::SharedTaskFunctor<void (), JSC::Heap::markRoots(double, void*, void*, int (&) [37])::$_0>::run() + 286
4   com.apple.JavaScriptCore      	0x00007fff94de33ac WTF::ParallelHelperClient::runTask(WTF::RefPtr<WTF::SharedTask<void ()> >) + 44
5   com.apple.JavaScriptCore      	0x00007fff94de3c0f WTF::ParallelHelperPool::helperThreadBody() + 223
6   com.apple.JavaScriptCore      	0x00007fff9445fc62 WTF::threadEntryPoint(void*) + 178
7   com.apple.JavaScriptCore      	0x00007fff9445fb8f WTF::wtfThreadEntryPoint(void*) + 15
8   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
9   libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
10  libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 11:: WTF Parallel Helper Thread
0   libsystem_kernel.dylib        	0x00007fff8bf73d7a swtch_pri + 10
1   libsystem_pthread.dylib       	0x00007fff8b7973ac sched_yield + 11
2   com.apple.JavaScriptCore      	0x00007fff94ddbeb5 WTF::LockBase::lockSlow() + 293
3   com.apple.JavaScriptCore      	0x00007fff94476b87 JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 535
4   com.apple.JavaScriptCore      	0x00007fff94a4eafe WTF::SharedTaskFunctor<void (), JSC::Heap::markRoots(double, void*, void*, int (&) [37])::$_0>::run() + 286
5   com.apple.JavaScriptCore      	0x00007fff94de33ac WTF::ParallelHelperClient::runTask(WTF::RefPtr<WTF::SharedTask<void ()> >) + 44
6   com.apple.JavaScriptCore      	0x00007fff94de3c0f WTF::ParallelHelperPool::helperThreadBody() + 223
7   com.apple.JavaScriptCore      	0x00007fff9445fc62 WTF::threadEntryPoint(void*) + 178
8   com.apple.JavaScriptCore      	0x00007fff9445fb8f WTF::wtfThreadEntryPoint(void*) + 15
9   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
10  libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
11  libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 12:: DFG Worklist Worker Thread
0   libsystem_kernel.dylib        	0x00007fff8bf78f5e __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff8b79773d _pthread_cond_wait + 767
2   libc++.1.dylib                	0x00007fff922f668f std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   com.apple.JavaScriptCore      	0x00007fff94de062e WTF::ParkingLot::parkConditionally(void const*, std::__1::function<bool ()>, std::__1::function<void ()>, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 2494
4   com.apple.JavaScriptCore      	0x00007fff94991aea bool WTF::ConditionBase::waitUntil<WTF::Lock>(WTF::Lock&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 154
5   com.apple.JavaScriptCore      	0x00007fff9499058e JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*) + 302
6   com.apple.JavaScriptCore      	0x00007fff9445fc62 WTF::threadEntryPoint(void*) + 178
7   com.apple.JavaScriptCore      	0x00007fff9445fb8f WTF::wtfThreadEntryPoint(void*) + 15
8   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
9   libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
10  libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 13:: FTL Worklist Worker Thread
0   libsystem_kernel.dylib        	0x00007fff8bf78f5e __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff8b79773d _pthread_cond_wait + 767
2   libc++.1.dylib                	0x00007fff922f668f std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   com.apple.JavaScriptCore      	0x00007fff94de062e WTF::ParkingLot::parkConditionally(void const*, std::__1::function<bool ()>, std::__1::function<void ()>, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 2494
4   com.apple.JavaScriptCore      	0x00007fff94991aea bool WTF::ConditionBase::waitUntil<WTF::Lock>(WTF::Lock&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 154
5   com.apple.JavaScriptCore      	0x00007fff9499058e JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*) + 302
6   com.apple.JavaScriptCore      	0x00007fff9445fc62 WTF::threadEntryPoint(void*) + 178
7   com.apple.JavaScriptCore      	0x00007fff9445fb8f WTF::wtfThreadEntryPoint(void*) + 15
8   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
9   libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
10  libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 14:: FTL Worklist Worker Thread
0   libsystem_kernel.dylib        	0x00007fff8bf78f5e __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff8b79773d _pthread_cond_wait + 767
2   libc++.1.dylib                	0x00007fff922f668f std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   com.apple.JavaScriptCore      	0x00007fff94de062e WTF::ParkingLot::parkConditionally(void const*, std::__1::function<bool ()>, std::__1::function<void ()>, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 2494
4   com.apple.JavaScriptCore      	0x00007fff94991aea bool WTF::ConditionBase::waitUntil<WTF::Lock>(WTF::Lock&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 154
5   com.apple.JavaScriptCore      	0x00007fff9499058e JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*) + 302
6   com.apple.JavaScriptCore      	0x00007fff9445fc62 WTF::threadEntryPoint(void*) + 178
7   com.apple.JavaScriptCore      	0x00007fff9445fb8f WTF::wtfThreadEntryPoint(void*) + 15
8   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
9   libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
10  libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 15:: FTL Worklist Worker Thread
0   libsystem_kernel.dylib        	0x00007fff8bf78f5e __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff8b79773d _pthread_cond_wait + 767
2   libc++.1.dylib                	0x00007fff922f668f std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   com.apple.JavaScriptCore      	0x00007fff94de062e WTF::ParkingLot::parkConditionally(void const*, std::__1::function<bool ()>, std::__1::function<void ()>, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 2494
4   com.apple.JavaScriptCore      	0x00007fff94991aea bool WTF::ConditionBase::waitUntil<WTF::Lock>(WTF::Lock&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 154
5   com.apple.JavaScriptCore      	0x00007fff9499058e JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*) + 302
6   com.apple.JavaScriptCore      	0x00007fff9445fc62 WTF::threadEntryPoint(void*) + 178
7   com.apple.JavaScriptCore      	0x00007fff9445fb8f WTF::wtfThreadEntryPoint(void*) + 15
8   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
9   libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
10  libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 16:
0   libsystem_kernel.dylib        	0x00007fff8bf7978a __workq_kernreturn + 10
1   libsystem_pthread.dylib       	0x00007fff8b79658c _pthread_wqthread + 1283
2   libsystem_pthread.dylib       	0x00007fff8b794375 start_wqthread + 13

Thread 17:: CVDisplayLink
0   libsystem_kernel.dylib        	0x00007fff8bf78f5e __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff8b797773 _pthread_cond_wait + 821
2   com.apple.CoreVideo           	0x00007fff8b9e60d8 CVDisplayLink::waitUntil(unsigned long long) + 232
3   com.apple.CoreVideo           	0x00007fff8b9e5ed1 CVDisplayLink::runIOThread() + 511
4   com.apple.CoreVideo           	0x00007fff8b9e59a9 startIOThread(void*) + 147
5   libsystem_pthread.dylib       	0x00007fff8b7969b1 _pthread_body + 131
6   libsystem_pthread.dylib       	0x00007fff8b79692e _pthread_start + 168
7   libsystem_pthread.dylib       	0x00007fff8b794385 thread_start + 13

Thread 9 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x00000000ffffffd9  rcx: 0x000000010b053000  rdx: 0x0000000000000000
  rdi: 0x000000010b09ff00  rsi: 0x0000000000000010  rbp: 0x000070000052ed50  rsp: 0x000070000052ed20
   r8: 0x0000000110605c00   r9: 0x000000010a9c9e08  r10: 0x000000000000000a  r11: 0x00000000000001ff
  r12: 0x00007fff78db1fc0  r13: 0xffff000000000002  r14: 0x000000010a807818  r15: 0x000000010d5ad000
  rip: 0x00007fff94476d54  rfl: 0x0000000000010283  cr2: 0x0000000000000000
Comment 14 Saam Barati 2016-08-03 13:57:58 PDT
I'll try to roll this back in.
Comment 15 Saam Barati 2016-08-04 14:11:18 PDT
Created attachment 285363 [details]
WIP

My current strategy is to always return true to the question if a CodeBlock
is old enough to jettison. This is finding a few bugs where we DeferGC instead
of DeferGCForAWhile and we GC right after making a CodeBlock, which causes us to
collect a CodeBlock. I think it'll continue to find bugs. I'm working through the
tests now.
Comment 16 WebKit Commit Bot 2016-08-04 14:32:45 PDT
Attachment 285363 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITOperations.cpp:958:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/jit/JITOperations.cpp:960:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:89:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:3139:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:3557:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:3562:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 6 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 17 Saam Barati 2016-08-04 18:43:01 PDT
Created attachment 285392 [details]
patch
Comment 18 WebKit Commit Bot 2016-08-04 18:44:57 PDT
Attachment 285392 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/Executable.h:378:  The parameter name "exec" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/runtime/Executable.h:378:  The parameter name "function" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/runtime/Executable.h:378:  The parameter name "scope" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/runtime/Executable.h:378:  The parameter name "kind" adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 4 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 19 Benjamin Poulain 2016-08-04 19:02:31 PDT
Comment on attachment 285392 [details]
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=285392&action=review

Ok. Let's try!

> Source/JavaScriptCore/bytecode/CodeBlock.cpp:2685
> +        return std::chrono::duration_cast<std::chrono::milliseconds>(
> +            std::chrono::seconds(5 + 10));
> +    case JITCode::DFGJIT:
> +        return std::chrono::duration_cast<std::chrono::milliseconds>(
> +            std::chrono::seconds(20));
> +    case JITCode::FTLJIT:
> +        return std::chrono::duration_cast<std::chrono::milliseconds>(
> +            std::chrono::seconds(60));

Each return; statement could be on one line.
Comment 20 Saam Barati 2016-08-04 23:48:46 PDT
landed in:
https://trac.webkit.org/changeset/204162