blender osl script node crash (osl 1.6.9) #47181

Closed
opened 2016-01-14 22:33:58 +01:00 by Ronny G · 8 comments

System Information
ubuntu 14.04 630gt

Blender Version
Broken: master + new lib
Worked: 2.76

Short description of error

just by doing something stupid like this blender crashes - with the older lib it just printed an error in the terminal

shader name()
{

point P;

}

or

shader name(output float Out = 0)
{

vector i = 0;

Out = i;

}

Exact steps for others to reproduce the error

open the blend file and execute the scripts

oslcrash.blend

**System Information** ubuntu 14.04 630gt **Blender Version** Broken: master + new lib Worked: 2.76 **Short description of error** just by doing something stupid like this blender crashes - with the older lib it just printed an error in the terminal ``` shader name() { point P; } ``` or ``` shader name(output float Out = 0) { vector i = 0; Out = i; } ``` **Exact steps for others to reproduce the error** open the blend file and execute the scripts [oslcrash.blend](https://archive.blender.org/developer/F274494/oslcrash.blend)
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @nudelZ

Added subscriber: @nudelZ

Added subscriber: @ThomasDinges

Added subscriber: @ThomasDinges
Member

Added subscriber: @LukasStockner

Added subscriber: @LukasStockner
Lukas Stockner self-assigned this 2016-01-16 01:14:03 +01:00
Member

This error is caused by a change to the error handling of OSL (not surprising, since the error is triggered by any faulty OSL shader) - to be more specific, by this commit (in OSL since 1.6.2 afaics): 86b528b2d8
The OSLCompiler constructor now expects an OIIO ErrorHandler pointer, which is set to NULL by default (which makes no sense at all to me, since this pointer is used later without a NULL check :/ ).
Previously, it just dumped the error to stderr. On the one hand, this is pretty useful since it allows nicer error display in the UI - however, since no pointer is passed currently, it obviously will crash.

I'll implement a simple ErrorHandler for now to fix the bug, we can get fancier with error handling later on.

This error is caused by a change to the error handling of OSL (not surprising, since the error is triggered by any faulty OSL shader) - to be more specific, by this commit (in OSL since 1.6.2 afaics): https://github.com/imageworks/OpenShadingLanguage/commit/86b528b2d86a01f02be1bbbc5f977a978bdb28d9 The OSLCompiler constructor now expects an OIIO ErrorHandler pointer, which is set to NULL by default (which makes no sense at all to me, since this pointer is used later without a NULL check :/ ). Previously, it just dumped the error to stderr. On the one hand, this is pretty useful since it allows nicer error display in the UI - however, since no pointer is passed currently, it obviously will crash. I'll implement a simple ErrorHandler for now to fix the bug, we can get fancier with error handling later on.

This issue was referenced by 70e16b3c99

This issue was referenced by 70e16b3c99d3d81837c1b00bb1faaa143dc214ec
Member

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'

This issue was referenced by blender/cycles@df6fb6918c

This issue was referenced by blender/cycles@df6fb6918cc19a334a8ca8bdd3cdeadcf73bf7e2
Sign in to join this conversation.
4 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: blender/blender#47181
No description provided.