* SUMMARY Aggregate profile call information on the backend to drastically reduce profile sizes. * STEPS TO REPRODUCE 1. Open <https://www.apple.com/procurement/> 2. Open Inspector 3. On page, click "Responsible Supplier Management" link to navigate => WebKit crashes * NOTES - The backend builds a 500+MB string for profile data - Namely because one function calls (1) trim 1.7 million times, (2) substring 1.7 million times, and (3) indexOf 0.8 million times - The profile data includes a serialization for each of those individual calls, which is almost entirely unnecessary for the UI
<rdar://problem/20440953>
Created attachment 255976 [details] [PATCH] Proposed Fix
Attachment 255976 [details] did not pass style-queue: ERROR: Source/WebCore/ChangeLog:8: You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible. [changelog/nonewtests] [5] Total errors found: 1 in 9 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 255977 [details] [PATCH] Proposed Fix
Comment on attachment 255977 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=255977&action=review > Source/WebInspectorUI/UserInterface/Models/ProfileNode.js:173 > + // COMPATIBILITY (iOS8): Profiles included per-call information and can be finely partitioned. Might just want to synthesize callInfo in the future on the front end to avoid complexity.
Comment on attachment 255977 [details] [PATCH] Proposed Fix Clearing flags on attachment: 255977 Committed r186218: <http://trac.webkit.org/changeset/186218>
All reviewed patches have been landed. Closing bug.
(In reply to comment #6) > Comment on attachment 255977 [details] > [PATCH] Proposed Fix > > Clearing flags on attachment: 255977 > > Committed r186218: <http://trac.webkit.org/changeset/186218> It broke the Apple Windows build.
(In reply to comment #8) > (In reply to comment #6) > > Comment on attachment 255977 [details] > > [PATCH] Proposed Fix > > > > Clearing flags on attachment: 255977 > > > > Committed r186218: <http://trac.webkit.org/changeset/186218> > > It broke the Apple Windows build. Thanks for the heads up. The bots show: > c:\cygwin\home\buildbot\slave\win-debug\build\source\webcore\inspector\TimelineRecordFactory.cpp(212): error C2039: 'CPUProfileNodeAggregateCallInfo' : is not a member of 'Inspector::Protocol::Timeline' [C:\cygwin\home\buildbot\slave\win-debug\build\Source\WebCore\WebCore.vcxproj\WebCore.vcxproj] > c:\cygwin\home\buildbot\slave\win-debug\build\source\webcore\inspector\TimelineRecordFactory.cpp(212): error C2065: 'CPUProfileNodeAggregateCallInfo' : undeclared identifier [C:\cygwin\home\buildbot\slave\win-debug\build\Source\WebCore\WebCore.vcxproj\WebCore.vcxproj] Seems like Windows didn't update regenerate some files even though Timeline.json was modified? I'm going to try forcing a clean build on these bots.
And the other bot: > python: can't open file '/home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/cssmin.py': [Errno 2] No such file or directory > make: *** No rule to make target '/home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/JSInputs.json', needed by 'WebReplayInputs.h'. Stop. > make: *** Waiting for unfinished jobs.... > make: *** [XMLViewerCSS.h] Error 2 > /home/buildbot/slave/win-release/build/Source/WebCore/DerivedSources.make:893: recipe for target 'XMLViewerCSS.h' failed > python /home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/jsmin.py </home/buildbot/slave/win-release/build/Source/WebCore/inspector/CommandLineAPIModuleSource.js >> ./CommandLineAPIModuleSource.min.js > python: can't open file '/home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/jsmin.py': [Errno 2] No such file or directory > /home/buildbot/slave/win-release/build/Source/WebCore/DerivedSources.make:904: recipe for target 'XMLViewerJS.h' failed Seems like more issues with file generation. Not sure what is up there.
One of the bots recovered on their own: https://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/89286 Failed https://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/89287 Success I still forced a clean build on the other bot (Win Release) to try and fix it up.