(CLJS) Core.async memory leak in Safari and Mobile Safari

Description

Chaining together channels apparently leaks memory in Safari.

A statement such as

will leak memory when the channels are used. The longer the chain the more memory.

I have created an example repository and an example page.

The repo and the example code is here:
https://github.com/bhauman/checkmemleak/blob/master/src/checking_safari_leak/core.cljs

The demonstration page is here:
This link will leak
http://rigsomelight.com/checkmemleak/?leak=true
This link will not
http://rigsomelight.com/checkmemleak

The leak is pretty darn severe.

Environment

Mobile Safari on iOS 7.0; Safari 6.1 on OSX Lion

Activity

Show:
Bruce Hauman
January 21, 2014, 10:55 PM

I have just confirmed this is also a problem in Safari Version 7.0.1 (9537.73.11) on Mavericks.

Bruce Hauman
January 24, 2014, 1:13 AM

I updated the example page.

http://rigsomelight.com/checkmemleak/index.html

This link wont leak:
http://rigsomelight.com/checkmemleak/index.html#comp-partial

This link will leak:
http://rigsomelight.com/checkmemleak/index.html#map<

There is navigation to try the different implementations and optimization modes.

To be clear map<-chain, custom-map, map<, and map> all exhibit the leak in :none and simple optimization modes.

David Nolen
October 14, 2014, 12:00 PM

To make sure this ticket has all the necessary information - if I remember correctly even advanced optimization is affected? Am I correct Bruce?

Bruce Hauman
October 15, 2014, 6:53 PM

Yes, it affected advanced optimization. I haven't checked if this is still an issue.

Assignee

Unassigned

Reporter

Bruce Hauman

Labels

None

Approval

None

Patch

None

Priority

Major
Configure