5743c6c64e0bb9aca126642d0937a1e144a2397c: Bug 1647342 - Part 7: Remove unnecessary special-casing of OOM in replaceFrameGuts. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Thu, 18 Jun 2020 13:41:58 -0700 - rev 3000040
Push 558605 by loganfsmyth@gmail.com at Wed, 24 Jun 2020 00:03:09 +0000
Bug 1647342 - Part 7: Remove unnecessary special-casing of OOM in replaceFrameGuts. r=arai! This patch waits to remove the frame from the "from" map until after it has been added to the "to" map, so that we can rely on the existing scope guard to clean up any frames if we get an OOM. Differential Revision: https://phabricator.services.mozilla.com/D80740
0376ee157f2eac9d1013e7558b9bd05132a7de7b: Bug 1647342 - Part 6: Simplfy code in onResumeFrame. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Fri, 19 Jun 2020 22:29:33 -0700 - rev 3000039
Push 558605 by loganfsmyth@gmail.com at Wed, 24 Jun 2020 00:03:09 +0000
Bug 1647342 - Part 6: Simplfy code in onResumeFrame. r=arai! There's no reason to create this FrameIter over and over again inside the loop. Similarly, ensureExecutionObservabilityOfFrame is a no-op if "frame.isDebuggee()", and slowPathOnResumeFrame asserts that to be true, so there is no reason to ensure observability here because it already is guaranteed. Differential Revision: https://phabricator.services.mozilla.com/D80739
d8c013d6bf679d885b2a9e2249acf128622bd45a: Bug 1647342 - Part 5: Move management of the generatorFrames collection. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Fri, 19 Jun 2020 16:18:15 -0700 - rev 3000038
Push 558605 by loganfsmyth@gmail.com at Wed, 24 Jun 2020 00:03:09 +0000
Bug 1647342 - Part 5: Move management of the generatorFrames collection. r=arai! It is difficult to follow the overall lifecycle of entries in the generatorFrames list when it is mutated in many places across many files. This patch's primary aim is to begin centralizing the handling of this map a little bit by keeping it all inside Debugger.cpp so that the DebuggerFrame instance itself does not actually care whether it is found in that map. Differential Revision: https://phabricator.services.mozilla.com/D80738
1bd332c4dddda11a2f30db626fa54daa3c0c91d8: Bug 1647342 - Part 4: Convert forEachDebuggerFrame helper to expose Debugger*. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Fri, 19 Jun 2020 21:59:48 -0700 - rev 3000037
Push 558605 by loganfsmyth@gmail.com at Wed, 24 Jun 2020 00:03:09 +0000
Bug 1647342 - Part 4: Convert forEachDebuggerFrame helper to expose Debugger*. r=arai! This is just a tiny refactor to avoid needing to then get the Debugger* from the frame when we already know it. Differential Revision: https://phabricator.services.mozilla.com/D80737
cc2fbb85bf68f98afb3550aaf7135dfd43563e02: Bug 1647342 - Part 3: Remove unused detachAllDebuggersFromGlobal Debugger method. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Thu, 18 Jun 2020 18:55:14 -0700 - rev 3000036
Push 558605 by loganfsmyth@gmail.com at Wed, 24 Jun 2020 00:03:09 +0000
Bug 1647342 - Part 3: Remove unused detachAllDebuggersFromGlobal Debugger method. r=arai! I have no idea how long this has been stale. Differential Revision: https://phabricator.services.mozilla.com/D80736
22d9cb093af94c77d5d1dc13e2b5814ab108079f: Bug 1647342 - Part 2: Rely on onResumeFrame to handle marking all frames as on-stack. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Fri, 19 Jun 2020 21:20:45 -0700 - rev 3000035
Push 558605 by loganfsmyth@gmail.com at Wed, 24 Jun 2020 00:03:09 +0000
Bug 1647342 - Part 2: Rely on onResumeFrame to handle marking all frames as on-stack. r=arai! It is guaranteed that this will already be populated because in 1539654 we started properly preserving the debuggee-ness of frames across suspend and resume. With slowPathOnResumeFrame guaranteed to run, we no longer need to try to hande handle the case where the generator has been resumed, but the Debugger.Frame's inner data was not populated. Differential Revision: https://phabricator.services.mozilla.com/D80735
0231f07492c224006c41d878edf00466811153e4: Bug 1647342 - Part 1: Remove FrameIter::Data from DebuggerFrame public API. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Fri, 19 Jun 2020 17:49:59 -0700 - rev 3000034
Push 558605 by loganfsmyth@gmail.com at Wed, 24 Jun 2020 00:03:09 +0000
Bug 1647342 - Part 1: Remove FrameIter::Data from DebuggerFrame public API. r=arai! Exposing frameIterData() and setFrameIterData() isn't great since it makes it harder to follow what state transitions for frame data we expect the frame to have. By hiding this, it helps clarify that frame data can be cleared or replaced, but public usage of the FrameIter::Data object itself isn't expected outside of the class itself. Differential Revision: https://phabricator.services.mozilla.com/D80734
8af515bc6fc45931324236db0df06a25a3bec922: Bug 1577639 - Do not attempt to clean up frames for non-OOM conditions. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Tue, 23 Jun 2020 15:32:24 -0700 - rev 3000033
Push 558605 by loganfsmyth@gmail.com at Wed, 24 Jun 2020 00:03:09 +0000
Bug 1577639 - Do not attempt to clean up frames for non-OOM conditions. r=arai! The core issue is that we run removeFromFrameMapsAndClearBreakpointsIn(cx, from) even for non-OOM paths in this function, which is undesirable because that will remove the breakpoints for evaled scripts. In the non-OOM case there are no Debugger.Frame objects left in the frames map for the "frame" list, so there is no reason to actually call it in that case. This patch merges the two OOM handlers together for simplicity, though it is not technically necessary, it seems like the very minor increase in code run if there is an OOM is worth it to keep things centralized. Differential Revision: https://phabricator.services.mozilla.com/D80762
997f6b6c671f42c95bd3f286217517d64c5cf1f7: try_task_config for https://phabricator.services.mozilla.com/D80741 draft
libmozevent <release-mgmt-analysis@mozilla.com> - Wed, 24 Jun 2020 00:01:33 +0000 - rev 3000032
Push 558604 by reviewbot at Wed, 24 Jun 2020 00:01:54 +0000
try_task_config for https://phabricator.services.mozilla.com/D80741 Differential Diff: PHID-DIFF-ud2d7t4uqdbi3tvr7phd
2fc82350cdcb8c85b3d5e021a53f8180e5de6f47: Bug 1647342 - Part 8: Centralize termination of DebuggerFrame instances. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Wed, 24 Jun 2020 00:01:28 +0000 - rev 3000031
Push 558604 by reviewbot at Wed, 24 Jun 2020 00:01:54 +0000
Bug 1647342 - Part 8: Centralize termination of DebuggerFrame instances. r=arai! Summary: The lifecycle of a DebuggerFrame has been really hard to follow, so this patch aims to centralize all of that handling by making it clear exactly how a DebuggerFrame is terminated. Secondly, this patch adds OOM guards to a bunch of places that previously would have caused DebuggerFrame instances to persist in the "frames" and/or "generatorFrames" list, or even worse, leave the Generator observer count and script stepper count incremented unexpectedly. Differential Revision: https://phabricator.services.mozilla.com/D80741 Depends on D80740 Test Plan: Reviewers: Subscribers: Bug #: 1647342 Differential Diff: PHID-DIFF-ud2d7t4uqdbi3tvr7phd
0356802761ce8ed9491ad8528814ecaab7ae6d44: Bug 1647342 - Part 7: Remove unnecessary special-casing of OOM in replaceFrameGuts. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Wed, 24 Jun 2020 00:01:25 +0000 - rev 3000030
Push 558604 by reviewbot at Wed, 24 Jun 2020 00:01:54 +0000
Bug 1647342 - Part 7: Remove unnecessary special-casing of OOM in replaceFrameGuts. r=arai! Summary: This patch waits to remove the frame from the "from" map until after it has been added to the "to" map, so that we can rely on the existing scope guard to clean up any frames if we get an OOM. Differential Revision: https://phabricator.services.mozilla.com/D80740 Depends on D80739 Test Plan: Reviewers: Subscribers: Bug #: 1647342 Differential Diff: PHID-DIFF-cr34btplheqnm67lkjzi
f701648007f0f043ecaa39fe2a97c1ee3dbc2ebc: Bug 1647342 - Part 6: Simplfy code in onResumeFrame. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Wed, 24 Jun 2020 00:01:23 +0000 - rev 3000029
Push 558604 by reviewbot at Wed, 24 Jun 2020 00:01:54 +0000
Bug 1647342 - Part 6: Simplfy code in onResumeFrame. r=arai! Summary: There's no reason to create this FrameIter over and over again inside the loop. Similarly, ensureExecutionObservabilityOfFrame is a no-op if "frame.isDebuggee()", and slowPathOnResumeFrame asserts that to be true, so there is no reason to ensure observability here because it already is guaranteed. Differential Revision: https://phabricator.services.mozilla.com/D80739 Depends on D80738 Test Plan: Reviewers: Subscribers: Bug #: 1647342 Differential Diff: PHID-DIFF-2etpvuglsvkdx4kgm2nr
eac2af143b772e992e4bc02a3115160cc721813e: Bug 1647342 - Part 5: Move management of the generatorFrames collection. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Wed, 24 Jun 2020 00:01:20 +0000 - rev 3000028
Push 558604 by reviewbot at Wed, 24 Jun 2020 00:01:54 +0000
Bug 1647342 - Part 5: Move management of the generatorFrames collection. r=arai! Summary: It is difficult to follow the overall lifecycle of entries in the generatorFrames list when it is mutated in many places across many files. This patch's primary aim is to begin centralizing the handling of this map a little bit by keeping it all inside Debugger.cpp so that the DebuggerFrame instance itself does not actually care whether it is found in that map. Differential Revision: https://phabricator.services.mozilla.com/D80738 Depends on D80737 Test Plan: Reviewers: Subscribers: Bug #: 1647342 Differential Diff: PHID-DIFF-ukfthn5qshjnhhhlieli
6efa0c7a1c918af50b8b567b8b5e1ae114871091: Bug 1647342 - Part 4: Convert forEachDebuggerFrame helper to expose Debugger*. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Wed, 24 Jun 2020 00:01:16 +0000 - rev 3000027
Push 558604 by reviewbot at Wed, 24 Jun 2020 00:01:54 +0000
Bug 1647342 - Part 4: Convert forEachDebuggerFrame helper to expose Debugger*. r=arai! Summary: This is just a tiny refactor to avoid needing to then get the Debugger* from the frame when we already know it. Differential Revision: https://phabricator.services.mozilla.com/D80737 Depends on D80736 Test Plan: Reviewers: Subscribers: Bug #: 1647342 Differential Diff: PHID-DIFF-wqjej7u7it56whbdygz3
37573ea1bdea78ec900d7e2f80151a52ba4618f8: Bug 1647342 - Part 3: Remove unused detachAllDebuggersFromGlobal Debugger method. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Wed, 24 Jun 2020 00:01:13 +0000 - rev 3000026
Push 558604 by reviewbot at Wed, 24 Jun 2020 00:01:54 +0000
Bug 1647342 - Part 3: Remove unused detachAllDebuggersFromGlobal Debugger method. r=arai! Summary: I have no idea how long this has been stale. Differential Revision: https://phabricator.services.mozilla.com/D80736 Depends on D80735 Test Plan: Reviewers: Subscribers: Bug #: 1647342 Differential Diff: PHID-DIFF-pm56s2opuy672eaeawhj
13cd016748a2c43c42bbb14c2dd8002c1cdb39ad: Bug 1647342 - Part 2: Rely on onResumeFrame to handle marking all frames as on-stack. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Wed, 24 Jun 2020 00:01:10 +0000 - rev 3000025
Push 558604 by reviewbot at Wed, 24 Jun 2020 00:01:54 +0000
Bug 1647342 - Part 2: Rely on onResumeFrame to handle marking all frames as on-stack. r=arai! Summary: It is guaranteed that this will already be populated because in 1539654 we started properly preserving the debuggee-ness of frames across suspend and resume. With slowPathOnResumeFrame guaranteed to run, we no longer need to try to hande handle the case where the generator has been resumed, but the Debugger.Frame's inner data was not populated. Differential Revision: https://phabricator.services.mozilla.com/D80735 Depends on D80734 Test Plan: Reviewers: Subscribers: Bug #: 1647342 Differential Diff: PHID-DIFF-ppztbt6hxxpwtvc3wsnw
532ef3b8baaea38204c1dabf05151a793de4266b: Bug 1647342 - Part 1: Remove FrameIter::Data from DebuggerFrame public API. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Wed, 24 Jun 2020 00:01:06 +0000 - rev 3000024
Push 558604 by reviewbot at Wed, 24 Jun 2020 00:01:54 +0000
Bug 1647342 - Part 1: Remove FrameIter::Data from DebuggerFrame public API. r=arai! Summary: Exposing frameIterData() and setFrameIterData() isn't great since it makes it harder to follow what state transitions for frame data we expect the frame to have. By hiding this, it helps clarify that frame data can be cleared or replaced, but public usage of the FrameIter::Data object itself isn't expected outside of the class itself. Differential Revision: https://phabricator.services.mozilla.com/D80734 Depends on D80762 Test Plan: Reviewers: Subscribers: Bug #: 1647342 Differential Diff: PHID-DIFF-yyvo3sxpaodbm57o36o2
bbdb1d53384cb07fe324114cc2d3f4ec42a319e9: Bug 1577639 - Do not attempt to clean up frames for non-OOM conditions. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Wed, 24 Jun 2020 00:01:04 +0000 - rev 3000023
Push 558604 by reviewbot at Wed, 24 Jun 2020 00:01:54 +0000
Bug 1577639 - Do not attempt to clean up frames for non-OOM conditions. r=arai! Summary: The core issue is that we run removeFromFrameMapsAndClearBreakpointsIn(cx, from) even for non-OOM paths in this function, which is undesirable because that will remove the breakpoints for evaled scripts. In the non-OOM case there are no Debugger.Frame objects left in the frames map for the "frame" list, so there is no reason to actually call it in that case. This patch merges the two OOM handlers together for simplicity, though it is not technically necessary, it seems like the very minor increase in code run if there is an OOM is worth it to keep things centralized. Differential Revision: https://phabricator.services.mozilla.com/D80762 Test Plan: Reviewers: Subscribers: Bug #: 1577639 Differential Diff: PHID-DIFF-bpfhtg7cbdeoujgbzi7c
c09587b1a2223c495827f6bb0fda92b615aef1fa: try_task_config for https://phabricator.services.mozilla.com/D80740 draft
libmozevent <release-mgmt-analysis@mozilla.com> - Wed, 24 Jun 2020 00:00:54 +0000 - rev 3000022
Push 558603 by reviewbot at Wed, 24 Jun 2020 00:01:15 +0000
try_task_config for https://phabricator.services.mozilla.com/D80740 Differential Diff: PHID-DIFF-cr34btplheqnm67lkjzi
64061b601318811d464801cc29a3daf8e3623c58: Bug 1647342 - Part 7: Remove unnecessary special-casing of OOM in replaceFrameGuts. r=arai! draft
Logan Smyth <loganfsmyth@gmail.com> - Wed, 24 Jun 2020 00:00:49 +0000 - rev 3000021
Push 558603 by reviewbot at Wed, 24 Jun 2020 00:01:15 +0000
Bug 1647342 - Part 7: Remove unnecessary special-casing of OOM in replaceFrameGuts. r=arai! Summary: This patch waits to remove the frame from the "from" map until after it has been added to the "to" map, so that we can rely on the existing scope guard to clean up any frames if we get an OOM. Differential Revision: https://phabricator.services.mozilla.com/D80740 Depends on D80739 Test Plan: Reviewers: Subscribers: Bug #: 1647342 Differential Diff: PHID-DIFF-cr34btplheqnm67lkjzi
(0) -3000000 -1000000 -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 +300000 +1000000 tip