Summary: | Running a single layout test makes 28 WebProcessPools (and launches 6 Network processes) | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Simon Fraser (smfr) <simon.fraser> | ||||||
Component: | WebKit Misc. | Assignee: | Chris Dumez <cdumez> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | achristensen, ap, beidson, cdumez, ggaren, jbedard, katherine_cheney, simon.fraser, webkit-bug-importer, youennf | ||||||
Priority: | P2 | Keywords: | InRadar | ||||||
Version: | Safari Technology Preview | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=179123 | ||||||||
Bug Depends on: | 208546, 208610, 208619 | ||||||||
Bug Blocks: | |||||||||
Attachments: |
|
Description
Simon Fraser (smfr)
2020-03-03 15:43:35 PST
Some of the call sites: (lldb) bt * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 30.1 frame #0: 0x0000000107cc1835 WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x0000000132808208, configuration=0x000000012f808188) at WebProcessPool.cpp:255:5 frame #1: 0x0000000107cc04ed WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x0000000132808208, configuration=0x000000012f808188) at WebProcessPool.cpp:252:1 frame #2: 0x0000000107cc0456 WebKit`WebKit::WebProcessPool::create(configuration=0x000000012f808188) at WebProcessPool.cpp:179:26 frame #3: 0x00000001080d8714 WebKit`WebKit::WebsiteDataStore::processPools(this=0x000000012ef3e3a8, count=18446744073709551615, ensureAPoolExists=true) const at WebsiteDataStore.cpp:1910:28 * frame #4: 0x00000001080dabe8 WebKit`WebKit::WebsiteDataStore::removeData(this=0x000000012ef3e3a8, dataTypes={ size = 1 }, modifiedSince=(m_value = -Inf), completionHandler=0x00007ffeefbfed50)>&&) at WebsiteDataStore.cpp:707:34 frame #5: 0x0000000107ee3a8f WebKit`::WKWebsiteDataStoreRemoveAllIndexedDatabases(dataStoreRef=0x000000012ef3e3a0, context=0x00007ffeefbfedb8, callback=(WebKitTestRunner`WTR::StorageVoidCallback(void*) at TestController.cpp:3208)) at WKWebsiteDataStoreRef.cpp:627:35 frame #6: 0x0000000100036d7f WebKitTestRunner`WTR::TestController::clearIndexedDatabases(this=0x00007ffeefbff3b8) at TestController.cpp:3217:5 frame #7: 0x00000001000363ec WebKitTestRunner`WTR::TestController::resetStateToConsistentValues(this=0x00007ffeefbff3b8, options=0x00007ffeefbfef90, resetStage=BeforeTest) at TestController.cpp:1017:5 frame #8: 0x0000000100035e64 WebKitTestRunner`WTR::TestController::ensureViewSupportsOptionsForTest(this=0x00007ffeefbff3b8, test=0x00000001484ec000) at TestController.cpp:819:10 ... frame #0: 0x0000000107cc1835 WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x000000012f046808, configuration=0x000000012ef4d898) at WebProcessPool.cpp:255:5 frame #1: 0x0000000107cc04ed WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x000000012f046808, configuration=0x000000012ef4d898) at WebProcessPool.cpp:252:1 frame #2: 0x0000000107cc0456 WebKit`WebKit::WebProcessPool::create(configuration=0x000000012ef4d898) at WebProcessPool.cpp:179:26 frame #3: 0x00000001080d8714 WebKit`WebKit::WebsiteDataStore::processPools(this=0x000000012ef3e3a8, count=18446744073709551615, ensureAPoolExists=true) const at WebsiteDataStore.cpp:1910:28 frame #4: 0x00000001080e8c71 WebKit`WebKit::WebsiteDataStore::resetQuota(this=0x000000012ef3e3a8, completionHandler=0x00007ffeefbfed68)>&&) at WebsiteDataStore.cpp:2235:30 frame #5: 0x0000000107ee3f4b WebKit`::WKWebsiteDataStoreResetQuota(dataStoreRef=0x000000012ef3e3a0, context=0x00007ffeefbfedb8, callback=(WebKitTestRunner`WTR::StorageVoidCallback(void*) at TestController.cpp:3208)) at WKWebsiteDataStoreRef.cpp:712:35 * frame #6: 0x0000000100036f8f WebKitTestRunner`WTR::TestController::resetQuota(this=0x00007ffeefbff3b8) at TestController.cpp:3242:5 frame #7: 0x000000010003641c WebKitTestRunner`WTR::TestController::resetStateToConsistentValues(this=0x00007ffeefbff3b8, options=0x00007ffeefbfef90, resetStage=BeforeTest) at TestController.cpp:1023:5 frame #8: 0x0000000100035e64 WebKitTestRunner`WTR::TestController::ensureViewSupportsOptionsForTest(this=0x00007ffeefbff3b8, test=0x00000001484ec000) at TestController.cpp:819:10 ... * frame #0: 0x0000000107cc1835 WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x000000014880fe08, configuration=0x0000000132726158) at WebProcessPool.cpp:255:5 frame #1: 0x0000000107cc04ed WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x000000014880fe08, configuration=0x0000000132726158) at WebProcessPool.cpp:252:1 frame #2: 0x0000000107cc0456 WebKit`WebKit::WebProcessPool::create(configuration=0x0000000132726158) at WebProcessPool.cpp:179:26 frame #3: 0x00000001080d8714 WebKit`WebKit::WebsiteDataStore::processPools(this=0x000000012ef3e3a8, count=18446744073709551615, ensureAPoolExists=true) const at WebsiteDataStore.cpp:1910:28 frame #4: 0x00000001080dc0a1 WebKit`WebKit::WebsiteDataStore::clearResourceLoadStatisticsInWebProcesses(this=0x000000012ef3e3a8, callback=0x00007ffeefbfed38)>&&) at WebsiteDataStore.cpp:2100:34 frame #5: 0x0000000107ee30dc WebKit`::WKWebsiteDataStoreStatisticsResetToConsistentState(dataStoreRef=0x000000012ef3e3a0, context=0x00007ffeefbfedb0, completionHandler=(WebKitTestRunner`WTR::resourceStatisticsVoidResultCallback(void*) at TestController.cpp:3344)) at WKWebsiteDataStoreRef.cpp:589:11 frame #6: 0x00000001000377ef WebKitTestRunner`WTR::TestController::statisticsResetToConsistentState(this=0x00007ffeefbff3b8) at TestController.cpp:3698:5 frame #7: 0x000000010003687b WebKitTestRunner`WTR::TestController::resetStateToConsistentValues(this=0x00007ffeefbff3b8, options=0x00007ffeefbfef90, resetStage=BeforeTest) at TestController.cpp:1118:5 frame #8: 0x0000000100035e64 WebKitTestRunner`WTR::TestController::ensureViewSupportsOptionsForTest(this=0x00007ffeefbff3b8, test=0x00000001484ec000) at TestController.cpp:819:10 ... * frame #0: 0x0000000107cc1835 WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x0000000136819008, configuration=0x0000000132321a38) at WebProcessPool.cpp:255:5 frame #1: 0x0000000107cc04ed WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x0000000136819008, configuration=0x0000000132321a38) at WebProcessPool.cpp:252:1 frame #2: 0x0000000107cc0456 WebKit`WebKit::WebProcessPool::create(configuration=0x0000000132321a38) at WebProcessPool.cpp:179:26 frame #3: 0x00000001080d8714 WebKit`WebKit::WebsiteDataStore::processPools(this=0x000000012ef3e3a8, count=18446744073709551615, ensureAPoolExists=true) const at WebsiteDataStore.cpp:1910:28 frame #4: 0x00000001080e6cb1 WebKit`WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources(this=0x000000012ef3e3a8, completionHandler=0x00007ffeefbfed20)>&&) at WebsiteDataStore.cpp:1872:30 frame #5: 0x0000000107ee3123 WebKit`::WKWebsiteDataStoreStatisticsResetToConsistentState(dataStoreRef=0x000000012ef3e3a0, context=0x00007ffeefbfedb0, completionHandler=(WebKitTestRunner`WTR::resourceStatisticsVoidResultCallback(void*) at TestController.cpp:3344)) at WKWebsiteDataStoreRef.cpp:590:11 frame #6: 0x00000001000377ef WebKitTestRunner`WTR::TestController::statisticsResetToConsistentState(this=0x00007ffeefbff3b8) at TestController.cpp:3698:5 frame #7: 0x000000010003687b WebKitTestRunner`WTR::TestController::resetStateToConsistentValues(this=0x00007ffeefbff3b8, options=0x00007ffeefbfef90, resetStage=BeforeTest) at TestController.cpp:1118:5 frame #8: 0x0000000100035e64 WebKitTestRunner`WTR::TestController::ensureViewSupportsOptionsForTest(this=0x00007ffeefbff3b8, test=0x00000001484ec000) at TestController.cpp:819:10 ... * frame #0: 0x0000000107cc1835 WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x0000000134036608, configuration=0x0000000132676d98) at WebProcessPool.cpp:255:5 frame #1: 0x0000000107cc04ed WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x0000000134036608, configuration=0x0000000132676d98) at WebProcessPool.cpp:252:1 frame #2: 0x0000000107cc0456 WebKit`WebKit::WebProcessPool::create(configuration=0x0000000132676d98) at WebProcessPool.cpp:179:26 frame #3: 0x00000001080d8714 WebKit`WebKit::WebsiteDataStore::processPools(this=0x000000012ef3e3a8, count=18446744073709551615, ensureAPoolExists=true) const at WebsiteDataStore.cpp:1910:28 frame #4: 0x00000001080e53b1 WebKit`WebKit::WebsiteDataStore::resetCrossSiteLoadsWithLinkDecorationForTesting(this=0x000000012ef3e3a8, completionHandler=0x00007ffeefbfed08)>&&) at WebsiteDataStore.cpp:1752:30 frame #5: 0x0000000107ee3176 WebKit`::WKWebsiteDataStoreStatisticsResetToConsistentState(dataStoreRef=0x000000012ef3e3a0, context=0x00007ffeefbfedb0, completionHandler=(WebKitTestRunner`WTR::resourceStatisticsVoidResultCallback(void*) at TestController.cpp:3344)) at WKWebsiteDataStoreRef.cpp:591:11 frame #6: 0x00000001000377ef WebKitTestRunner`WTR::TestController::statisticsResetToConsistentState(this=0x00007ffeefbff3b8) at TestController.cpp:3698:5 frame #7: 0x000000010003687b WebKitTestRunner`WTR::TestController::resetStateToConsistentValues(this=0x00007ffeefbff3b8, options=0x00007ffeefbfef90, resetStage=BeforeTest) at TestController.cpp:1118:5 frame #8: 0x0000000100035e64 WebKitTestRunner`WTR::TestController::ensureViewSupportsOptionsForTest(this=0x00007ffeefbff3b8, test=0x00000001484ec000) at TestController.cpp:819:10 ... frame #0: 0x0000000107cc1835 WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x000000013700ee08, configuration=0x000000013241a358) at WebProcessPool.cpp:255:5 frame #1: 0x0000000107cc04ed WebKit`WebKit::WebProcessPool::WebProcessPool(this=0x000000013700ee08, configuration=0x000000013241a358) at WebProcessPool.cpp:252:1 frame #2: 0x0000000107cc0456 WebKit`WebKit::WebProcessPool::create(configuration=0x000000013241a358) at WebProcessPool.cpp:179:26 frame #3: 0x00000001080d8714 WebKit`WebKit::WebsiteDataStore::processPools(this=0x000000012ef3e3a8, count=18446744073709551615, ensureAPoolExists=true) const at WebsiteDataStore.cpp:1910:28 * frame #4: 0x00000001080e62a9 WebKit`WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting(this=0x000000012ef3e3a8, enabled=false, onlyOnSitesWithoutUserInteraction=false, completionHandler=0x00007ffeefbfecd8)>&&) at WebsiteDataStore.cpp:1828:30 frame #5: 0x0000000107ee3233 WebKit`::WKWebsiteDataStoreStatisticsResetToConsistentState(dataStoreRef=0x000000012ef3e3a0, context=0x00007ffeefbfedb0, completionHandler=(WebKitTestRunner`WTR::resourceStatisticsVoidResultCallback(void*) at TestController.cpp:3344)) at WKWebsiteDataStoreRef.cpp:593:11 frame #6: 0x00000001000377ef WebKitTestRunner`WTR::TestController::statisticsResetToConsistentState(this=0x00007ffeefbff3b8) at TestController.cpp:3698:5 frame #7: 0x000000010003687b WebKitTestRunner`WTR::TestController::resetStateToConsistentValues(this=0x00007ffeefbff3b8, options=0x00007ffeefbfef90, resetStage=BeforeTest) at TestController.cpp:1118:5 frame #8: 0x0000000100035e64 WebKitTestRunner`WTR::TestController::ensureViewSupportsOptionsForTest(this=0x00007ffeefbff3b8, test=0x00000001484ec000) at TestController.cpp:819:10 ... Basically all these: store.clearResourceLoadStatisticsInWebProcesses([callbackAggregator = callbackAggregator.copyRef()] { }); store.resetCacheMaxAgeCapForPrevalentResources([callbackAggregator = callbackAggregator.copyRef()] { }); store.resetCrossSiteLoadsWithLinkDecorationForTesting([callbackAggregator = callbackAggregator.copyRef()] { }); store.setResourceLoadStatisticsShouldDowngradeReferrerForTesting(true, [callbackAggregator = callbackAggregator.copyRef()] { }); store.setResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting(false, false, [callbackAggregator = callbackAggregator.copyRef()] { }); store.setResourceLoadStatisticsFirstPartyWebsiteDataRemovalModeForTesting(false, [callbackAggregator = callbackAggregator.copyRef()] { }); store.resetParametersToDefaultValues([callbackAggregator = callbackAggregator.copyRef()] { }); store.scheduleClearInMemoryAndPersistent(WebKit::ShouldGrandfatherStatistics::No, [callbackAggregator = callbackAggregator.copyRef()] { }); store.setUseITPDatabase(false, [callbackAggregator = callbackAggregator.copyRef()] { }); Network processes are being launched via: (lldb) bt * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 30.1 * frame #0: 0x0000000107f46ee5 WebKit`WebKit::NetworkProcessProxy::NetworkProcessProxy(this=0x0000000136ed4280, processPool=0x000000013480bc08) at NetworkProcessProxy.cpp:93:5 frame #1: 0x0000000107f4712d WebKit`WebKit::NetworkProcessProxy::NetworkProcessProxy(this=0x0000000136ed4280, processPool=0x000000013480bc08) at NetworkProcessProxy.cpp:92:1 frame #2: 0x0000000107d0863d WebKit`std::__1::__unique_if<WebKit::NetworkProcessProxy>::__unique_single std::__1::make_unique<WebKit::NetworkProcessProxy, WebKit::WebProcessPool&>(__args=0x000000013480bc08) at memory:3131:32 frame #3: 0x0000000107cc5f5f WebKit`decltype(args=0x000000013480bc08) WTF::makeUnique<WebKit::NetworkProcessProxy, WebKit::WebProcessPool&>(WebKit::WebProcessPool&) at StdLibExtras.h:483:12 frame #4: 0x0000000107cc4c87 WebKit`WebKit::WebProcessPool::ensureNetworkProcess(this=0x000000013480bc08, withWebsiteDataStore=0x0000000137c07708) at WebProcessPool.cpp:494:27 frame #5: 0x00000001080dace2 WebKit`WebKit::WebsiteDataStore::removeData(this=0x0000000137c07708, dataTypes={ size = 1 }, modifiedSince=(m_value = -Inf), completionHandler=0x00007ffeefbfed50)>&&) at WebsiteDataStore.cpp:715:30 frame #6: 0x0000000107ee3a8f WebKit`::WKWebsiteDataStoreRemoveAllIndexedDatabases(dataStoreRef=0x0000000137c07700, context=0x00007ffeefbfedb8, callback=(WebKitTestRunner`WTR::StorageVoidCallback(void*) at TestController.cpp:3208)) at WKWebsiteDataStoreRef.cpp:627:35 frame #7: 0x0000000100036d7f WebKitTestRunner`WTR::TestController::clearIndexedDatabases(this=0x00007ffeefbff3b8) at TestController.cpp:3217:5 frame #8: 0x00000001000363ec WebKitTestRunner`WTR::TestController::resetStateToConsistentValues(this=0x00007ffeefbff3b8, options=0x00007ffeefbfef90, resetStage=BeforeTest) at TestController.cpp:1017:5 frame #9: 0x0000000100035e64 WebKitTestRunner`WTR::TestController::ensureViewSupportsOptionsForTest(this=0x00007ffeefbff3b8, test=0x0000000136eec000) at ... and * frame #0: 0x0000000107f46ee5 WebKit`WebKit::NetworkProcessProxy::NetworkProcessProxy(this=0x0000000136ece780, processPool=0x000000013480bc08) at NetworkProcessProxy.cpp:93:5 frame #1: 0x0000000107f4712d WebKit`WebKit::NetworkProcessProxy::NetworkProcessProxy(this=0x0000000136ece780, processPool=0x000000013480bc08) at NetworkProcessProxy.cpp:92:1 frame #2: 0x0000000107d0863d WebKit`std::__1::__unique_if<WebKit::NetworkProcessProxy>::__unique_single std::__1::make_unique<WebKit::NetworkProcessProxy, WebKit::WebProcessPool&>(__args=0x000000013480bc08) at memory:3131:32 frame #3: 0x0000000107cc5f5f WebKit`decltype(args=0x000000013480bc08) WTF::makeUnique<WebKit::NetworkProcessProxy, WebKit::WebProcessPool&>(WebKit::WebProcessPool&) at StdLibExtras.h:483:12 frame #4: 0x0000000107cc4c87 WebKit`WebKit::WebProcessPool::ensureNetworkProcess(this=0x000000013480bc08, withWebsiteDataStore=0x0000000137c07708) at WebProcessPool.cpp:494:27 frame #5: 0x00000001080dace2 WebKit`WebKit::WebsiteDataStore::removeData(this=0x0000000137c07708, dataTypes={ size = 1 }, modifiedSince=(m_value = -Inf), completionHandler=0x00007ffeefbfed40)>&&) at WebsiteDataStore.cpp:715:30 frame #6: 0x0000000107ee3b4f WebKit`::WKWebsiteDataStoreRemoveLocalStorage(dataStoreRef=0x0000000137c07700, context=0x00007ffeefbfedb8, callback=(WebKitTestRunner`WTR::StorageVoidCallback(void*) at TestController.cpp:3208)) at WKWebsiteDataStoreRef.cpp:636:35 frame #7: 0x0000000100036def WebKitTestRunner`WTR::TestController::clearLocalStorage(this=0x00007ffeefbff3b8) at TestController.cpp:3224:5 frame #8: 0x00000001000363f8 WebKitTestRunner`WTR::TestController::resetStateToConsistentValues(this=0x00007ffeefbff3b8, options=0x00007ffeefbfef90, resetStage=BeforeTest) at TestController.cpp:1018:5 frame #9: 0x0000000100035e64 WebKitTestRunner`WTR::TestController::ensureViewSupportsOptionsForTest(this=0x00007ffeefbff3b8, test=0x0000000136eec000) at TestController.cpp:819:10 ... Do we have a regression point for this? I know we've had issues with this sort of thing in the past, but we fixed them. Given how bad this is, it strikes me a relatively recent regression. I have landed 3 patches (dependency bugs) that should help a lot. Let's gather fresh numbers to see where we stand now and determine if more work is needed. (In reply to Chris Dumez from comment #5) > I have landed 3 patches (dependency bugs) that should help a lot. Let's > gather fresh numbers to see where we stand now and determine if more work is > needed. Latest numbers: 5 process pools created and 5 network process proxies. It is better but not ideal. (In reply to Chris Dumez from comment #6) > (In reply to Chris Dumez from comment #5) > > I have landed 3 patches (dependency bugs) that should help a lot. Let's > > gather fresh numbers to see where we stand now and determine if more work is > > needed. > > Latest numbers: 5 process pools created and 5 network process proxies. It is > better but not ideal. Remaining construction sites: 1 0x11176380b WebKit::NetworkProcessProxy::NetworkProcessProxy(WebKit::WebProcessPool&) 2 0x1116cac89 WebKit::WebProcessPool::ensureNetworkProcess(WebKit::WebsiteDataStore*) 3 0x1117ba6b1 WebKit::WebsiteDataStore::removeData(WTF::OptionSet<WebKit::WebsiteDataType>, WTF::WallTime, WTF::Function<void ()>&&) 4 0x111752a01 WKWebsiteDataStoreRemoveAllIndexedDatabases 5 0x10f448d76 WTR::TestController::clearIndexedDatabases() 6 0x10f448964 WTR::TestController::resetStateToConsistentValues(WTR::TestOptions const&, WTR::TestController::ResetStage) 7 0x10f448683 WTR::TestController::ensureViewSupportsOptionsForTest(WTR::TestInvocation const&) 8 0x10f44c374 WTR::TestController::configureViewForTest(WTR::TestInvocation const&) 9 0x10f45d543 WTR::TestInvocation::invoke() 10 0x10f44cce7 WTR::TestController::runTest(char const*) 11 0x10f44d0bc WTR::TestController::runTestingServerLoop() 12 0x10f4454a9 WTR::TestController::TestController(int, char const**) 13 0x10f432d7d main 14 0x7fff71c9ec61 start 1 0x11176380b WebKit::NetworkProcessProxy::NetworkProcessProxy(WebKit::WebProcessPool&) 2 0x1116cac89 WebKit::WebProcessPool::ensureNetworkProcess(WebKit::WebsiteDataStore*) 3 0x1117ba6b1 WebKit::WebsiteDataStore::removeData(WTF::OptionSet<WebKit::WebsiteDataType>, WTF::WallTime, WTF::Function<void ()>&&) 4 0x111752a72 WKWebsiteDataStoreRemoveLocalStorage 5 0x10f448dcd WTR::TestController::clearLocalStorage() 6 0x10f44896c WTR::TestController::resetStateToConsistentValues(WTR::TestOptions const&, WTR::TestController::ResetStage) 7 0x10f448683 WTR::TestController::ensureViewSupportsOptionsForTest(WTR::TestInvocation const&) 8 0x10f44c374 WTR::TestController::configureViewForTest(WTR::TestInvocation const&) 9 0x10f45d543 WTR::TestInvocation::invoke() 10 0x10f44cce7 WTR::TestController::runTest(char const*) 11 0x10f44d0bc WTR::TestController::runTestingServerLoop() 12 0x10f4454a9 WTR::TestController::TestController(int, char const**) 13 0x10f432d7d main 14 0x7fff71c9ec61 start 1 0x11176380b WebKit::NetworkProcessProxy::NetworkProcessProxy(WebKit::WebProcessPool&) 2 0x1116cac89 WebKit::WebProcessPool::ensureNetworkProcess(WebKit::WebsiteDataStore*) 3 0x1117ba6b1 WebKit::WebsiteDataStore::removeData(WTF::OptionSet<WebKit::WebsiteDataType>, WTF::WallTime, WTF::Function<void ()>&&) 4 0x111752ae3 WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations 5 0x10f448e54 WTR::TestController::clearServiceWorkerRegistrations() 6 0x10f448974 WTR::TestController::resetStateToConsistentValues(WTR::TestOptions const&, WTR::TestController::ResetStage) 7 0x10f448683 WTR::TestController::ensureViewSupportsOptionsForTest(WTR::TestInvocation const&) 8 0x10f44c374 WTR::TestController::configureViewForTest(WTR::TestInvocation const&) 9 0x10f45d543 WTR::TestInvocation::invoke() 10 0x10f44cce7 WTR::TestController::runTest(char const*) 11 0x10f44d0bc WTR::TestController::runTestingServerLoop() 12 0x10f4454a9 WTR::TestController::TestController(int, char const**) 13 0x10f432d7d main 14 0x7fff71c9ec61 start 1 0x11176380b WebKit::NetworkProcessProxy::NetworkProcessProxy(WebKit::WebProcessPool&) 2 0x1116cac89 WebKit::WebProcessPool::ensureNetworkProcess(WebKit::WebsiteDataStore*) 3 0x1117ba6b1 WebKit::WebsiteDataStore::removeData(WTF::OptionSet<WebKit::WebsiteDataType>, WTF::WallTime, WTF::Function<void ()>&&) 4 0x111752752 WKWebsiteDataStoreRemoveAllFetchCaches 5 0x10f448ea2 WTR::TestController::clearDOMCaches() 6 0x10f44897c WTR::TestController::resetStateToConsistentValues(WTR::TestOptions const&, WTR::TestController::ResetStage) 7 0x10f448683 WTR::TestController::ensureViewSupportsOptionsForTest(WTR::TestInvocation const&) 8 0x10f44c374 WTR::TestController::configureViewForTest(WTR::TestInvocation const&) 9 0x10f45d543 WTR::TestInvocation::invoke() 10 0x10f44cce7 WTR::TestController::runTest(char const*) 11 0x10f44d0bc WTR::TestController::runTestingServerLoop() 12 0x10f4454a9 WTR::TestController::TestController(int, char const**) 13 0x10f432d7d main 14 0x7fff71c9ec61 start 1 0x11176380b WebKit::NetworkProcessProxy::NetworkProcessProxy(WebKit::WebProcessPool&) 2 0x1116cac89 WebKit::WebProcessPool::ensureNetworkProcess(WebKit::WebsiteDataStore*) 3 0x1116cc6a6 WebKit::WebProcessPool::initializeNewWebProcess(WebKit::WebProcessProxy&, WebKit::WebsiteDataStore*, WebKit::WebProcessProxy::IsPrewarmed) 4 0x1116cd38e WebKit::WebProcessPool::createNewWebProcess(WebKit::WebsiteDataStore*, WebKit::WebProcessProxy::IsPrewarmed) 5 0x11169b3b7 WebKit::WebProcessPool::processForRegistrableDomain(WebKit::WebsiteDataStore&, WebKit::WebPageProxy*, WebCore::RegistrableDomain const&) 6 0x11169ae3d WebKit::WebPageProxy::launchProcess(WebCore::RegistrableDomain const&, WebKit::WebPageProxy::ProcessLaunchReason) 7 0x11169ef07 WebKit::WebPageProxy::loadRequest(WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, API::Object*) 8 0x11171e196 WKPageLoadURL 9 0x10f448c87 WTR::TestController::resetStateToConsistentValues(WTR::TestOptions const&, WTR::TestController::ResetStage) 10 0x10f448683 WTR::TestController::ensureViewSupportsOptionsForTest(WTR::TestInvocation const&) 11 0x10f44c374 WTR::TestController::configureViewForTest(WTR::TestInvocation const&) 12 0x10f45d543 WTR::TestInvocation::invoke() 13 0x10f44cce7 WTR::TestController::runTest(char const*) 14 0x10f44d0bc WTR::TestController::runTestingServerLoop() 15 0x10f4454a9 WTR::TestController::TestController(int, char const**) 16 0x10f432d7d main ---- They all seem legit. They need a running network process in order to go remove things on disk (and the last one is for actually running the test). We could optimize this by either: 1. Have the WebProcessPool keep around its temporary process pool for a while (e.g. one event loop iteration) so that it would get reused. or 2. Reset the WebsiteDataStore state *after* we've constructed the WKWebView 2) Would likely be ideal in terms of how many pools / network processes would get created. Ok, I think this is a regression from delayed process launch. By the time we call all those methods on the WebsiteDataStore, we actually have already created a WebPageProxy / WebProcessPool but it is not associated with the WebsiteDataStore yet. I am looking into fixing this. Created attachment 392596 [details]
Patch
(In reply to Chris Dumez from comment #9) > Created attachment 392596 [details] > Patch With this patch, 1 process pool / 1 network process. Comment on attachment 392596 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=392596&action=review > Source/WebKit/UIProcess/WebProcessPool.cpp:1162 > + m_dummyProcessProxies.remove(process->sessionID()); We are doing a double search here. > Source/WebKit/UIProcess/WebProcessPool.h:628 > + HashMap<PAL::SessionID, WebProcessProxy*> m_dummyProcessProxies; // Lightweight WebProcessProxy objects without backing process. Could use WeakPtr. Created attachment 392620 [details]
Patch
Comment on attachment 392620 [details] Patch Clearing flags on attachment: 392620 Committed r257953: <https://trac.webkit.org/changeset/257953> All reviewed patches have been landed. Closing bug. |