Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

houdini_plugin: boost::python::objects::class_type() #224

Closed
alexwheezy opened this issue Jun 19, 2017 · 5 comments
Closed

houdini_plugin: boost::python::objects::class_type() #224

alexwheezy opened this issue Jun 19, 2017 · 5 comments

Comments

@alexwheezy
Copy link

Description of Issue

Houdini crash when you open the USD Tree View or when you try to write to the disk through the ROP USD Output. I made the data backtrace through gdb.

Program received signal SIGSEGV, Segmentation fault.
0x00007fffc915c67c in boost::python::objects::class_type() () from /usr/local/lib/boost_1.6.10/lib/libboost_python.so.1.61.0

(gdb) backtrace
#0 0x00007fffc915c67c in boost::python::objects::class_type() ()
from /usr/local/lib/boost_1.6.10/lib/libboost_python.so.1.61.0
#1 0x00007fffc915d65d in boost::python::objects::class_base::class_base(char const*, unsigned long, boost::python::type_info const*, char const*) () from /usr/local/lib/boost_1.6.10/lib/libboost_python.so.1.61.0
#2 0x00007fff9a8f9b38 in wrapCallContext() () from /opt/pixar/usd/lib/python/pxr/Tf/tf.so
#3 0x00007fff9a8f946e in WrapModule() () from /opt/pixar/usd/lib/python/pxr/Tf/tf.so
#4 0x00007fffcc410492 in pxrInternal_v0_7__pxrReserved
::Tf_PyInitWrapModule(void ()(), char const, char const*, char const*, char const*) () from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libtf.so
#5 0x00007fffc9169563 in boost::python::handle_exception_impl(boost::function0) ()
from /usr/local/lib/boost_1.6.10/lib/libboost_python.so.1.61.0
#6 0x00007fffc916a1a6 in boost::python::detail::init_module(char const*, void ()()) ()
from /usr/local/lib/boost_1.6.10/lib/libboost_python.so.1.61.0
#7 0x00007fffbfa6d539 in PyImport_LoadDynamicModule (name=0x7fff9ba07000 "pxr.Tf.tf",
pathname=0x7fff9ba09000 "/opt/pixar/usd/lib/python/pxr/Tf/tf.so", fp=) at ./Python/importdl.c:53
#8 0x00007fffbfa6b0e9 in import_submodule (mod=mod@entry=0x7fffb2878638, subname=subname@entry=0x7fffae11dfa4 "tf",
fullname=fullname@entry=0x7fff9ba07000 "pxr.Tf.tf") at Python/import.c:2700
#9 0x00007fffbfa6b36f in ensure_fromlist (mod=mod@entry=0x7fffb2878638, fromlist=fromlist@entry=0x7fffae1688d0,
buf=buf@entry=0x7fff9ba07000 "pxr.Tf.tf", buflen=buflen@entry=6, recursive=recursive@entry=0) at Python/import.c:2606
#10 0x00007fffbfa6bfa6 in import_module_level (locals=, level=, fromlist=0x7fffae1688d0,
globals=, name=) at Python/import.c:2269
#11 PyImport_ImportModuleLevel (name=, globals=, locals=,
fromlist=0x7fffae1688d0, level=) at Python/import.c:2288
#12 0x00007fffbfa4a43f in builtin___import
(self=, args=, kwds=)
at Python/bltinmodule.c:49
#13 0x00007fffbf99b7d3 in PyObject_Call (func=0x7fffc0716050, arg=, kw=)
at Objects/abstract.c:2529
#14 0x00007fffbfa4be97 in PyEval_CallObjectWithKeywords (func=func@entry=0x7fffc0716050, arg=arg@entry=0x7fffac968bf0,
kw=kw@entry=0x0) at Python/ceval.c:3890
#15 0x00007fffbfa4ee06 in PyEval_EvalFrameEx (f=f@entry=0x7fff9b0e6c20, throwflag=throwflag@entry=0) at Python/ceval.c:2333
#16 0x00007fffbfa524fd in PyEval_EvalCodeEx (co=, globals=, locals=,
args=, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3253
#17 0x00007fffbfa52632 in PyEval_EvalCode (co=, globals=, locals=)
---Type to continue, or q to quit---
at Python/ceval.c:667
#18 0x00007fffbfa69e8c in PyImport_ExecCodeModuleEx (name=name@entry=0x7fff9b9e4000 "pxr.Tf", co=co@entry=0x7fffac930330,
pathname=pathname@entry=0x7fff9ba02000 "/opt/pixar/usd/lib/python/pxr/Tf/init.pyc") at Python/import.c:709
#19 0x00007fffbfa6a1ee in load_source_module (name=0x7fff9b9e4000 "pxr.Tf",
pathname=0x7fff9ba02000 "/opt/pixar/usd/lib/python/pxr/Tf/init.pyc", fp=) at Python/import.c:1099
#20 0x00007fffbfa6b629 in load_package (name=0x7fff9b9e4000 "pxr.Tf", pathname=) at Python/import.c:1166
#21 0x00007fffbfa6b0e9 in import_submodule (mod=mod@entry=0x7fffae15dbe8, subname=subname@entry=0x7fff9b9e4004 "Tf",
fullname=fullname@entry=0x7fff9b9e4000 "pxr.Tf") at Python/import.c:2700
#22 0x00007fffbfa6bde2 in load_next (p_buflen=, buf=0x7fff9b9e4000 "pxr.Tf", p_name=,
altmod=0x7fffae15dbe8, mod=0x7fffae15dbe8) at Python/import.c:2515
#23 import_module_level (locals=, level=, fromlist=0x7fffc071eea8, globals=,
name=0x0) at Python/import.c:2232
#24 PyImport_ImportModuleLevel (name=, globals=, locals=,
fromlist=0x7fffc071eea8, level=) at Python/import.c:2288
#25 0x00007fffbfa4a43f in builtin___import
(self=, args=, kwds=)
at Python/bltinmodule.c:49
#26 0x00007fffbf99b7d3 in PyObject_Call (func=func@entry=0x7fffc0716050, arg=arg@entry=0x7fffb3846770, kw=kw@entry=0x0)
at Objects/abstract.c:2529
#27 0x00007fffbf99b92b in call_function_tail (args=0x7fffb3846770, callable=0x7fffc0716050) at Objects/abstract.c:2561
#28 PyObject_CallFunction (callable=0x7fffc0716050, format=) at Objects/abstract.c:2585
#29 0x00007fffbfa6caf2 in PyImport_Import (module_name=module_name@entry=0x7fffae170c90) at Python/import.c:2886
#30 0x00007fffbfa6cc6a in PyImport_ImportModule (name=) at Python/import.c:2129
#31 0x00007fffcc41c683 in pxrInternal_v0_7__pxrReserved::Tf_PyLoadScriptModule(std::string const&) ()
from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libtf.so
#32 0x00007fffcc43233c in pxrInternal_v0_7__pxrReserved__::TfScriptModuleLoader::LoadUpTo(pxrInternal_v0_7__pxrReserved_::TfToken const&) () from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libtf.so
#33 0x00007fffcc4328da in pxrInternal_v0_7__pxrReserved__::TfScriptModuleLoader::LoadModulesFor(pxrInternal_v0_7__pxrReserved_::TfToken const&) () from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libtf.so
#34 0x00007fffcc432b69 in pxrInternal_v0_7__pxrReserved__::TfScriptModuleLoader::LoadModules() ()
from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libtf.so
#35 0x00007fffcc3d5cb1 in pxrInternal_v0_7__pxrReserved__::TfDlopen(std::string const&, int, std::string, bool) ()
from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libtf.so
---Type to continue, or q to quit---
#36 0x00007fffccd219d5 in pxrInternal_v0_7__pxrReserved__::PlugPlugin::Load() ()
from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libplug.so
#37 0x00007fffccd2745a in pxrInternal_v0_7__pxrReserved
_::PlugPlugin::LoadWithDependents(pxrInternal_v0_7__pxrReserved_::PlugPlugin::SeenPlugins*) () from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libplug.so
#38 0x00007fffccd27738 in pxrInternal_v0_7__pxrReserved
_::PlugPlugin::Load() ()
from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libplug.so
#39 0x00007fffcc824dc7 in pxrInternal_v0_7__pxrReserved__::Sdf_FileFormatRegistry::Info::GetFileFormat() const ()
from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libsdf.so
#40 0x00007fffcc825079 in pxrInternal_v0_7__pxrReserved
_::Sdf_FileFormatRegistry::GetFileFormat(boost::shared_ptr<pxrInternal_v0_7__pxrReserved_::Sdf_FileFormatRegistry::Info> const&) ()
from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libsdf.so
#41 0x00007fffcc828f46 in pxrInternal_v0_7__pxrReserved
_::Sdf_FileFormatRegistry::FindByExtension(std::string const&, std::string const&) () from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libsdf.so
#42 0x00007fffcc8fde4d in pxrInternal_v0_7__pxrReserved__::SdfFileFormat::FindByExtension(std::string const&, std::string const&) () from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libsdf.so
#43 0x00007fffcc903ab6 in pxrInternal_v0_7__pxrReserved__::GetFileFormatForPath(std::string const&, std::map<std::string, std::string, std::lessstd::string, std::allocator<std::pair<std::string const, std::string> > > const&) ()
from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libsdf.so
#44 0x00007fffcc916f7b in pxrInternal_v0_7__pxrReserved
_::SdfLayer::ComputeInfoToFindOrOpenLayer(std::string const&, std::map<std::string, std::string, std::lessstd::string, std::allocator<std::pair<std::string const, std::string> > > const&, pxrInternal_v0_7__pxrReserved_::SdfLayer::FindOrOpenLayerInfo*) ()
from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libsdf.so
#45 0x00007fffcc9175aa in pxrInternal_v0_7__pxrReserved
_::SdfLayer::Find(std::string const&, std::map<std::string, std::string, std::lessstd::string, std::allocator<std::pair<std::string const, std::string> > > const&) ()
from /opt/pixar/usd/third_party/houdini/plugin/../../../lib/libsdf.so
#46 0x00007fffcd867701 in pxrInternal_v0_7__pxrReserved__::GusdROP_usdoutput::openStage(double, int, int) ()
from /opt/pixar/usd/third_party/houdini/plugin/OP_gusd.so
#47 0x00007fffcd8688b3 in pxrInternal_v0_7__pxrReserved__::GusdROP_usdoutput::startRender(int, double, double) ()
from /opt/pixar/usd/third_party/houdini/plugin/OP_gusd.so
#48 0x00007ffff406968e in ROP_Node::executeSingle(double, ROP_Verbose*, SOHO_IPRList*, ROP_SohoOutput*, bool) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniOP3.so
#49 0x00007ffff40708f4 in ROP_RenderItem::render(ROP_Verbose*, int, int) const ()
---Type to continue, or q to quit---
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniOP3.so
#50 0x00007ffff4077e87 in ROP_RenderManager::renderOrder(ROP_RenderList const&, ROP_Verbose*) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniOP3.so
#51 0x00007ffff407881e in ROP_RenderManager::render(ROP_Node*, double, double, double, bool, bool, bool, bool, bool, ROP_Verbose*) () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniOP3.so
#52 0x00007ffff4062c8b in ROP_Node::renderCommand(ROP_RenderCmdParms&) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniOP3.so
#53 0x00007ffff4063b0d in ROP_Node::doRenderCommand(CMD_Args&, OP_Node*, bool) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniOP3.so
#54 0x00007ffff4063d61 in ROP_Node::cmdRender(CMD_Args&) () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniOP3.so
#55 0x00007fffe708891b in CMD_Manager::runCommand(char*) () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniPRM.so
#56 0x00007fffe70719ec in CMD_Manager::internalExecute(char const*) () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniPRM.so
#57 0x00007fffe708042f in CMD_Manager::processInput(CMD_Source*, char const*) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniPRM.so
#58 0x00007fffe7082375 in CMD_Manager::internalSendInput(char const*, bool) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniPRM.so
#59 0x00007fffe7082a83 in CMD_Manager::sendInputNoLock(char const*, bool) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniPRM.so
#60 0x00007fffe7082fd0 in CMD_Manager::executeNoLock(char const*, bool, std::ostream*, std::ostream*, bool, bool) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniPRM.so
#61 0x00007fffe708303d in void UT_TaskArena::callbackConst<CMD_Manager::execute(char const*, bool, std::ostream*, std::ostream*, bool, bool)::{lambda()#1}>(void const*) () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniPRM.so
#62 0x00007fffe28fccee in tbb::interface7::internal::task_arena_base::internal_execute (this=0x7fffffffaf90, d=...)
at ../../src/tbb/arena.cpp:821
#63 0x00007fffc8d31d8e in TBBPROXY_TaskArenaExecute () from /opt/hfs16.0.641/bin/../dsolib/./libTBBPROXY.so
#64 0x00007fffe7087196 in CMD_Manager::execute(char const*, bool, std::ostream*, std::ostream*, bool, bool) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniPRM.so
#65 0x00007ffff64d4a35 in OPUI_RenderDialog::launch(ROP_Node*, ROP_RenderMode) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniAPPS2.so
#66 0x00007ffff40663ca in ROP_Node::doRenderCback(void*, int, double, PRM_Template const*) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniOP3.so
#67 0x00007fffe724d975 in OP_Node::triggerParmCallback(PRM_Parm*, double, int, void*, UT_Options const*) ()
---Type to continue, or q to quit---
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniPRM.so
#68 0x00007ffff63076a2 in PSI2_DialogPRM::performParmCallback(PRM_Parm*, int) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniAPPS2.so
#69 0x00007ffff6383d01 in OPUI_DialogPRM2::performParmCallback(PRM_Parm*, int) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniAPPS2.so
#70 0x00007ffff62f5176 in PSI2_Dialog::triggerParmCallback(OP_Node*&, PRM_Parm*&, int, bool&) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniAPPS2.so
#71 0x00007ffff62f9f8c in PSI2_Dialog::parmChanged(int, UI_Reason, int, bool) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniAPPS2.so
#72 0x00007ffff633b88b in PSI2_Vector::changed(UI_Object*, UI_Reason, UI_DeviceEvent*) ()
from /opt/hfs16.0.641/bin/../dsolib/libHoudiniAPPS2.so
#73 0x00007fffe7ab3766 in UI_Button::endSelect(UI_Event*) () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniUI.so
#74 0x00007fffe7cd1538 in SI_ParmButton::endSelect(UI_Event*) () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniUI.so
#75 0x00007fffe7c0f9f7 in UI_Window::handleEvent(UI_Event*) () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniUI.so
#76 0x00007fffe7b983ec in UI_Queue::processNextEvent() () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniUI.so
#77 0x00007fffe7b985ec in UI_Queue::drain() () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniUI.so
#78 0x00007fffe7b98b60 in UI_Queue::eventLoop() () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniUI.so
#79 0x00007fffe79768f7 in main () from /opt/hfs16.0.641/bin/../dsolib/libHoudiniUI.so
#80 0x00007fffd8166b45 in __libc_start_main (main=0x401f30 main@plt, argc=2, argv=0x7fffffffd9e8, init=,
fini=, rtld_fini=, stack_end=0x7fffffffd9d8) at libc-start.c:287
#81 0x00000000004022fd in _start ()

