{"action":"created","issue":{"url":"https://api.github.com/repos/GafferHQ/gaffer/issues/1905","repository_url":"https://api.github.com/repos/GafferHQ/gaffer","labels_url":"https://api.github.com/repos/GafferHQ/gaffer/issues/1905/labels{/name}","comments_url":"https://api.github.com/repos/GafferHQ/gaffer/issues/1905/comments","events_url":"https://api.github.com/repos/GafferHQ/gaffer/issues/1905/events","html_url":"https://github.com/GafferHQ/gaffer/issues/1905","id":186272608,"number":1905,"title":"Crash when creating as_color_texture shader","user":{"login":"johnhaddon","id":1133871,"avatar_url":"https://avatars.githubusercontent.com/u/1133871?v=3","gravatar_id":"","url":"https://api.github.com/users/johnhaddon","html_url":"https://github.com/johnhaddon","followers_url":"https://api.github.com/users/johnhaddon/followers","following_url":"https://api.github.com/users/johnhaddon/following{/other_user}","gists_url":"https://api.github.com/users/johnhaddon/gists{/gist_id}","starred_url":"https://api.github.com/users/johnhaddon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johnhaddon/subscriptions","organizations_url":"https://api.github.com/users/johnhaddon/orgs","repos_url":"https://api.github.com/users/johnhaddon/repos","events_url":"https://api.github.com/users/johnhaddon/events{/privacy}","received_events_url":"https://api.github.com/users/johnhaddon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2016-10-31T12:32:32Z","updated_at":"2016-11-01T10:14:14Z","closed_at":null,"body":"Creating an as_color_texture shader leads to a crash in the shader ball preview renderer. It appears to be related to having an empty string in the filename, since if you add a non-empty string before allowing the shader ball to render, all is well. Do you have any ideas @est77?\r\n\r\nStack trace follows :\r\n\r\n```\r\n#0  0x0000003ed9e76052 in malloc_consolidate () from /lib64/libc.so.6\r\n#1  0x0000003ed9e79c28 in _int_malloc () from /lib64/libc.so.6\r\n#2  0x0000003ed9e7ab1c in malloc () from /lib64/libc.so.6\r\n#3  0x0000003ee4abb747 in __cxa_allocate_exception () from /usr/lib64/libstdc++.so.6\r\n#4  0x00007fffd59b21ee in renderer::ShaderParamParser::parse_string_value() () from /disk1/john/dev/build/gaffer/appleseed/lib/libappleseed.so\r\n#5  0x00007fffd59a9295 in renderer::Shader::Impl::Impl(char const*, char const*, char const*, renderer::ParamArray const&) () from /disk1/john/dev/build/gaffer/appleseed/lib/libappleseed.so\r\n#6  0x00007fffd59a89ff in renderer::Shader::Shader(char const*, char const*, char const*, renderer::ParamArray const&) () from /disk1/john/dev/build/gaffer/appleseed/lib/libappleseed.so\r\n#7  0x00007fffd59abd81 in renderer::ShaderGroup::add_shader(char const*, char const*, char const*, renderer::ParamArray const&) () from /disk1/john/dev/build/gaffer/appleseed/lib/libappleseed.so\r\n#8  0x00007fffd4f892bb in IECoreAppleseed::ShaderAlgo::convert(IECore::ObjectVector const*) () from /disk1/john/dev/build/gaffer/lib/libIECoreAppleseed.so\r\n#9  0x00007fffd5ed3eb3 in (anonymous namespace)::ShaderCache::get(IECore::ObjectVector const*) () from /disk1/john/dev/build/gaffer/lib/libGafferAppleseed.so\r\n#10 0x00007fffd5ed697b in (anonymous namespace)::AppleseedRenderer::attributes(IECore::CompoundObject const*) () from /disk1/john/dev/build/gaffer/lib/libGafferAppleseed.so\r\n#11 0x00007fffde27a63d in GafferScene::Preview::InteractiveRender::SceneGraph::attributesInterface(IECoreScenePreview::Renderer*) () from /disk1/john/dev/build/gaffer/lib/libGafferScene.so\r\n#12 0x00007fffde27c9f4 in GafferScene::Preview::InteractiveRender::SceneGraph::updateObject(Gaffer::TypedObjectPlug<IECore::Object> const*, GafferScene::Preview::InteractiveRender::SceneGraph::Type, IECoreScenePreview::Renderer*, IECore::CompoundObject const*) () from /disk1/john/dev/build/gaffer/lib/libGafferScene.so\r\n#13 0x00007fffde27d2f2 in GafferScene::Preview::InteractiveRender::SceneGraph::update(GafferScene::ScenePlug const*, std::vector<IECore::InternedString, std::allocator<IECore::InternedString> > const&, unsigned int, unsigned int, GafferScene::Preview::InteractiveRender::SceneGraph::Type, IECoreScenePreview::Renderer*, IECore::CompoundObject const*, GafferScene::Preview::RenderSets const&) () from /disk1/john/dev/build/gaffer/lib/libGafferScene.so\r\n#14 0x00007fffde27d81f in GafferScene::Preview::InteractiveRender::SceneGraphUpdateTask::execute() () from /disk1/john/dev/build/gaffer/lib/libGafferScene.so\r\n#15 0x00007ffff0183c10 in tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::local_wait_for_all (this=0x7fffeaae3e80, parent=..., child=<value optimized out>) at ../../src/tbb/custom_scheduler.h:474\r\n#16 0x00007fffde27da7a in GafferScene::Preview::InteractiveRender::SceneGraphUpdateTask::execute() () from /disk1/john/dev/build/gaffer/lib/libGafferScene.so\r\n#17 0x00007ffff0183c10 in tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::local_wait_for_all (this=0x7fffeaae3e80, parent=..., child=<value optimized out>) at ../../src/tbb/custom_scheduler.h:474\r\n#18 0x00007ffff018234d in tbb::internal::generic_scheduler::local_spawn_root_and_wait (this=0x7fffeaae3e80, first=..., next=@0x7fffeab07638) at ../../src/tbb/scheduler.cpp:680\r\n#19 0x00007fffde27873c in GafferScene::Preview::InteractiveRender::update() () from /disk1/john/dev/build/gaffer/lib/libGafferScene.so\r\n#20 0x00007fffde278d84 in GafferScene::Preview::InteractiveRender::plugDirtied(Gaffer::Plug const*) () from /disk1/john/dev/build/gaffer/lib/libGafferScene.so\r\n#21 0x00007fffe7eb276b in boost::signal1<void, Gaffer::Plug*, boost::last_value<void>, int, std::less<int>, boost::function<void ()(Gaffer::Plug*)> >::operator()(Gaffer::Plug*) () from /disk1/john/dev/build/gaffer/lib/libGaffer.so\r\n#22 0x00007fffe7eaf4cb in Gaffer::Plug::popDirtyPropagationScope() () from /disk1/john/dev/build/gaffer/lib/libGaffer.so\r\n#23 0x00007fffe7e61ed9 in Gaffer::DirtyPropagationScope::~DirtyPropagationScope() () from /disk1/john/dev/build/gaffer/lib/libGaffer.so\r\n#24 0x00007fffe7ead3b8 in Gaffer::Plug::propagateDirtiness(Gaffer::Plug*) () from /disk1/john/dev/build/gaffer/lib/libGaffer.so\r\n#25 0x00007fffe7ee96d4 in Gaffer::ValuePlug::SetValueAction::doAction() () from /disk1/john/dev/build/gaffer/lib/libGaffer.so\r\n#26 0x00007fffe7e286e2 in Gaffer::Action::enact(boost::intrusive_ptr<Gaffer::Action>) () from /disk1/john/dev/build/gaffer/lib/libGaffer.so\r\n#27 0x00007fffe7ee494e in Gaffer::ValuePlug::setObjectValue(boost::intrusive_ptr<IECore::Object const>) () from /disk1/john/dev/build/gaffer/lib/libGaffer.so\r\n#28 0x00007fffe7ea5dc7 in Gaffer::NumericPlug<int>::setValue(int) () from /disk1/john/dev/build/gaffer/lib/libGaffer.so\r\n#29 0x00007fffd9575a6b in GafferSceneUI::ShaderView::updateRendererState() () from /disk1/john/dev/build/gaffer/lib/libGafferSceneUI.so\r\n#30 0x00007fffe5310ec6 in boost::signal0<void, boost::last_value<void>, int, std::less<int>, boost::function<void ()()> >::operator()() () from /disk1/john/dev/build/gaffer/lib/libGafferUI.so\r\n#31 0x00007fffe3a5f0d1 in GafferBindings::Detail::DefaultSignalCallerBase<0, boost::signal<void ()(), boost::last_value<void>, int, std::less<int>, boost::function<void ()()> > >::call(boost::signal<void ()(), boost::last_value<void>, int, std::less<int>, boost::function<void ()()> >&) () from /disk1/john/dev/build/gaffer/lib/libGafferUIBindings.so\r\n#32 0x00007fffe3a4a634 in boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void (*)(boost::signal<void ()(), boost::last_value<void>, int, std::less<int>, boost::function<void ()()> >&), boost::python::default_call_policies, boost::mpl::vector2<void, boost::signal<void ()(), boost::last_value<void>, int, std::less<int>, boost::function<void ()()> >&> > >::operator()(_object*, _object*) () from /disk1/john/dev/build/gaffer/lib/libGafferUIBindings.so\r\n#33 0x00007fffef3e3171 in boost::python::objects::function::call(_object*, _object*) const () from /disk1/john/dev/build/gaffer/lib/libboost_python.so.1.55.0\r\n#34 0x00007fffef3e35f8 in boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) () from /disk1/john/dev/build/gaffer/lib/libboost_python.so.1.55.0\r\n#35 0x00007fffef3ebfd3 in boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const () from /disk1/john/dev/build/gaffer/lib/libboost_python.so.1.55.0\r\n#36 0x00007fffed3f0527 in boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<IECore::Exception, void (*)(IECore::Exception const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(IECore::Exception const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) () from /disk1/john/dev/build/gaffer/lib/libIECorePython.so\r\n#37 0x00007fffef3ebd93 in boost::python::handle_exception_impl(boost::function0<void>) () from /disk1/john/dev/build/gaffer/lib/libboost_python.so.1.55.0\r\n#38 0x00007fffef3e12e8 in function_call () from /disk1/john/dev/build/gaffer/lib/libboost_python.so.1.55.0\r\n#39 0x00007ffff7c63953 in PyObject_Call (func=0x3e00230, arg=<value optimized out>, kw=<value optimized out>) at Objects/abstract.c:2529\r\n#40 0x00007ffff7c7607f in instancemethod_call (func=0x3e00230, arg=0x6541dd0, kw=0x0) at Objects/classobject.c:2602\r\n#41 0x00007ffff7c63953 in PyObject_Call (func=0x2ed4280, arg=<value optimized out>, kw=<value optimized out>) at Objects/abstract.c:2529\r\n#42 0x00007ffff7cd00fc in slot_tp_call (self=0x6ce5b40, args=0x7ffff7bbd050, kwds=0x0) at Objects/typeobject.c:5432\r\n#43 0x00007ffff7c63953 in PyObject_Call (func=0x6ce5b40, arg=<value optimized out>, kw=<value optimized out>) at Objects/abstract.c:2529\r\n#44 0x00007ffff7d12a79 in do_call (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:4239\r\n#45 call_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:4044\r\n#46 PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:2666\r\n#47 0x00007ffff7d1511e in PyEval_EvalCodeEx (co=0x1c74130, globals=<value optimized out>, locals=<value optimized out>, args=<value optimized out>, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3253\r\n#48 0x00007ffff7c92e11 in function_call (func=0x1c765f0, arg=0x7ffff7bbd050, kw=0x0) at Objects/funcobject.c:526\r\n#49 0x00007ffff7c63953 in PyObject_Call (func=0x1c765f0, arg=<value optimized out>, kw=<value optimized out>) at Objects/abstract.c:2529\r\n#50 0x00007ffff7d0cda3 in PyEval_CallObjectWithKeywords (func=0x1c765f0, arg=0x7ffff7bbd050, kw=<value optimized out>) at Python/ceval.c:3890\r\n#51 0x00007fffdfd1bba4 in PySide::SignalManager::callPythonMetaMethod(QMetaMethod const&, void**, _object*, bool) () from /disk1/john/dev/build/gaffer/lib/libpyside-python2.7.so.1.2\r\n#52 0x00007fffdfd20f68 in PySide::GlobalReceiverV2::qt_metacall(QMetaObject::Call, int, void**) () from /disk1/john/dev/build/gaffer/lib/libpyside-python2.7.so.1.2\r\n#53 0x00007fffe4f393fc in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /disk1/john/dev/build/gaffer/lib/libQtCore.so.4\r\n#54 0x00007fffe00c6003 in QTimerWrapper::timerEvent(QTimerEvent*) () from /disk1/john/dev/build/gaffer/python/PySide/QtCore.so\r\n#55 0x00007fffe4f35779 in QObject::event(QEvent*) () from /disk1/john/dev/build/gaffer/lib/libQtCore.so.4\r\n#56 0x00007fffe00c5b53 in QTimerWrapper::event(QEvent*) () from /disk1/john/dev/build/gaffer/python/PySide/QtCore.so\r\n#57 0x00007fffe42eb79c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /disk1/john/dev/build/gaffer/lib/libQtGui.so.4\r\n#58 0x00007fffe42f1a31 in QApplication::notify(QObject*, QEvent*) () from /disk1/john/dev/build/gaffer/lib/libQtGui.so.4\r\n#59 0x00007fffdef847a6 in QApplicationWrapper::notify(QObject*, QEvent*) () from /disk1/john/dev/build/gaffer/python/PySide/QtGui.so\r\n#60 0x00007fffe4f24afc in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /disk1/john/dev/build/gaffer/lib/libQtCore.so.4\r\n#61 0x00007fffe4f532be in ?? () from /disk1/john/dev/build/gaffer/lib/libQtCore.so.4\r\n#62 0x00007fffe4f50aed in ?? () from /disk1/john/dev/build/gaffer/lib/libQtCore.so.4\r\n#63 0x0000003edb640642 in g_main_dispatch (context=0x1caf8e0) at gmain.c:2441\r\n#64 g_main_context_dispatch (context=0x1caf8e0) at gmain.c:3014\r\n#65 0x0000003edb644c98 in g_main_context_iterate (context=0x1caf8e0, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3092\r\n#66 0x0000003edb644e4c in g_main_context_iteration (context=0x1caf8e0, may_block=1) at gmain.c:3155\r\n#67 0x00007fffe4f507d3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /disk1/john/dev/build/gaffer/lib/libQtCore.so.4\r\n#68 0x00007fffe438b9ae in ?? () from /disk1/john/dev/build/gaffer/lib/libQtGui.so.4\r\n#69 0x00007fffe4f23992 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /disk1/john/dev/build/gaffer/lib/libQtCore.so.4\r\n#70 0x00007fffe4f23cf4 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /disk1/john/dev/build/gaffer/lib/libQtCore.so.4\r\n#71 0x00007fffe4f28d39 in QCoreApplication::exec() () from /disk1/john/dev/build/gaffer/lib/libQtCore.so.4\r\n#72 0x00007fffdef835b5 in Sbk_QApplicationFunc_exec_ () from /disk1/john/dev/build/gaffer/python/PySide/QtGui.so\r\n#73 0x00007ffff7d133b9 in call_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:4005\r\n#74 PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:2666\r\n#75 0x00007ffff7d1401e in fast_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:4107\r\n#76 call_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:4042\r\n#77 PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:2666\r\n#78 0x00007ffff7d1401e in fast_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:4107\r\n#79 call_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:4042\r\n#80 PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:2666\r\n#81 0x00007ffff7d1401e in fast_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:4107\r\n#82 call_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:4042\r\n#83 PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:2666\r\n#84 0x00007ffff7d1401e in fast_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:4107\r\n#85 call_function (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:4042\r\n#86 PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized out>) at Python/ceval.c:2666\r\n#87 0x00007ffff7d1511e in PyEval_EvalCodeEx (co=0x6b6930, globals=<value optimized out>, locals=<value optimized out>, args=<value optimized out>, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3253\r\n#88 0x00007ffff7d15232 in PyEval_EvalCode (co=<value optimized out>, globals=<value optimized out>, locals=<value optimized out>) at Python/ceval.c:667\r\n#89 0x00007ffff7d34d70 in run_mod (fp=0x6f9c50, filename=<value optimized out>, start=<value optimized out>, globals=0x63e570, locals=0x63e570, closeit=1, flags=0x7fffffffd5b0) at Python/pythonrun.c:1365\r\n#90 PyRun_FileExFlags (fp=0x6f9c50, filename=<value optimized out>, start=<value optimized out>, globals=0x63e570, locals=0x63e570, closeit=1, flags=0x7fffffffd5b0) at Python/pythonrun.c:1351\r\n#91 0x00007ffff7d34f4f in PyRun_SimpleFileExFlags (fp=0x6f9c50, filename=0x7fffffffdad2 \"/disk1/john/dev/build/gaffer/bin/gaffer.py\", closeit=1, flags=0x7fffffffd5b0) at Python/pythonrun.c:943\r\n#92 0x00007ffff7d4a9f4 in Py_Main (argc=<value optimized out>, argv=<value optimized out>) at Modules/main.c:640\r\n#93 0x0000003ed9e1ed5d in __libc_start_main () from /lib64/libc.so.6\r\n#94 0x0000000000400649 in _start ()\r\n```"},"comment":{"url":"https://api.github.com/repos/GafferHQ/gaffer/issues/comments/257531235","html_url":"https://github.com/GafferHQ/gaffer/issues/1905#issuecomment-257531235","issue_url":"https://api.github.com/repos/GafferHQ/gaffer/issues/1905","id":257531235,"user":{"login":"est77","id":409013,"avatar_url":"https://avatars.githubusercontent.com/u/409013?v=3","gravatar_id":"","url":"https://api.github.com/users/est77","html_url":"https://github.com/est77","followers_url":"https://api.github.com/users/est77/followers","following_url":"https://api.github.com/users/est77/following{/other_user}","gists_url":"https://api.github.com/users/est77/gists{/gist_id}","starred_url":"https://api.github.com/users/est77/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/est77/subscriptions","organizations_url":"https://api.github.com/users/est77/orgs","repos_url":"https://api.github.com/users/est77/repos","events_url":"https://api.github.com/users/est77/events{/privacy}","received_events_url":"https://api.github.com/users/est77/received_events","type":"User","site_admin":false},"created_at":"2016-11-01T10:14:13Z","updated_at":"2016-11-01T10:14:13Z","body":"Ok. Sounds good. I'll try to get everything updated in the next few days."}}
{"actor":{"display_login":"est77"}}