Crash on Set Actor Rotation - 4.9 only

Hi there.

I’m making a bug report although this is a completely ridiculous problem that doesn’t make any sense to me and I’m not sure if it will be reproduce-able because it’s bizarre.

What I have is a single object made up of multiple components, attached to another object made up of multiple components. When I press E on either object, it rotates parent object - essentially a door situation. This whole set up I had in place in 4.8 with no crash. Now, in 4.9, when I press E and start rotation, it crashes inexplicably with no error message or anything.

I’ve used breakpoints and found it crashes as soon as the ‘Set Actor Rotation’ function is called. I tried replacing it with other methods of changing rotation, like setting actor’s relative rotation or setting root component’s relative or absolute rotation, but crash remains. I’ve tried printing rotator, and there doesn’t appear to be anything strange with it when it’s printed.

very strange thing is that there are circumstances where I can make this crash not occur. If object I am rotating is located in different areas, it will crash or not crash. Most areas it crashes though. If it’s just one object (hinge parent) it doesn’t crash, but if there’s a hinge child attached, it crashes. If that hinge child is made up of 1 component, it doesn’t crash, but if it’s made up of 2 or more, it crashes.

I’ve tried changing rotator formula (I set rotation to each of rotator values used in process, and it crashed for some and not for others - for example, it doesn’t crash on ‘Hinge Closed Rot’ or on ‘Rotator from Axis and Angle’ but it does crash if the ‘Combine Rotators’ result is used. I still have my 4.8 version of UE4 and this code does not cause ANY crashes in that version, only in 4.9.

It’s put me at a bit of a standstill because there’s no way for me to do what I need to do without rotating object, and no matter how much I mess with it only consistent way to stop crashing is to skip over rotate function which is not possible for this to work right. I really hope this bug can be fixed because it doesn’t make any sense to me that there’s a crash occurring from something as basic as setting a rotation, although I don’t get this crash anywhere else in my project that I know of and this isn’t only place that I set rotation for an object, so I don’t know what that’s about.

http://puu.sh/jVW3j/52470bf480.png

Hi DylanBrady,

Are you able to reproduce this in a new test project in 4.9? If so, please upload that somewhere so we can take a look.

It would be helpful to take a look at crash log from your project’s \Saved\Logs folder. Please and attach them here. Please also copy information from Crash Reporter window after this crash occurs, including Machine ID, and paste it here. Make sure you hit Send for crash report!

Hi !
Sorry, I went on here to add some additional information 'cos I’ve figured out more accurate information for this now. I’m starting up a test project now to verify if I can reproduce it there, and I’ll post results once I do that (should be ~10 mins)

Important details for now: This is not a problem with Set Actor Rotation, or with rotation amount that is put in or anything of sort. I’ve discovered what is cause of crash, though I don’t know how to stop it. It’s a little convoluted so let me explain through an example:

I have an actor named LogActor, which is actor I use for all of this.
Say LogActor1 is created with a root component, and ~10 other components attached to it. I strike that object with a weapon, it “cuts it in half” by taking 5 of those components and attaching them to a newly created object, Object 2.

Thus, after this point, LogActor2 is made up of a root component (created by/owned by LogActor2) and 5 components that are originally part of LogActor1 and still technically owned by it, though attached to LogActor2.

Now, I have a system to place a LogActor on ground and click on it to rotate it. Other objects can be attached to it so that they rotate also. problem occurs 100% of time if LogActor1 is on ground and I attach LogActor2 to it, as long as LogActor2 has at least 1 component that was “originally” part of LogActor1.
crash also occurs if I attempt to modify location, not just rotation. It does not occur if I modify scale. It does not occur if LogActor2 is base with LogActor1 attached to it, or any other situations than one I described.

– Continued:
All of previous conditions that I used to think were causing crash - i.e. amount of rotation, where I was on map and so on - were irrelevant, problem was occuring because I was randomly using LogActor1 as base during tests and other times using LogActor2 and then mis-attributing crash to other factors.

crash does not pop up with Crash Reporter window, so I can’t use that for sending a crash report or copying any information. I did go to location you suggested and look in my logs, and most relevant-looking thing I could find looked like this:

[2015.09.01-02.56.18:908][ 94]LogActorComponent: UnregisterComponent: (/Engine/Transient.EditorFloorComp) Not registered. Aborting.
[2015.09.01-02.56.19:117][ 94]LogActorComponent: UnregisterComponent: (/Engine/Transient.EditorFloorComp) Not registered. Aborting.
[2015.09.01-02.56.19:488][ 95]Cmd: QUIT_EDITOR
[2015.09.01-02.56.20:851][ 95]LogExit: Preparing to exit.
[2015.09.01-02.56.21:634][ 95]LogExit: Editor shut down
[2015.09.01-02.56.21:635][ 95]LogExit: Transaction tracking system shut down

LogActor is object I’m talking about, and it has numerous components (Root component is called RootLog, and component that txt file is referencing seems to be one of components I add to it via blueprints during actor generation)

Essentially, gist of what’s happening from what I can tell is that components are created attached to an actor, detached from that actor and attached to a new one, and then new actor that they are attached to becomes attached to old actor they used to be attached to and then once it is told to move or rotate it crashes.

Knowing ability to reproduce crash, I re-tried it in 4.8 and did not get crash, so it is definitely only occuring in 4.9.

I will post one more comment after this with results from attempting to reproduce this in a test project.

I have reproduced this problem in a test project! I’ve created it and added some documentation so you guys can easily follow along. If you press play, Spawner will create actor and go through a few steps over a few seconds, after which it will crash once it tries to rotate.

I started it with all starter content (on accident) and then ended up deleting most of that to cut down file size so I could upload it easier, so there might be some loading errors when you open it up but those aren’t important and have nothing to do with issue. (Just to be totally sure - crash was occurring before I deleted those files)

Here’s mediafire download link, let me know if this doesn’t work.

Thanks for your attention and I hope this helps you guys fix it!

Hey DylanBrady,

Thanks for looking into it further and providing a test project for us! I’d like to download it, but it won’t let me without upgrading to MediaFire pro because it’s not already zipped up. If you could try either Dropbox or Google Drive, or it up first and then use MediaFire, that would allow me to get it.

log snippet above shows a successful exit from editor, so while it may be related I don’t think it’s what we need. If you can find log that is saved immediately after crash occurs, that would be most helpful. Thanks!

Ah, sorry about that! I put it into a .rar file now, hopefully that works!

If not, I can definitely use Google Drive or Dropbox, but I would need an email to send you guys an invite to to be able to access it. Let me know if this works.

Unfortunately, as far as logs immediately after crash occurs, I don’t see any being added when crash occurs even with keeping Saved/Logs folder open on my other monitor and watching it.

Okay, no problem. I was able to get it with this link, and I’ll take a look as soon as I can. Thanks!

Hello DylanBrady,

I have written up a report (UE-20764) and I have submitted your project to developers for further consideration. I did however find a workaround within sample project that allowed object to rotate without causing crash. I added a scene component as root component (making it parent of “CrashTestRoot” ). This was only change needed for test project. I hope that this information will allow you to find a workaround in your actual project.

Make it a great day

Thanks Rudy! I’m glad that it’s been reported!
That workaround sounds pretty efficient, unfortunately it won’t work for my project with some of things that I do involving root (simulating physics and all that), but in short term (at least until next patch or two) it’s not a big problem because it works fine just so long as I don’t use root as base, which means I can use any other part that I chop off as base. So it’s not an immediate concern but definitely something that I will appreciate when it’s fixed because it wouldn’t do so well for playtesting and stuff later in development.

Anyway, once again thanks to you both!

Dylan,

Looks like this specific crash has been fixed in 4.10. 4.10 preview branch should be released in near future, so please let us know if you continue to run into crash. Thanks!