System Information (OS, Hardware)

OS: Debian Jessie 8.8 3.16.43-2 (2017-04-30) x86_64 GNU/Linux

Package Versions

usd - dev branch v0.7.5

Build Flags

cmake
-DCMAKE_INSTALL_PREFIX=/opt/pixar/usd
-DTBB_ROOT_DIR=$HOME/lib/tbb2017_20170604oss
-DOPENEXR_LOCATION=$HOME/lib/OpenEXR/ilmbase-2.2.0
-DOIIO_LOCATION=$HOME/lib/oiio
-DOPENSUBDIV_ROOT_DIR=$HOME/lib/OpenSubdiv/build
-DOPENSUBDIV_INCLUDE_DIR=/home/alex/lib/OpenSubdiv
-DPTEX_LOCATION=$HOME/lib/ptex/install
-DBOOST_ROOT=/usr/local/lib/boost_1.6.10
-DPXR_VALIDATE_GENERATED_CODE=OFF
-DPXR_BUILD_HOUDINI_PLUGIN=ON
-DHOUDINI_ROOT=/opt/hfs16.0.641
-DPXR_BUILD_TESTS=ON
$HOME/USD-dev

@jtran56
Copy link

jtran56 commented Jun 19, 2017

Filed as internal issue #147709.

@spiffmon
Copy link
Member

