<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>197385</bug_id>
          
          <creation_ts>2019-04-29 13:55:51 -0700</creation_ts>
          <short_desc>[iOS] The UIProcess may get killed for trying to stay runnable in the background for more than 30 seconds</short_desc>
          <delta_ts>2019-04-29 15:40:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1531281</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-29 13:55:51 -0700</bug_when>
    <thetext>The UIProcess may get killed for trying to stay runnable in the background for more than 30 seconds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531282</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-29 13:56:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/50001505&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531284</commentid>
    <comment_count>2</comment_count>
      <attachid>368490</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-29 14:03:16 -0700</bug_when>
    <thetext>Created attachment 368490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531291</commentid>
    <comment_count>3</comment_count>
      <attachid>368490</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-04-29 14:18:12 -0700</bug_when>
    <thetext>Comment on attachment 368490
Patch

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

&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:72
&gt; +        [self _updateBackgroundTask];

I think you need to capture a weak reference to self, otherwise you have a memory leak (the global Notification Center has a reference to self, and never goes away).

Once that leak is fixed, don&apos;t we also need to unregister for this notification in our dealloc method?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531293</commentid>
    <comment_count>4</comment_count>
      <attachid>368490</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-29 14:19:42 -0700</bug_when>
    <thetext>Comment on attachment 368490
Patch

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

&gt;&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:72
&gt;&gt; +        [self _updateBackgroundTask];
&gt; 
&gt; I think you need to capture a weak reference to self, otherwise you have a memory leak (the global Notification Center has a reference to self, and never goes away).
&gt; 
&gt; Once that leak is fixed, don&apos;t we also need to unregister for this notification in our dealloc method?

self is a static object though, so I would not expect the dealloc method to ever get called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531296</commentid>
    <comment_count>5</comment_count>
      <attachid>368490</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-29 14:23:21 -0700</bug_when>
    <thetext>Comment on attachment 368490
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:72
&gt;&gt;&gt; +        [self _updateBackgroundTask];
&gt;&gt; 
&gt;&gt; I think you need to capture a weak reference to self, otherwise you have a memory leak (the global Notification Center has a reference to self, and never goes away).
&gt;&gt; 
&gt;&gt; Once that leak is fixed, don&apos;t we also need to unregister for this notification in our dealloc method?
&gt; 
&gt; self is a static object though, so I would not expect the dealloc method to ever get called.

I mean that WKProcessAssertionBackgroundTaskManager (self) is a singleton, so &quot;leaking&quot; it is the expectation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531299</commentid>
    <comment_count>6</comment_count>
      <attachid>368490</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-04-29 14:26:41 -0700</bug_when>
    <thetext>Comment on attachment 368490
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531345</commentid>
    <comment_count>7</comment_count>
      <attachid>368490</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-29 15:40:53 -0700</bug_when>
    <thetext>Comment on attachment 368490
Patch

Clearing flags on attachment: 368490

Committed r244761: &lt;https://trac.webkit.org/changeset/244761&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531346</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-29 15:40:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368490</attachid>
            <date>2019-04-29 14:03:16 -0700</date>
            <delta_ts>2019-04-29 15:40:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197385-20190429140316.patch</filename>
            <type>text/plain</type>
            <size>4294</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAwYjU3MDYwNmMzOTk3ZTUw
ZDE3ZTczZTU5NzJjYTRiYjI0YjkwMmUuLmQzMmU0NWUwZjhiMjhlMDI5NmJjMWRlZjc4ZTJmZjkw
OTdiNzNjYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTktMDQtMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBUaGUgVUlQcm9jZXNzIG1h
eSBnZXQga2lsbGVkIGZvciB0cnlpbmcgdG8gc3RheSBydW5uYWJsZSBpbiB0aGUgYmFja2dyb3Vu
ZCBmb3IgbW9yZSB0aGFuIDMwIHNlY29uZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NzM4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTAwMDE1
MDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYg
dGhlIFVJUHJvY2VzcyBob2xkcyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGZvciBpdHNlbGYgZm9y
IDMwIHNlY29uZHMsIHRoZSBhc3NlcnRpb24ncyBpbnZhbGlkYXRpb24gaGFuZGxlcgorICAgICAg
ICB3aWxsIGdldCBjYWxsZWQgYW5kIGl0IGlzIG91ciByZXNwb25zaWJpbGl0eSB0byByZWxlYXNl
IHRoaXMgYXNzZXJ0aW9uIG9yIHRoZSBVSVByb2Nlc3Mgd2lsbCBnZXQga2lsbGVkIGJ5IHRoZQor
ICAgICAgICBzeXN0ZW0uIFRoZSBsb2dpYyBpbiBQcm9jZXNzQXNzZXJ0aW9uIHdvdWxkIG5vcm1h
bGx5IGRvIHRoYXQgYnV0IGl0IHdvdWxkIGFsc28gaGFwcGlseSB0cnkgYW5kIHJlLXRha2UgYW5v
dGhlcgorICAgICAgICBiYWNrZ3JvdW5kIHByb2Nlc3MgYXNzZXJ0aW9uIHNob3J0bHkgYWZ0ZXIg
dGhlIHByZXZpb3VzIG9uZSBleHBpcmVkIChhbmQgYmVmb3JlIHRoZSBVSVByb2Nlc3MgZ290IHN1
c3BlbmRlZCkuCisgICAgICAgIFdoZW4gZG9pbmcgc28sIHRoZSBuZXcgYmFja2dyb3VuZCBhc3Nl
cnRpb24gd291bGQgZXhwaXJlIHJpZ2h0IGF3YXkgYW5kIHdlIHdvdWxkIGdldCBraWxsZWQgd2l0
aG91dCBpdHMKKyAgICAgICAgaW52YWxpZGF0aW9uIGhhbmRsZXIgZ2V0dGluZyBjYWxsZWQuCisK
KyAgICAgICAgVG8gYWRkcmVzcyB0aGUgaXNzdWUsIHRoZSBsb2dpYyBpbiBQcm9jZXNzQXNzZXJ0
aW9uIHdpbGwgbm93IHByZXZlbnQgdGFraW5nIGEgbmV3IGJhY2tncm91bmQgYXNzZXJ0aW9uIGFm
dGVyCisgICAgICAgIG9uZSBleHBpcmVzIGFuZCB1bnRpbCB0aGUgYXBwbGljYXRpb24gYmVjb21l
cyBmb3JlZ3JvdW5kIGFnYWluLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNz
ZXJ0aW9uSU9TLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFz
a01hbmFnZXIgaW5pdF0pOgorICAgICAgICAoLVtXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5k
VGFza01hbmFnZXIgX3VwZGF0ZUJhY2tncm91bmRUYXNrXSk6CisKIDIwMTktMDQtMjkgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBm
aXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2Vy
dGlvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9u
SU9TLm1tCmluZGV4IDBjOWFkZjNmNWMxMzkyOWQxNjBlZjQ0YWMwOWFjZjI3MjQyYmNiZGYuLjhh
YTJkY2YwNGMzNDZlMDMyNDQzZDFmOWEyMDMzNGFmMjIyNGZjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCkBAIC01MCw2ICs1
MCw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01h
bmFnZXIKIHsKICAgICBVSUJhY2tncm91bmRUYXNrSWRlbnRpZmllciBfYmFja2dyb3VuZFRhc2s7
CiAgICAgSGFzaFNldDxQcm9jZXNzQW5kVUlBc3NlcnRpb24qPiBfYXNzZXJ0aW9uc05lZWRpbmdC
YWNrZ3JvdW5kVGFzazsKKyAgICBCT09MIF9hc3NlcnRpb25IYXNFeHBpcmVkSW5UaGVCYWNrZ3Jv
dW5kOwogfQogCiArIChXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIgKilz
aGFyZWQKQEAgLTY2LDYgKzY3LDExIEBAIC0gKGluc3RhbmNldHlwZSlpbml0CiAKICAgICBfYmFj
a2dyb3VuZFRhc2sgPSBVSUJhY2tncm91bmRUYXNrSW52YWxpZDsKIAorICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGljYXRp
b25XaWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBz
aGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAq
KSB7CisgICAgICAgIF9hc3NlcnRpb25IYXNFeHBpcmVkSW5UaGVCYWNrZ3JvdW5kID0gTk87Cisg
ICAgICAgIFtzZWxmIF91cGRhdGVCYWNrZ3JvdW5kVGFza107CisgICAgfV07CisKICAgICByZXR1
cm4gc2VsZjsKIH0KIApAQCAtOTgsNiArMTA0LDExIEBAIC0gKHZvaWQpX25vdGlmeUFzc2VydGlv
bnNPZkltbWluZW50U3VzcGVuc2lvbgogLSAodm9pZClfdXBkYXRlQmFja2dyb3VuZFRhc2sKIHsK
ICAgICBpZiAoIV9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmlzRW1wdHkoKSAmJiBf
YmFja2dyb3VuZFRhc2sgPT0gVUlCYWNrZ3JvdW5kVGFza0ludmFsaWQpIHsKKyAgICAgICAgaWYg
KF9hc3NlcnRpb25IYXNFeHBpcmVkSW5UaGVCYWNrZ3JvdW5kKSB7CisgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV0tQcm9jZXNzQXNzZXJ0aW9u
QmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBJZ25vcmVkIHJlcXVlc3QgdG8gc3RhcnQgYSBiYWNrZ3Jv
dW5kIHRhc2sgYmVjYXVzZSB3ZSdyZSBzdGlsbCBpbiB0aGUgYmFja2dyb3VuZCBhbmQgdGhlIHBy
ZXZpb3VzIHRhc2sgZXhwaXJlZCIsIHNlbGYpOworICAgICAgICAgICAgLy8gT3VyIGludmFsaWRh
dGlvbiBoYW5kbGVyIHdvdWxkIG5vdCBnZXQgY2FsbGVkIGlmIHdlIHRyaWVkIHRvIHJlLXRha2Ug
YSBuZXcgYmFja2dyb3VuZCBhc3NlcnRpb24gYXQgdGhpcyBwb2ludCwgYW5kIHRoZSBVSVByb2Nl
c3Mgd291bGQgZ2V0IGtpbGxlZCAocmRhcjovL3Byb2JsZW0vNTAwMDE1MDUpLgorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CiAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5z
aW9uLCAiJXAgLSBXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIgLSBiZWdp
bkJhY2tncm91bmRUYXNrV2l0aE5hbWUiLCBzZWxmKTsKICAgICAgICAgX2JhY2tncm91bmRUYXNr
ID0gW1tVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBiZWdpbkJhY2tncm91bmRUYXNr
V2l0aE5hbWU6QCJjb20uYXBwbGUuV2ViS2l0LlByb2Nlc3NBc3NlcnRpb24iIGV4cGlyYXRpb25I
YW5kbGVyOl57CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lv
biwgIkJhY2tncm91bmQgdGFzayBleHBpcmVkIHdoaWxlIGhvbGRpbmcgV2ViS2l0IFByb2Nlc3NB
c3NlcnRpb24gKGlzTWFpblRocmVhZD8gJWQpLiIsIFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTEw
OSw2ICsxMjAsOSBAQCAtICh2b2lkKV91cGRhdGVCYWNrZ3JvdW5kVGFzawogICAgICAgICAgICAg
ICAgICAgICBbc2VsZiBfbm90aWZ5QXNzZXJ0aW9uc09mSW1taW5lbnRTdXNwZW5zaW9uXTsKICAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUmVtZW1i
ZXIgdGhhdCB0aGUgYXNzZXJ0aW9uIGhhcyBleHBpcmVkIGluIHRoZSBiYWNrZ3JvdW5kIHNvIHdl
IGRvIG5vdCB0cnkgdG8gcmUtdGFrZSBpdCB1bnRpbCB0aGUgYXBwbGljYXRpb24gYmVjb21lcyBm
b3JlZ3JvdW5kIGFnYWluLgorICAgICAgICAgICAgX2Fzc2VydGlvbkhhc0V4cGlyZWRJblRoZUJh
Y2tncm91bmQgPSBZRVM7CiAgICAgICAgICAgICBbc2VsZiBfcmVsZWFzZUJhY2tncm91bmRUYXNr
XTsKICAgICAgICAgfV07CiAgICAgfSBlbHNlIGlmIChfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3Jv
dW5kVGFzay5pc0VtcHR5KCkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>