custom render engine crashes blender by consecutive hitting f12 #46176

Closed
opened 2015-09-20 05:43:56 +02:00 by Jakub Uhlik · 10 comments

System Information
Mac OS X 10.9.4

Blender Version
Broken: 2.75a c27589e
Worked: (optional)

Short description of error
Segmentation fault: 11

Exact steps for others to reproduce the error
open attached blend, click 'Run Script' in Text editor, choose 'Crash Renderer' from dropdown list in Info header and start hitting F12 until it crashes, usually 5 to 10 times is enough, but sometimes it take longer or even shorter. Hit F12, wait a second to finish, then again and again.. If it takes a bit longer to crash try hitting F12 faster. I've attached 3 crash reports #1 is the most common

crash.crash-1.txt

crash.crash-2.txt

crash.crash-3.txt

crash.blend

**System Information** Mac OS X 10.9.4 **Blender Version** Broken: 2.75a c27589e Worked: (optional) **Short description of error** Segmentation fault: 11 **Exact steps for others to reproduce the error** open attached blend, click 'Run Script' in Text editor, choose 'Crash Renderer' from dropdown list in Info header and start hitting F12 until it crashes, usually 5 to 10 times is enough, but sometimes it take longer or even shorter. Hit F12, wait a second to finish, then again and again.. If it takes a bit longer to crash try hitting F12 faster. I've attached 3 crash reports #1 is the most common [crash.crash-1.txt](https://archive.blender.org/developer/F235553/crash.crash-1.txt) [crash.crash-2.txt](https://archive.blender.org/developer/F235555/crash.crash-2.txt) [crash.crash-3.txt](https://archive.blender.org/developer/F235554/crash.crash-3.txt) [crash.blend](https://archive.blender.org/developer/F235556/crash.blend)
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @JakubUhlik

Added subscriber: @JakubUhlik

Added subscribers: @Sergey, @mont29

Added subscribers: @Sergey, @mont29

Can confirm the crash here, but think you are doing some very bad things in this script - rendering is called from threaded context, modifying the scene itself from there is calling for problems imho. @Sergey should know better about this subject, though?

Can confirm the crash here, but think you are doing some very bad things in this script - rendering is called from threaded context, modifying the scene itself from there is calling for problems imho. @Sergey should know better about this subject, though?
Author

yea, i know, it's not quite nice solution, but i can't find any other way to get hair root position on uv for child particles. uv_on_emitter accepts only Particles..
anyway, the whole project is here, if interested: https:*github.com/uhlik/blendmaxwell

yea, i know, it's not quite nice solution, but i can't find any other way to get hair root position on uv for child particles. uv_on_emitter accepts only Particles.. anyway, the whole project is here, if interested: [https:*github.com/uhlik/blendmaxwell ](https:*github.com/uhlik/blendmaxwell)

Added subscriber: @brecht

Added subscriber: @brecht

Your script is exporting data in the render() method, but you should use the update() method for that, which ensures the UI is locked while you are making changes to the scene.

Your script is exporting data in the `render()` method, but you should use the `update()` method for that, which ensures the UI is locked while you are making changes to the scene.

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
Sergey Sharybin self-assigned this 2015-09-21 15:55:19 +02:00

As @brecht pointed out already you simply misusing the API. render() shouldn't access any blender data, it'll never be safe. Use update() callback to synchronize blender scene to your renderer.

Thanks for the report, but closing it now.

As @brecht pointed out already you simply misusing the API. `render()` shouldn't access any blender data, it'll never be safe. Use `update()` callback to synchronize blender scene to your renderer. Thanks for the report, but closing it now.
Author

hi, what you mean is, put everything to update() and leave render() empty, right? i am exporting file for external renderer anyway. but when i do that, it crashes the same way as before..

btw, i put everything in render() because example in documentation says: 'This is the only method called by blender, ...'

hi, what you mean is, put everything to `update()` and leave `render()` empty, right? i am exporting file for external renderer anyway. but when i do that, it crashes the same way as before.. btw, i put everything in `render()` because example in documentation says: 'This is the only method called by blender, ...'
Sign in to join this conversation.
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#46176
No description provided.