<?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>175023</bug_id>
          
          <creation_ts>2017-08-01 08:00:43 -0700</creation_ts>
          <short_desc>REGRESSION (r219193): Custom data attribute objects are lost randomly, maybe due to garbage collection</short_desc>
          <delta_ts>2017-10-04 03:27:04 -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>SVG</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>175398</dup_id>
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=172545</see_also>
          <bug_file_loc>http://live.yworks.com/yfiles-for-html/2.0/view/grapheditor/index.html</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>fabian.schwarzkopf</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schlm3</cc>
    
    <cc>seb.p.mueller</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1333743</commentid>
    <comment_count>0</comment_count>
      <attachid>316854</attachid>
    <who name="">fabian.schwarzkopf</who>
    <bug_when>2017-08-01 08:00:43 -0700</bug_when>
    <thetext>Created attachment 316854
Reproduction of lost data attributes on SVG

We noticed in the Safari Technology Preview Release 36 (macOS Sierra, 10.12.6) that the demos of our product did not work as expected anymore (e.g. see http://live.yworks.com/yfiles-for-html/2.0/view/grapheditor/index.html).

The transform that is applied to the SVG is often not applied at all or it works for some time but then gets broken randomly (try zooming or select all with CMD+A and then zoom). For optimization reasons, we cache the transformable on the SVG element (as custom attribute) and subsequently only update the cached transformable.

It seems that sometimes this attribute is lost or is not the same anymore as the one that was attached initially. Please find attached to this bug report is a small repro to demonstrate the issue.

Steps to reproduce:
* Open the index.html
* Start zooming in and out with the mousewheel
* At one time the cached instance is not the same anymore and changing its values won&apos;t transform the SVG (this is indicated by the green bar turning to red once the issue triggers)

We were able to trigger the problem more often when creating more dummy nodes in the code (see index.html). Supposedly, this triggers the garbage collector which then breaks the cached transformable.

Note: Comparing the repro with the current Chrome implementation shows, that the instance seems to change too, but the transform can still be changed by manipulating the attached object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334054</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-01 17:17:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/33666644&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334058</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-08-01 17:21:17 -0700</bug_when>
    <thetext>Does this also break the actual product, or just the demos?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334164</commentid>
    <comment_count>3</comment_count>
    <who name="">fabian.schwarzkopf</who>
    <bug_when>2017-08-02 01:07:05 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #2)
&gt; Does this also break the actual product, or just the demos?

The &apos;product&apos; is an API / library while the demos are demo implementation of it. Thus you can say, the demos are the product in that sense.

When it fails in the demos, it will fail for our customers in their products, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334181</commentid>
    <comment_count>4</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-08-02 02:13:04 -0700</bug_when>
    <thetext>Would you be able to come up with a reduced test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334182</commentid>
    <comment_count>5</comment_count>
    <who name="">fabian.schwarzkopf</who>
    <bug_when>2017-08-02 02:19:45 -0700</bug_when>
    <thetext>The attachment (Reproduction of lost data attributes on SVG) resembles the issue in a reduced test case. Or is an even more reduced test case needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334205</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-08-02 06:59:57 -0700</bug_when>
    <thetext>This test case is perfect. I&apos;m close to finding the regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334212</commentid>
    <comment_count>7</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-08-02 08:05:09 -0700</bug_when>
    <thetext>And of course it is already in the title :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334266</commentid>
    <comment_count>8</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-08-02 10:12:15 -0700</bug_when>
    <thetext>(In reply to fabian.schwarzkopf from comment #5)
&gt; The attachment (Reproduction of lost data attributes on SVG) resembles the
&gt; issue in a reduced test case. Or is an even more reduced test case needed?

Oh right that&apos;s perfectly fine, I had just looked at the link in the first comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336861</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-08-08 22:15:24 -0700</bug_when>
    <thetext>Sergio, do you plan to tackle this regression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336907</commentid>
    <comment_count>10</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-08-09 01:15:03 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #9)
&gt; Sergio, do you plan to tackle this regression?

I have it in my TODO list but I don&apos;t have much time ATM. I&apos;m fine with somebody else taking over. Otherwise I&apos;ll try to fix it as soon as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337083</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-08-09 12:40:47 -0700</bug_when>
    <thetext>I think that the new symptom is worse than the one fixed originally, so rolling back seems like the next step then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337087</commentid>
    <comment_count>12</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-08-09 12:55:39 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #11)
&gt; I think that the new symptom is worse than the one fixed originally, so
&gt; rolling back seems like the next step then.

I agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337157</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-08-09 15:08:11 -0700</bug_when>
    <thetext>Rolling back.

*** This bug has been marked as a duplicate of bug 175398 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337162</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-08-09 15:11:19 -0700</bug_when>
    <thetext>&gt; When it fails in the demos, it will fail for our customers in their products, too.

Could you please list your customers&apos; products, or characterize user impact in some other way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337330</commentid>
    <comment_count>15</comment_count>
    <who name="Sebastian Müller">seb.p.mueller</who>
    <bug_when>2017-08-10 00:29:42 -0700</bug_when>
    <thetext>I am CTO of yWorks, who produces the API where the bug was found and reported.

Here is an excerpt of our customer list: https://www.yworks.com/company/references

Our product &quot;yFiles for HTML&quot; is affected, which is a library. Also our new end user application (which uses that library) &quot;yEd Live&quot; is affected:

https://www.yworks.com/products/yed-live
https://www.yworks.com/products/yfiles-for-html

The bug makes the product unusable on the preview version of the affected UAs. The applications behave like an image viewer where you disable zooming and panning and interaction becomes impossible. Otherwise this is a very rich graph editing application and with the bug in place it becomes a bad viewer application, only.

Most of the deployments of our products at our customers are in closed intranets or at least inaccessible from the public web, and for many customers we may not disclose usage of our products in their deployments.

About half of the customers for which there are logos here https://www.yworks.com/#references however would be affected by that bug and anyone with an IT background will easily recognize at least 60% of them, I would say.

For example this application here would be affected, too, from what I can tell just &quot;by looking at the JavaScript&quot; of the running app:

https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-topology-overview

We *could* implement a performance costly workaround, however there&apos;s hundreds of deployments on websites that would have to update and probably several thousands of devices which have the software built-in into their management backends which cannot be updated as easily (think complex switches and appliances with built-in web servers and management software).

If you require more details, I can disclose some of them in a private email. Please get in contact with our company via the homepage in that case.

I, too, would agree that a rollback would be the best solution for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343082</commentid>
    <comment_count>16</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-08-29 02:35:14 -0700</bug_when>
    <thetext>This should be fixed in master now. Hopefully you could test it in the next technology preview (not sure about when Safari is going to ship this change).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354528</commentid>
    <comment_count>17</comment_count>
    <who name="">fabian.schwarzkopf</who>
    <bug_when>2017-09-29 08:37:13 -0700</bug_when>
    <thetext>Did the fix not make it into the release of iOS 11.0.1 and its Safari 11? 

I can see the same rendering issues that we have reported here in Safari 11 on our iOS11 ipad.

We also received several bug reports by our customers which have rendering issues on iOS11.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354531</commentid>
    <comment_count>18</comment_count>
    <who name="">fabian.schwarzkopf</who>
    <bug_when>2017-09-29 08:44:19 -0700</bug_when>
    <thetext>Same issue on macOS 10 with Safari 11.

It looks fine in Safari Tech Preview 40, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355423</commentid>
    <comment_count>19</comment_count>
    <who name="Markus Schlegel">schlm3</who>
    <bug_when>2017-10-02 13:02:38 -0700</bug_when>
    <thetext>We have been hit by this bug last week. Very inconvenient and sad that iOS11 has been released with that known bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356312</commentid>
    <comment_count>20</comment_count>
    <who name="Sebastian Müller">seb.p.mueller</who>
    <bug_when>2017-10-04 03:27:04 -0700</bug_when>
    <thetext>Note: the broken demo in the report has been modified in the meantime so that it does not exhibit the erroneous behavior anymore. The attached testcase is still valid (and broken for current Safari releases) and should be used instead for testing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>316854</attachid>
            <date>2017-08-01 08:00:43 -0700</date>
            <delta_ts>2017-08-01 08:00:43 -0700</delta_ts>
            <desc>Reproduction of lost data attributes on SVG</desc>
            <filename>index.html</filename>
            <type>text/html</type>
            <size>2831</size>
            <attacher>fabian.schwarzkopf</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCjxoZWFkPg0KICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
DQogIDx0aXRsZT5TdmcgdHJhbnNmb3JtPC90aXRsZT4NCiAgPHN0eWxlPg0KICAgIGJvZHkgew0K
ICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICB9DQogICAgI3N2Zy1jb250YWluZXIgew0KICAg
ICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiA2MHB4Ow0KICAgICAgbGVmdDogMDsN
CiAgICAgIHJpZ2h0OiAwOw0KICAgICAgYm90dG9tOiAwOw0KICAgIH0NCiAgICAjc3ZnIHsNCiAg
ICAgIHdpZHRoOiAxMDAlOw0KICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgIH0NCiAgICAjY3VycmVu
dC10cmFuc2Zvcm0gew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwOw0K
ICAgICAgaGVpZ2h0OiAzMHB4Ow0KICAgICAgbGVmdDogMDsNCiAgICAgIHJpZ2h0OiAwOw0KICAg
IH0NCiAgICAjaXMtc2FtZS1pbnN0YW5jZSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQog
ICAgICB0b3A6IDMwcHg7DQogICAgICBoZWlnaHQ6IDMwcHg7DQogICAgICBsZWZ0OiAwOw0KICAg
ICAgcmlnaHQ6IDA7DQogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsNCiAgICB9DQogIDwv
c3R5bGU+DQoNCg0KPC9oZWFkPg0KPGJvZHk+DQo8ZGl2IGlkPSJjdXJyZW50LXRyYW5zZm9ybSI+
dHJhbnNsYXRlKDAsIDApPC9kaXY+DQo8ZGl2IGlkPSJpcy1zYW1lLWluc3RhbmNlIj48L2Rpdj4N
CjxkaXYgaWQ9InN2Zy1jb250YWluZXIiPg0KICA8c3ZnIGlkPSJzdmciIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIj4NCiAgICA8ZyB0cmFuc2Zvcm09InRy
YW5zbGF0ZSgwLCAwKSI+DQogICAgICA8cmVjdCB3aWR0aD0iMjAwIiBoZWlnaHQ9IjEwMCIgc3Ry
b2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI2IiBmaWxsPSJncmVlbiI+PC9yZWN0Pg0KICAgIDwv
Zz4NCiAgPC9zdmc+DQo8L2Rpdj4NCjwvYm9keT4NCg0KPHNjcmlwdD4NCiAgbGV0IGN1cnJlbnRT
Y2FsaW5nID0gMQ0KICBjb25zdCBnRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdz
dmcnKS5maXJzdEVsZW1lbnRDaGlsZA0KICBjb25zdCB0cmFuc2Zvcm0gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY3VycmVudC10cmFuc2Zvcm0nKQ0KDQogIGRvY3VtZW50LmJvZHkuYWRkRXZl
bnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIGUgPT4gew0KICAgIGNvbnN0IGRlbHRhID0gTWF0aC5t
YXgoLTEsIE1hdGgubWluKDEsIChlLndoZWVsRGVsdGEgfHwgLWUuZGV0YWlsKSkpDQogICAgaWYg
KGRlbHRhID4gMCkgew0KICAgICAgY3VycmVudFNjYWxpbmcgKz0gMC4xDQogICAgICBjb25zdCBt
YXRyaXggPSB7DQogICAgICAgIGVsZW1lbnRzOiBbY3VycmVudFNjYWxpbmcsIDAsIDAsIGN1cnJl
bnRTY2FsaW5nLCAwLCAwXQ0KICAgICAgfQ0KICAgICAgc2V0TWF0cml4KGdFbGVtZW50LCBtYXRy
aXgpDQogICAgICB0cmFuc2Zvcm0uaW5uZXJIVE1MID0gbWF0cml4LmVsZW1lbnRzLnRvU3RyaW5n
KCkNCiAgICB9IGVsc2Ugew0KICAgICAgY3VycmVudFNjYWxpbmcgLT0gMC4xDQogICAgICBjb25z
dCBtYXRyaXggPSB7DQogICAgICAgIGVsZW1lbnRzOiBbY3VycmVudFNjYWxpbmcsIDAsIDAsIGN1
cnJlbnRTY2FsaW5nLCAwLCAwXQ0KICAgICAgfQ0KICAgICAgc2V0TWF0cml4KGdFbGVtZW50LCBt
YXRyaXgpDQogICAgICB0cmFuc2Zvcm0uaW5uZXJIVE1MID0gbWF0cml4LmVsZW1lbnRzLnRvU3Ry
aW5nKCkNCiAgICB9DQoNCiAgICAvLyBnZW5lcmF0ZSBzb21lIGxvYWQgYW5kIGFsc28gZ2l2ZSB0
aGUgR0Mgc29tZXRoaW5nIHRvIGNsZWFuIHVwDQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4MDAw
OyBpKyspIHsNCiAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
DQogICAgICBkaXYuaW5uZXJIVE1MID0gIkknbSBqdXN0IGEgZHVtbXkiDQogICAgfQ0KICB9KQ0K
DQogIGZ1bmN0aW9uIHNldE1hdHJpeChlbGVtZW50LCBtYXRyaXgpIHsNCiAgICBjb25zdCBlbGVt
ZW50cyA9IG1hdHJpeC5lbGVtZW50cw0KICAgIGxldCBjYWNoZSA9IGVsZW1lbnRbImRhdGEtdHJh
bnNmb3JtLWNhY2hlIl0NCiAgICBpZiAoIWNhY2hlKSB7DQogICAgICBjYWNoZSA9IGVsZW1lbnQu
dHJhbnNmb3JtLmJhc2VWYWwuZ2V0SXRlbSgwKQ0KICAgICAgY29uc3QgbSA9IGVsZW1lbnQudHJh
bnNmb3JtLmJhc2VWYWwuZ2V0SXRlbSgwKS5tYXRyaXgNCiAgICAgIG0uYSA9IGVsZW1lbnRzWzBd
DQogICAgICBtLmIgPSBlbGVtZW50c1sxXQ0KICAgICAgbS5jID0gZWxlbWVudHNbMl0NCiAgICAg
IG0uZCA9IGVsZW1lbnRzWzNdDQogICAgICBtLmUgPSBlbGVtZW50c1s0XQ0KICAgICAgbS5mID0g
ZWxlbWVudHNbNV0NCiAgICAgIGVsZW1lbnRbImRhdGEtdHJhbnNmb3JtLWNhY2hlIl0gPSBjYWNo
ZQ0KICAgIH0gZWxzZSB7DQogICAgICBjb25zdCBtID0gY2FjaGUubWF0cml4DQogICAgICBpZiAo
Y2FjaGUgIT09IGVsZW1lbnQudHJhbnNmb3JtLmJhc2VWYWwuZ2V0SXRlbSgwKSkgew0KICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXMtc2FtZS1pbnN0YW5jZScpLnN0eWxlLmJhY2tn
cm91bmRDb2xvciA9ICdyZWQnDQogICAgICB9DQogICAgICBtLmEgPSBlbGVtZW50c1swXQ0KICAg
ICAgbS5iID0gZWxlbWVudHNbMV0NCiAgICAgIG0uYyA9IGVsZW1lbnRzWzJdDQogICAgICBtLmQg
PSBlbGVtZW50c1szXQ0KICAgICAgbS5lID0gZWxlbWVudHNbNF0NCiAgICAgIG0uZiA9IGVsZW1l
bnRzWzVdDQogICAgfQ0KICB9DQo8L3NjcmlwdD4NCjwvaHRtbD4=
</data>

          </attachment>
      

    </bug>

</bugzilla>