Hi Alex,
Our fx gurus think that you may need to build out USD specially/specifically for Houdini by pointing the USD build at Houdini's shipping boost and python versions.

Please let us know if that solves the problem?

--spiff

@alexwheezy
Copy link
Author

Thanks for the answer!

I tried to rebuild in different ways, but it does not bring results. The error was the same. I tried inside the Houdini through the console to import the module pxr: from pxr import *. And this causes the same error.

@ChrisMKing
Copy link

Hey Alex. I'm pretty sure the problem is a collision of python versions. I suspect that USD is loading one python library and Houdini is loading a different one.

I think there are two ways that you can work around this.

  1. When you run Houdini, you can explicitly tell it what python library to use with the HOUDINI_PYTHON_LIB environment variable. This is what we do at Pixar.

  2. You can build USD with version of Houdini that ships in their dsolibs directory. You would also need to build boost-python so that it points at that Houdini lib.

I know you said you tried some of this and it didn't work so maybe I'm wrong.

I have gotten myself into a similar situation and I was able to find the culprit but running ldd on the libs in my USD inst directory. That is how I noticed boost-python was dragging in the wrong python lib. strace might also be useful in situations like this.

@sunyab
Copy link
Contributor

sunyab commented Aug 31, 2020

Closing out old issue, USD no longer includes a Houdini plugin in favor of native USD support in Houdini Solaris.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants