ruffle-rs / ruffle

A Flash Player emulator written in Rust
https://ruffle.rs
Other
15.76k stars 820 forks source link

Error on https://armorgames.com/play/195/blue-rabbits-climate-chaos #3189

Open michaelts1 opened 3 years ago

michaelts1 commented 3 years ago

Steps to Reproduce

  1. Start a new game
  2. Enter the hotel
  3. Try to save (Press the blue bunny picture on the bottom right and then save)

Error Info

Error name: Error Error message: panicked at 'assertion failed: (left == right) left: true, right: false: cannot recursively acquire mutex', /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys/wasm/../unsupported/mutex.rs:23:9 Error stack:

e/a.wbg.__wbg_new_df6e6ab7a65c4c4d@https://agi.armorgames.com/ruffle/ruffle.js:1:6392
std::sync::once::Once::call_once::{{closure}}::h7141d078b1ea013f@https://agi.armorgames.com/ruffle/05be98acabee5bdacb848b714e072d80.wasm:wasm-function[1276]:0x25acf1
std::sync::once::Once::call_inner::h02eac160d339afc2@https://agi.armorgames.com/ruffle/05be98acabee5bdacb848b714e072d80.wasm:wasm-function[1533]:0x289f4e
core::ops::function::FnOnce::call_once{{vtable.shim}}::hf48d3d3ee3d10801@https://agi.armorgames.com/ruffle/05be98acabee5bdacb848b714e072d80.wasm:wasm-function[4371]:0x36167b
std::panicking::rust_panic_with_hook::h123718ba3bf480af@https://agi.armorgames.com/ruffle/05be98acabee5bdacb848b714e072d80.wasm:wasm-function[3312]:0x338d3c
std::panicking::begin_panic_handler::{{closure}}::hf393a82e58397bd2@https://agi.armorgames.com/ruffle/05be98acabee5bdacb848b714e072d80.wasm:wasm-function[3929]:0x356034
std::sys_common::backtrace::__rust_end_short_backtrace::h2ff2cfc953878925@https://agi.armorgames.com/ruffle/05be98acabee5bdacb848b714e072d80.wasm:wasm-function[4705]:0x3669fe
rust_begin_unwind@https://agi.armorgames.com/ruffle/05be98acabee5bdacb848b714e072d80.wasm:wasm-function[4583]:0x3651a1
std::panicking::begin_panic_fmt::h96153d9dc0e882ed@https://agi.armorgames.com/ruffle/05be98acabee5bdacb848b714e072d80.wasm:wasm-function[4674]:0x366479
ruffle_web::Ruffle::new_internal::{{closure}}::{{closure}}::he2578af397b0a6b6@https://agi.armorgames.com/ruffle/05be98acabee5bdacb848b714e072d80.wasm:wasm-function[1445]:0x27b300
<dyn core::ops::function::FnMut<(A,)>+Output = R as wasm_bindgen::closure::WasmClosure>::describe::invoke::h06cb9cc7d40dbec5@https://agi.armorgames.com/ruffle/05be98acabee5bdacb848b714e072d80.wasm:wasm-function[4857]:0x36831f
C@https://agi.armorgames.com/ruffle/ruffle.js:1:3274
a@https://agi.armorgames.com/ruffle/ruffle.js:1:2840

Player Info

Allows script access: true

Page Info

Page URL: https://armorgames.com/play/195/blue-rabbits-climate-chaos SWF URL: https://cache.armorgames.com/files/games/blue-rabbits-climate-195.swf?v=1373587520

Browser Info

Useragent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0 OS: Win32

Ruffle Info

Version: 0.1.0 Name: nightly 2021-02-01 Channel: nightly Built: 2021-02-01T00:36:59.488Z Commit: d1fb36fbe2b31b9392d995ac67315aa02aee3fbc

michaelts1 commented 2 years ago

Ruffle no longer panics using the nighty version from 12/12/2021. However I am not closing this issue, since the game still doesn't save correctly (Saving and then refreshing the page doesn't allow to continue from last save).

n0samu commented 1 year ago

I'm sorry it took until now for anyone to look at your issue. I can confirm that the game still isn't saving progress between sessions. This actually only happens on the web; the desktop app is unaffected. This is because the game actually saves a very large amount of data: about 4.1MB, mostly consisting of the thumbnail photo and any saved photos from the ingame camera. Ruffle encodes saved data as base64 and stores it in a LocalStorage key. Firefox and Chrome both seem to limit the data associated with a single LocalStorage value to about 5.3MB, which is not enough to store this game's save data, considering the additional overhead of base64 encoding. So the data silently fails to save. Not sure what we can do about this one 😦