x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Assert failed in UNetDriver::ServerReplicateActors()

Sometimes when I start multiplayer PIE session my Editor crashes with assertion failed inside UNetDriver::ServerReplicateActors().

This is the line with assert:

 check (World == Actor->GetWorld());

Here is explanation of what's going on:

When Editor setups PIE session it spawns a bunch of actors, and some of them get added to NetworkActors array of each World. One of those actors is AAbstractNavData.

Here is screenshot of debugger when it happens (File: World.cpp): alt text

By the time execution reaches NetworkDriver::ServerReplicateActors() this AAbstractNavData gets garbage collected, but pointer in the array still exists (Notice pointer addresses of items with index [1] in both screenshots): alt text Then this actor pointer is removed from NetworkActors array because its NetDriverName not equals to this (Line 1953) and everything works fine after that.

But sometimes garbage collection starts a litlle bit earlier – just before second PIE world is created. When Editor spawns actors for it, memory allocator could give a chunk of memory previously occupied by AbstractNavData to a new Actor. Though this new Actor never get directly added to NetworkActors array of another World pointer to it is already there.

This was tested on 4.8.2 version downloaded with launcher.

Product Version: UE 4.8
Tags:
more ▼

asked Jul 23 '15 at 05:13 PM in Bug Reports

avatar image

Druha
26 2 4 10

avatar image Ben Halliday STAFF Jul 23 '15 at 05:47 PM

Hi Druha,

Thanks for your report! I've assigned one of our team to look into this, and they'll let you know if they have any questions.

avatar image Matthew J ♦♦ STAFF Jul 24 '15 at 01:47 PM

Hi Druha,

Can please provide me with the callstack and the crash logs that you receive from this crash? It would be best to crash while running the editor through the usual way instead of Debug as the CrashReporter isn't triggered when running in Debug mode. On top of that, could you either upload the code related to this spawning that is causing these crashes or a project where the issue occurs? Any of these things will help determine if this is in fact a bug and if so, get it reported so that we can ultimately fix it.

avatar image Druha Jul 25 '15 at 11:46 AM

I've tried to reproduce it in a new project - it crashed only once out of a hundred attempts, but i've collected some additional valuable data. Here is crash dump & logs from this Test project.

To score a crash you need to start a multiplayer PIE session (I tested with 2 players). If it doesn't - stop it and run again. It crashes very rare because when some other UObject takes the memory of garbage collected AbstractNavData it does satisfy the condition on line 1945 (GetRemoteRole() == Role_NONE) and get removed from the array before the check against World is performed. In attached project it is almost always a UStaticMeshComponent that end up being in this list: alt text

So in this case it is not even an AActor* that is stored in TArray of AActor*. In this situation anything may happen when pointer to one type of object is treated as pointer to other type.

avatar image Gam3r Jul 25 '15 at 01:47 PM

Hello,

I have stumbled upon same issue reproducible on 4.8.2. This is reproducible 5 out of 5 times on my project. And another worrying side effect as a result of this crash is that in my blueprint game mode class default pawn class is automatically changed to DefaultPawn from None and it remains that way even after reopening and changing.

It'll be great to get more information as to what is triggering this issue.

In my case this is how this error occurs :

If I set my DefaultPawnClass to None in Game mode class and override this game mode class in world settings and start a network PIE game session by selecting 2 players. As soon as 2 windows are shown it crashes immediately.

Interestingly If I set DefaultPawnClass to DefaultPawn or something else the crash does not occur.

And in the assert the World pointer is being referenced from WorldSettings actor.

Please let me know if you need any more information from my end

Thanks :)alt text

capture.png (50.2 kB)
(comments are locked)
10|2000 characters needed characters left

1 answer: sort voted first

I'm still looking into this crash and trying to reproduce it so that I can get it reported but I've had no success thus far. In the meantime, can both of you try making a copy of your project to see if this issue persists in 4.9 Preview 1? It is possible that it has been inadvertently fixed.

more ▼

answered Jul 30 '15 at 05:57 PM

avatar image

Matthew J ♦♦ STAFF
31.8k 526 90 417

avatar image Druha Aug 01 '15 at 10:05 AM

Looks like 4.9 may have fixed the issue. I was not able to reproduce it in my project. This commit may be the solution, but I'm not sure. Is there any chance that 4.8 may include the fix?

avatar image Matthew J ♦♦ STAFF Aug 03 '15 at 01:37 PM

I doubt that it will be included in a hotfix. If this is the commit that actually fixes the issue you should be able to add it yourself to a 4.8 build, providing that you're using a version of the engine built from source code.

Gam3r, have you had the same results? I'd be interested in knowing if 4.9 fixes the issue for you as well since you had a 5 out of 5 reproduction case.

avatar image la_taupe15 Aug 26 '15 at 01:48 PM

Hi, Just jumping into this thread in order to add more info. we have integrated the commit mentionned by Druha (here) alongside with this commit (here which fixes the build), and I was still able to reproduce the exact same crash described by Druha.

the version we use is source from 4.8.3 + these two specific commits.

It's a very rare crash (happening once or twice a day in a team of 10 people).

avatar image Matthew J ♦♦ STAFF Aug 26 '15 at 07:21 PM

Hello la_taupe15,

Have you tried to see if the crash occurs for you in 4.9 Preview? I'm interested to see if the commit itself is the incorrect one and the fix is elsewhere.

avatar image la_taupe15 Aug 31 '15 at 10:21 AM

Hi, no I haven't tried to repro the crash with the source from a 4.9 preview. I'll give it a shot and I get back to you as soon as I can :)

avatar image Matthew J ♦♦ STAFF Sep 04 '15 at 10:45 PM

Hello la_taupe15,

Have you had a chance to give 4.9 a try thus far? I don't mean to rush you or anything of the sort, I'm only curious.

avatar image la_taupe15 Sep 08 '15 at 03:10 PM

Hi Matthew,

We've just switched all our team members to 4.9.0 no repro of this crash has been reported yet ! :)

avatar image Matthew J ♦♦ STAFF Sep 08 '15 at 09:41 PM

Glad to hear it. Thank you testing this out!

avatar image isaacvega Feb 29 '16 at 01:49 PM

We are experienced this crash after moving to 4.10, is this commit the official fix? The strangest it only happens in one of our maps, and it crashes when asserting world settings. Is there a way we can recreate world settings or validate map's binary? Our map is already too big to be done from scratch

avatar image Matthew J ♦♦ STAFF Feb 29 '16 at 02:04 PM

Hello issacvega,

Unfortunately we're not sure if that was the official fix as it was speculation since a bug was never entered for this issue. Could you post the callstack and logs you're getting when you crash? It could point toward the specific problem.

avatar image isaacvega Feb 29 '16 at 02:32 PM

Absolutely. A bit more details. It only happens with Single process checked in with PIE. callstack We have a lot of logs of our own systems, I don't think I should post that information here, should I move all the info to a UDN thread?

networkactors.png (22.1 kB)
avatar image Matthew J ♦♦ STAFF Feb 29 '16 at 02:38 PM

If you would prefer it to be private, that would be best. Feel free to mention this post for context if you do.

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question