Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BindToClose failed because the model is already being closed. #126

Open
Shariiii opened this issue Mar 6, 2021 · 2 comments
Open

BindToClose failed because the model is already being closed. #126

Shariiii opened this issue Mar 6, 2021 · 2 comments
Labels

Comments

@Shariiii
Copy link

Shariiii commented Mar 6, 2021

There were many reports of data reverting when they leave or join a vip server so i decided to put a bunch of pcalls everywhere and sent the reports to discord through webhook and found out that there were around 40 reports related to this issue.
the part of the script that logs this error is the one that is responsible for loading player's data and this issue did happen in regular servers too but mostly in vip can this be the reason behind data reverting randomly?

@Kampfkarren
Copy link
Owner

This is a bug that I asked about forever ago, but doesn't look like anyone knows whats up: https://devforum.roblox.com/t/bindtoclose-failed-because-the-model-is-already-being-closed/141210

@Kampfkarren Kampfkarren added the bug label Mar 6, 2021
@Shariiii
Copy link
Author

Shariiii commented Mar 6, 2021

hmmmm I think the issue is that the player tried to load his data during the shutdown process because only that makes sense from the reports i have received but just to be 100% sure ill add something to check if bindtoclose was already happening when the report was made and let you know.

btw I have found the issue that was causing reverts basically you know that software that allows you to open multiple clients? I was only using Set() to move new data to cache and relied on your player leaving method to send data to Roblox datastore servers. So lets say you joined a server and made some progress which is stored in cache for now. They use that software and make the game open again from the same account but on whole new client well it does kick you from the first client saying "Same account launched game from different client....." but the 2nd client loads data before 1st client can send it to Roblox datastore and then the player ends up with data that he saved in 2nd last session soo you can say its a potential dupe method and yeah i was thinking about using messaging service to fix the issue. I will make it so data only loads after it confirms that the same client doesn't exist on another server but what if they rejoin the same server?

Edit 1: nvm about messagingservice the plan is still a bit risky i really need suggestions on it

Edit 2: about the bindtoclose issue each time it was reported there was like only 1 player left in game and server age ranges from few seconds to 3 hours or something... But the weird part is players that were reported with logs claimed that they never lost data

Kampfkarren added a commit that referenced this issue May 23, 2021
* Removed comment that 'require' is a valid way to get DataStore2

* Fixes Issue #124 - "Memory leak per player"

* Fixes #125 - Use a BindableEvent instead of setting Player.Parent to nil

* Fixes Issue #126 - Handles potential BindToClose error

* Added additional info to BindToClose failure warning

Co-authored-by: boyned//Kampfkarren <[email protected]>

* Applied suggestions to change `booleanVal == false` to `not booleanVal`

Co-authored-by: boyned//Kampfkarren <[email protected]>

* Applied code review suggestions

* Removed unnecessary promise catch

* Added Promise.defer to replace spawn
Also added comment to prevent accidental changes to deferred code

Co-authored-by: boyned//Kampfkarren <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants