View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0031557||Runner||HTML5||Public||2019-12-31 13:40||2020-01-13 16:27|
|Reporter||Dan||Assigned To||Luke Brown|
|Priority||Medium||Severity||A - Crash/Hang||Reproducibility||100%|
|Target Version||2.3.0||Fixed in Version||2.3.0|
|Summary||0031557: HTML5: iOS browsers don't appear to free memory after a streamed sound has finished, crashes the page on low RAM devices|
|Description||iOS browsers don't appear to free memory after a streamed sound has finished (Safari and Chrome have been reported as reproducing the issue). If you try running the attached sample on iOS devices which have lower amounts of memory you will see the page eventually crashes. This does not appear to be the case on Android or Desktop versions of Chrome.|
iPhone 6 using iOS 12.4.4 it reliably gets as far as "music_relaxed_long" and then the browser reloads the page and advises there had been an issue.
iPhone 6S using 11.4.1 gets about 5 or 6 songs further on - as far as "musicThoughtful".
iPhone 7+ running 13.3 completes the sample project with no issue
iPhoneX running 13.1.2 completes the sample project with no issue
All of the above using 126.96.36.1998.
The original reporter says they first saw the issue on iPad mini 2 (1GB RAM) and an iPad Pro first gen (2 GB RAM). 188.8.131.524.
|Steps To Reproduce||1. Start GMS2 and import P:\Samples-Mantis\0031557-HTML5StreamingSoundsMemoryLeak.yyz|
2. Run it for HTML5, then connect to the micro web server using an iOS device's browser.
3. Tap the screen to start the audio playing.
4. Wait until the page crashes and is reloaded.
|Tags||No tags attached.|
|1.4 Found In|
|2.x Runtime Found In||184.108.40.2064|
|2.x Runtime Verified In|
This is due to streaming audio not being supported on specifically iOS browser devices, which means that the audio is always fully loaded before playing. large files such as the ones shown to crash, are causing the issue here.
There was some leak which i was able to fix where referenced sounds were being held on to (they were added twice to a list and only removed once) and so could not be properly garbage collected, but this fix did little to fix the issue here.
||The attempted fix will be in 2.3.0, but ultimately this is not fixable and is a Safari issue.|