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

[Crash] Map::UnloadAll #15570

Closed
Pirricli opened this issue Sep 22, 2015 · 3 comments
Closed

[Crash] Map::UnloadAll #15570

Pirricli opened this issue Sep 22, 2015 · 3 comments

Comments

@Pirricli
Copy link
Contributor

This night I got this crashlog.

http://pastebin.com/kr6nvuGm

c5cc7cc
3.3.5

@Rochet2
Copy link
Contributor

Rochet2 commented Sep 22, 2015

I would like to note that instance maps are unloaded in an non thread safe manner, but map container Get methods etc do not have locks guarding i_maps container that contains all maps.
Creating a map checks for map existence using the unsafe get and then continues to create a map using locked create. Create should happen in thread safe places from what I see so thread safety "shouldnt" be an issue there and unload also seems to work so too, but not for instance map since they are unloaded when the base map is unloaded (or similar).

Perhaps this is related? Note how map updater thread destroys the instance maps in the log, and the map could be running an update on it's own thread, no?

@jackpoz
Copy link
Contributor

jackpoz commented Sep 22, 2015

I would like to note that instance maps are unloaded in an non thread safe manner

could you elaborate more on this, maybe providing a helgrind log of your statement or detailed explaination about how 2 threads can access the same map while 1 thread is unloading it ?

Note how map updater thread destroys the instance maps in the log, and the map could be running an update on it's own thread, no?

for all I know the answer is "no", all instance maps with same map id are updated by the same map update task

I saved at https://gist.github.com/jackpoz/c15ad74c02cf446a3cae a couple of useful callstacks

@Shauren
Copy link
Member

Shauren commented Dec 6, 2015

Map destructor no longer calls UnloadAll. Issue outdated, please open new one with new callstack if this still happens.

@Shauren Shauren closed this as completed Dec 6, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants