<?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>131264</bug_id>
          
          <creation_ts>2014-04-05 00:50:22 -0700</creation_ts>
          <short_desc>Frequent PluginProcess crashes at libsqlite3.dylib: openDatabase</short_desc>
          <delta_ts>2014-04-05 17:51:05 -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>528+ (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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ike</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>997854</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-05 00:50:22 -0700</bug_when>
    <thetext>We use WKCopyFoundationCacheDirectory() to pass NSURL_CACHE_DIR parameter to PluginProcess sandbox. But calling WKCopyFoundationCacheDirectory() implicitly instantiates a shared cache, which is then created on disk on a secondary thread. Our code then uses setenv to change DIRHELPER_USER_DIR_SUFFIX, and CFNetwork uses getenv, which results in a crash if timing is right.

We really shouldn&apos;t be creating a cache just to find out what its path will be.

&lt;rdar://problem/14165329&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997856</commentid>
    <comment_count>1</comment_count>
      <attachid>228666</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-05 01:02:23 -0700</bug_when>
    <thetext>Created attachment 228666
proposed fix

As a side effect, this will change plug-in NSURL cache location from ~/Library/Caches/com.apple.PluginProcess to /var/folders/blah/blah/C/com.apple.PluginProcess for most users. CFNetwork uses complicated logic to fall back to the latter if the former isn&apos;t appropriate (namely, for network home directory users).

It doesn&apos;t make much sense to try replicating this logic, as we can just always use the latter directory that works for everyone. CFNetwork behavior is of course subject to change, so trying to approximate it is futile.

Perhaps we should have separate caches for different plug-ins (or even separate them by UI process bundle identifier too), but this patch doesn&apos;t change this aspect of the behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997966</commentid>
    <comment_count>2</comment_count>
      <attachid>228666</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-05 17:51:03 -0700</bug_when>
    <thetext>Comment on attachment 228666
proposed fix

Clearing flags on attachment: 228666

Committed r166845: &lt;http://trac.webkit.org/changeset/166845&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997967</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-05 17:51:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228666</attachid>
            <date>2014-04-05 01:02:23 -0700</date>
            <delta_ts>2014-04-05 17:51:03 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>PluginCachePath.txt</filename>
            <type>text/plain</type>
            <size>5591</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NjgyOCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA0LTA1ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEZyZXF1ZW50IFBsdWdpblBy
b2Nlc3MgY3Jhc2hlcyBhdCBsaWJzcWxpdGUzLmR5bGliOiBvcGVuRGF0YWJhc2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI2NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTQxNjUzMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRG9uJ3QgY3JlYXRlIE5TVVJMQ2FjaGUgdW50aWwgYWZ0ZXIgaGF2
aW5nIGNhbGxlZCBzZXRlbnYuCisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuaDogQWRkZWQgbV9uc3VybENhY2hlRGlyZWN0b3J5LgorCisgICAgICAgICogUGx1Z2luUHJv
Y2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2Vzcyk6IENvbXB1dGUgTlNVUkwgY2Fj
aGUgcGF0aAorICAgICAgICBvbiBvdXIgb3duLiBUaGlzIGRvZXMgbm90IG1hdGNoIENGTmV0d29y
aydzIHJlc3VsdCBpbiBtb3N0IGNhc2VzLCBidXQgc2hvdWxkIHdvcmsKKyAgICAgICAgZXF1YWxs
eSB3ZWxsLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjppbml0aWFsaXplU2FuZGJv
eCk6IENyZWF0ZSBhIGNhY2hlIHdpdGggb3VyIHBhdGggYW5kIGJlc3QKKyAgICAgICAgZ3Vlc3Mg
Zm9yIGNhcGFjaXR5LgorCiAyMDE0LTA0LTA0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gaU9TIEJ1aWxkIGZpeCBhZnRlciByMTY2
ODE4LgpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
LmgJKHJldmlzaW9uIDE2NjgyMSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsNiArMTI2LDggQEAgcHJpdmF0ZToK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBUaGUgTWFjaCBwb3J0IHVzZWQgZm9yIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nLgogICAgIG1hY2hfcG9ydF90IG1fY29tcG9zaXRpbmdSZW5kZXJT
ZXJ2ZXJQb3J0OworCisgICAgU3RyaW5nIG1fbnN1cmxDYWNoZURpcmVjdG9yeTsKICNlbmRpZgog
CiAgICAgc3RhdGljIHZvaWQgbG93TWVtb3J5SGFuZGxlcihib29sIGNyaXRpY2FsKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vz
c01hYy5tbQkocmV2aXNpb24gMTY2ODIxKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksMTAg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGNvbnN0IENGU3RyaW5nUmVmIGtMU1BsdWdJ
bkJ1bmRsZUlkZW50aWZpZXJLZXkgPSBDRlNUUigiTFNQbHVnSW5CdW5kbGVJZGVudGlmaWVyS2V5
Iik7CiAKKy8vIFRoZXNlIHZhbHVlcyB3ZXJlIGNob3NlbiB0byBtYXRjaCBkZWZhdWx0IE5TVVJM
Q2FjaGUgc2l6ZXMgYXQgdGhlIHRpbWUgb2YgdGhpcyB3cml0aW5nLgorY29uc3QgTlNVSW50ZWdl
ciBwbHVnaW5NZW1vcnlDYWNoZVNpemUgPSA1MTIwMDA7Citjb25zdCBOU1VJbnRlZ2VyIHBsdWdp
bkRpc2tDYWNoZVNpemUgPSAyMDAwMDAwMDsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IEZ1bGxzY3JlZW5XaW5kb3dUcmFja2VyIHsKQEAgLTQwNCw2ICs0MDgsMTEgQEAgdm9pZCBQbHVn
aW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQbAogICAgIG1fY29tcG9zaXRpbmdSZW5kZXJT
ZXJ2ZXJQb3J0ID0gcGFyYW1ldGVycy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydC5wb3J0KCk7
CiAgICAgaWYgKHBhcmFtZXRlcnMucHJvY2Vzc1R5cGUgPT0gUGx1Z2luUHJvY2Vzc1R5cGVTbmFw
c2hvdCkKICAgICAgICAgbXV0ZUF1ZGlvKCk7CisKKyAgICBbTlNVUkxDYWNoZSBzZXRTaGFyZWRV
UkxDYWNoZTphZG9wdE5TKFtbTlNVUkxDYWNoZSBhbGxvY10KKyAgICAgICAgaW5pdFdpdGhNZW1v
cnlDYXBhY2l0eTpwbHVnaW5NZW1vcnlDYWNoZVNpemUKKyAgICAgICAgZGlza0NhcGFjaXR5OnBs
dWdpbkRpc2tDYWNoZVNpemUKKyAgICAgICAgZGlza1BhdGg6bV9uc3VybENhY2hlRGlyZWN0b3J5
XSkuZ2V0KCldOwogfQogCiB2b2lkIFBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVBy
b2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQpAQCAtNDYyLDE0ICs0NzEsMjQgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjppbml0aWFsaXpl
U2FuZGJveChjbwogCiAgICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0U2FuZGJveFByb2ZpbGUoc2Fu
ZGJveFByb2ZpbGUpOwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDgwCi0gICAgLy8gVXNlIHByaXZhdGUgdGVtcG9yYXJ5IGFuZCBjYWNoZSBkaXJlY3Rvcmllcy4K
ICAgICBjaGFyIHRlbXBvcmFyeURpcmVjdG9yeVtQQVRIX01BWF07CiAgICAgaWYgKCFjb25mc3Ry
KF9DU19EQVJXSU5fVVNFUl9URU1QX0RJUiwgdGVtcG9yYXJ5RGlyZWN0b3J5LCBzaXplb2YodGVt
cG9yYXJ5RGlyZWN0b3J5KSkpIHsKICAgICAgICAgV1RGTG9nQWx3YXlzKCJQbHVnaW5Qcm9jZXNz
OiBjb3VsZG4ndCByZXRyaWV2ZSBzeXN0ZW0gdGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoOiAlZFxu
IiwgZXJybm8pOwogICAgICAgICBleGl0KEVYX09TRVJSKTsKICAgICB9CiAKKyAgICBjaGFyIGNh
Y2hlRGlyZWN0b3J5W1BBVEhfTUFYXTsKKyAgICBpZiAoIWNvbmZzdHIoX0NTX0RBUldJTl9VU0VS
X0NBQ0hFX0RJUiwgY2FjaGVEaXJlY3RvcnksIHNpemVvZihjYWNoZURpcmVjdG9yeSkpKSB7Cisg
ICAgICAgIFdURkxvZ0Fsd2F5cygiUGx1Z2luUHJvY2VzczogY291bGRuJ3QgcmV0cmlldmUgc3lz
dGVtIGNhY2hlIGRpcmVjdG9yeSBwYXRoOiAlZFxuIiwgZXJybm8pOworICAgICAgICBleGl0KEVY
X09TRVJSKTsKKyAgICB9CisKKyAgICBtX25zdXJsQ2FjaGVEaXJlY3RvcnkgPSBbW1tOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBzdHJpbmdXaXRoRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
OmNhY2hlRGlyZWN0b3J5IGxlbmd0aDpzdHJsZW4odGVtcG9yYXJ5RGlyZWN0b3J5KV0gc3RyaW5n
QnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRl
bnRpZmllcl1dOworICAgIGlmICghW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjcmVh
dGVEaXJlY3RvcnlBdFVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOm1fbnN1cmxDYWNoZURpcmVj
dG9yeSBpc0RpcmVjdG9yeTpZRVNdIHdpdGhJbnRlcm1lZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0
cmlidXRlczpuaWwgZXJyb3I6bmlsXSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIlBsdWdpblBy
b2Nlc3M6IGNvdWxkbid0IGNyZWF0ZSBOU1VSTCBjYWNoZSBkaXJlY3RvcnkgJyVzJ1xuIiwgdGVt
cG9yYXJ5RGlyZWN0b3J5KTsKKyAgICAgICAgZXhpdChFWF9PU0VSUik7CisgICAgfQorCiAgICAg
aWYgKHN0cmxjcHkodGVtcG9yYXJ5RGlyZWN0b3J5LCBbW1tbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl0gc3RyaW5nV2l0aEZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbjp0ZW1wb3JhcnlEaXJl
Y3RvcnkgbGVuZ3RoOnN0cmxlbih0ZW1wb3JhcnlEaXJlY3RvcnkpXSBzdHJpbmdCeUFwcGVuZGlu
Z1BhdGhDb21wb25lbnQ6QCJXZWJLaXRQbHVnaW4tWFhYWFhYIl0gZmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uXSwgc2l6ZW9mKHRlbXBvcmFyeURpcmVjdG9yeSkpID49IHNpemVvZih0ZW1wb3JhcnlE
aXJlY3RvcnkpCiAgICAgICAgIHx8ICFta2R0ZW1wKHRlbXBvcmFyeURpcmVjdG9yeSkpIHsKICAg
ICAgICAgV1RGTG9nQWx3YXlzKCJQbHVnaW5Qcm9jZXNzOiBjb3VsZG4ndCBjcmVhdGUgcHJpdmF0
ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5ICclcydcbiIsIHRlbXBvcmFyeURpcmVjdG9yeSk7CkBAIC00
NzcsMTUgKzQ5NiwxMSBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNv
CiAgICAgfQogCiAgICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0U3lzdGVtRGlyZWN0b3J5U3VmZml4
KFtbW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBzdHJpbmdXaXRoRmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uOnRlbXBvcmFyeURpcmVjdG9yeSBsZW5ndGg6c3RybGVuKHRlbXBvcmFyeURp
cmVjdG9yeSldIGxhc3RQYXRoQ29tcG9uZW50XSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb25dKTsK
LSNlbmRpZgogCiAgICAgc2FuZGJveFBhcmFtZXRlcnMuYWRkUGF0aFBhcmFtZXRlcigiUExVR0lO
X1BBVEgiLCBtX3BsdWdpblBhdGgpOworICAgIHNhbmRib3hQYXJhbWV0ZXJzLmFkZFBhdGhQYXJh
bWV0ZXIoIk5TVVJMX0NBQ0hFX0RJUiIsIG1fbnN1cmxDYWNoZURpcmVjdG9yeSk7CiAKLSAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNhY2hlUGF0aCA9IGFkb3B0Q0YoV0tDb3B5Rm91bmRhdGlv
bkNhY2hlRGlyZWN0b3J5KCkpOwotICAgIHNhbmRib3hQYXJhbWV0ZXJzLmFkZFBhdGhQYXJhbWV0
ZXIoIk5TVVJMX0NBQ0hFX0RJUiIsIChOU1N0cmluZyAqKWNhY2hlUGF0aC5nZXQoKSk7Ci0KLSAg
ICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBkZWZhdWx0cyA9IGFkb3B0TlMoW1tOU0RpY3Rpb25h
cnkgYWxsb2NdIGluaXRXaXRoT2JqZWN0c0FuZEtleXM6W05TTnVtYmVyIG51bWJlcldpdGhCb29s
OllFU10sIEAiTlNVc2VSZW1vdGVTYXZlUGFuZWwiLCBuaWxdKTsKLSAgICBbW05TVXNlckRlZmF1
bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSByZWdpc3RlckRlZmF1bHRzOmRlZmF1bHRzLmdldCgp
XTsKKyAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSByZWdpc3RlckRl
ZmF1bHRzOkB7IEAiTlNVc2VSZW1vdGVTYXZlUGFuZWwiIDogQFlFUyB9XTsKIAogICAgIENoaWxk
UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gocGFyYW1ldGVycywgc2FuZGJveFBhcmFtZXRlcnMp
OwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>