Ubuntu 14.04 opencolorio segfaults blender on parsing colormanagement/config.ocio #38370

Closed
opened 2014-01-27 11:24:25 +01:00 by Martijn Berger · 29 comments
Member

System Information
Operating system and graphics card
Ubuntu Linux 14.4 beta x64

Blender Version
Broken: 029a7bbade
Worked: ubuntu 13.10 libopencolorio with any blender up untill yesterday

Short description of error
It seems ubuntu 14.04 bundled libopencolorio crashes on loading colormanagement/config.ocio.
Removing this file fixes the problem.

Exact steps for others to reproduce the error
Build blender on ubuntu 14.04 with opencolorio.

  from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.5
  • 2 0x00007ffff3a78065 in YAML::detail::memory::create_node() () from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.5
  • 3 0x00007ffff3ac77e0 in YAML::NodeBuilder::Push(unsigned long) () from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.5
    #4 0x00007ffff3ac87c0 in YAML::NodeBuilder::OnMapStart(YAML::Mark const&, std::string const&, unsigned long) ()
  from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.5

#5 0x00007fffeac3fb07 in YAML::SingleDocParser::HandleNode(YAML::EventHandler&) ()

  from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.3

#6 0x00007fffeac400a8 in YAML::SingleDocParser::HandleDocument(YAML::EventHandler&) ()

  from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.3

#7 0x00007fffeac00e9d in YAML::Parser::HandleNextDocument(YAML::EventHandler&) ()

  from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.3
  • 8 0x00007fffeac00ef4 in YAML::Parser::GetNextDocument(YAML::Node&) () from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.3
  • 9 0x00007ffff3d6ee8c in OpenColorIO::v1::Config::Impl::load(std::istream&, char const*) () from /usr/lib/libOpenColorIO.so.1
  • 10 0x00007ffff3d7171f in OpenColorIO::v1::Config::CreateFromFile(char const*) () from /usr/lib/libOpenColorIO.so.1
  • 11 0x00000000033f5380 in OCIOImpl::configCreateFromFile (this=0x6d0caf0,
    filename=0x7fffffffd550 "/home/mberger/src/blender-build/build/bin/2.69/datafiles/colormanagement/config.ocio")
    at /home/mberger/src/blender-build/blender/intern/opencolorio/ocio_impl.cc:124

#12 0x00000000033f356f in OCIO_configCreateFromFile (

    filename=0x7fffffffd550 "/home/mberger/src/blender-build/build/bin/2.69/datafiles/colormanagement/config.ocio")
    at /home/mberger/src/blender-build/blender/intern/opencolorio/ocio_capi.cc:72

#13 0x00000000025af7f5 in colormanagement_init ()

    at /home/mberger/src/blender-build/blender/source/blender/imbuf/intern/colormanagement.c:650
  • 14 0x00000000025c1bdc in IMB_init () at /home/mberger/src/blender-build/blender/source/blender/imbuf/intern/module.c:37
  • 15 0x0000000001914bbd in main (argc=1, argv=0x7fffffffdaa8)
    at /home/mberger/src/blender-build/blender/source/creator/creator.c:1583
**System Information** Operating system and graphics card Ubuntu Linux 14.4 beta x64 **Blender Version** Broken: 029a7bbade920385a4852484cc19b138be8a9558 Worked: ubuntu 13.10 libopencolorio with any blender up untill yesterday **Short description of error** It seems ubuntu 14.04 bundled libopencolorio crashes on loading colormanagement/config.ocio. Removing this file fixes the problem. **Exact steps for others to reproduce the error** Build blender on ubuntu 14.04 with opencolorio. - 0 0x00007ffff0a9ec5a in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 - 1 0x00007ffff3a78543 in std::_Rb_tree<boost::shared_ptr<YAML::detail::node>, boost::shared_ptr<YAML::detail::node>, std::_Identity<boost::shared_ptr<YAML::detail::node> >, std::less<boost::shared_ptr<YAML::detail::node> >, std::allocator<boost::shared_ptr<YAML::detail::node> > >::_M_get_insert_unique_pos(boost::shared_ptr<YAML::detail::node> const&) () ``` from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.5 ``` - 2 0x00007ffff3a78065 in YAML::detail::memory::create_node() () from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.5 - 3 0x00007ffff3ac77e0 in YAML::NodeBuilder::Push(unsigned long) () from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.5 #4 0x00007ffff3ac87c0 in YAML::NodeBuilder::OnMapStart(YAML::Mark const&, std::string const&, unsigned long) () ``` from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.5 ``` #5 0x00007fffeac3fb07 in YAML::SingleDocParser::HandleNode(YAML::EventHandler&) () ``` from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.3 ``` #6 0x00007fffeac400a8 in YAML::SingleDocParser::HandleDocument(YAML::EventHandler&) () ``` from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.3 ``` #7 0x00007fffeac00e9d in YAML::Parser::HandleNextDocument(YAML::EventHandler&) () ``` from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.3 ``` - 8 0x00007fffeac00ef4 in YAML::Parser::GetNextDocument(YAML::Node&) () from /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.3 - 9 0x00007ffff3d6ee8c in OpenColorIO::v1::Config::Impl::load(std::istream&, char const*) () from /usr/lib/libOpenColorIO.so.1 - 10 0x00007ffff3d7171f in OpenColorIO::v1::Config::CreateFromFile(char const*) () from /usr/lib/libOpenColorIO.so.1 - 11 0x00000000033f5380 in OCIOImpl::configCreateFromFile (this=0x6d0caf0, ``` filename=0x7fffffffd550 "/home/mberger/src/blender-build/build/bin/2.69/datafiles/colormanagement/config.ocio") at /home/mberger/src/blender-build/blender/intern/opencolorio/ocio_impl.cc:124 ``` #12 0x00000000033f356f in OCIO_configCreateFromFile ( ``` filename=0x7fffffffd550 "/home/mberger/src/blender-build/build/bin/2.69/datafiles/colormanagement/config.ocio") at /home/mberger/src/blender-build/blender/intern/opencolorio/ocio_capi.cc:72 ``` #13 0x00000000025af7f5 in colormanagement_init () ``` at /home/mberger/src/blender-build/blender/source/blender/imbuf/intern/colormanagement.c:650 ``` - 14 0x00000000025c1bdc in IMB_init () at /home/mberger/src/blender-build/blender/source/blender/imbuf/intern/module.c:37 - 15 0x0000000001914bbd in main (argc=1, argv=0x7fffffffdaa8) ``` at /home/mberger/src/blender-build/blender/source/creator/creator.c:1583 ```
Author
Member

Changed status to: 'Open'

Changed status to: 'Open'
Author
Member

Added subscriber: @MartijnBerger

Added subscriber: @MartijnBerger
Author
Member

Also fixing the things ociocheck complains about does not fix the issue

Also fixing the things ociocheck complains about does not fix the issue

Added subscriber: @brecht

Added subscriber: @brecht

Are OpenColorIO and Blender compiled with the same Boost version?

Are OpenColorIO and Blender compiled with the same Boost version?
Author
Member

so yes both with 1.54 although it might be solved if libopencolorio is rebuild and only a result of dependencies being upgraded or it might be a real bug in ubuntu.
Ill further my investigation and try rebuilding ocio local and force installing it to see it that helps

so yes both with 1.54 although it might be solved if libopencolorio is rebuild and only a result of dependencies being upgraded or it might be a real bug in ubuntu. Ill further my investigation and try rebuilding ocio local and force installing it to see it that helps
Author
Member

Rebuilding libyaml-cpp0.3 does fix the issue for me. I am unsure how / what we should report to Ubuntu bugtracker

Rebuilding libyaml-cpp0.3 does fix the issue for me. I am unsure how / what we should report to Ubuntu bugtracker
Martijn Berger changed title from Ubuntu 14.04 opencolorio segfauults blender on parsing colormanagement/config.ocio to Ubuntu 14.04 opencolorio segfaults blender on parsing colormanagement/config.ocio 2014-02-03 19:35:34 +01:00
Author
Member

Also setting the cmake variable helps

OPENCOLORIO_YAML-CPP_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.3

Also setting the cmake variable helps OPENCOLORIO_YAML-CPP_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.3
Bastien Montagne was assigned by Martijn Berger 2014-02-07 14:39:27 +01:00
Author
Member

Added subscriber: @mont29

Added subscriber: @mont29
Author
Member

This seems to have to do more with ubuntu having 2 versions of libyaml-cpp and that we have to consistently use the one opencolorio uses then that it is a real bug.

We need to make sure install-deps.sh uses libyaml-cpp0.3-dev for ubuntu 14.04 as libyaml-cpp installs 0.5 and opencolorio uses 0.3

@mont29 I hope it is ok that I pass it over to you. Iff not poke me on irc please

This seems to have to do more with ubuntu having 2 versions of libyaml-cpp and that we have to consistently use the one opencolorio uses then that it is a real bug. We need to make sure install-deps.sh uses libyaml-cpp0.3-dev for ubuntu 14.04 as libyaml-cpp installs 0.5 and opencolorio uses 0.3 @mont29 I hope it is ok that I pass it over to you. Iff not poke me on irc please

This issue was referenced by blender/blender-addons-contrib@e2e9c51900

This issue was referenced by blender/blender-addons-contrib@e2e9c519009fae68eda6c31122e5b7f833476112

This issue was referenced by e2e9c51900

This issue was referenced by e2e9c519009fae68eda6c31122e5b7f833476112

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'

Closed by commit e2e9c51900.

Closed by commit e2e9c51900.

I won’t say what I think of Ubuntu… Such things should never happen in a serious distro!!!

I won’t say what I think of Ubuntu… Such things should never happen in a serious distro!!!

Added subscriber: @pltsi

Added subscriber: @pltsi

Run into this with Fedora 19.
Blender built from 17d2e6422c

Backtrace is similar:

0 0x0000003fc1074a7a in std::local_Rb_tree_decrement (__x=0x37f9608)

  at ../../../../../libstdc++-v3/src/c++98/tree.cc:98

1 0x00007ffff56e3a53 in std::_Rb_tree<boost::shared_ptrYAML::detail::node, boost::shared_ptrYAML::detail::node, std::_Identity<boost::shared_ptrYAML::detail::node >, std::less<boost::shared_ptrYAML::detail::node >, std::allocator<boost::shared_ptrYAML::detail::node > >::_M_get_insert_unique_pos(boost::shared_ptrYAML::detail::node const&) ()

 from /lib64/libyaml-cpp.so.0.5
  • 2 0x00007ffff56e34f5 in YAML::detail::memory::create_node() () from /lib64/libyaml-cpp.so.0.5
  • 3 0x00007ffff572e3c0 in YAML::NodeBuilder::Push(unsigned long) () from /lib64/libyaml-cpp.so.0.5

4 0x00007ffff572f3a0 in YAML::NodeBuilder::OnMapStart(YAML::Mark const&, std::string const&, unsigned long) ()

 from /lib64/libyaml-cpp.so.0.5
  • 5 0x00007ffff56fc307 in YAML::SingleDocParser::HandleNode(YAML::EventHandler&) () from /lib64/libyaml-cpp.so.0.5
  • 6 0x00007ffff56fc828 in YAML::SingleDocParser::HandleDocument(YAML::EventHandler&) () from /lib64/libyaml-cpp.so.0.5
  • 7 0x00007ffff572911d in YAML::Parser::HandleNextDocument(YAML::EventHandler&) () from /lib64/libyaml-cpp.so.0.5
  • 8 0x00007ffff121ae04 in YAML::Parser::GetNextDocument(YAML::Node&) () from /lib64/libyaml-cpp.so.0.3

9 0x00007ffff597e9dc in OpenColorIO::v1::Config::Impl::load(std::istream&, char const*) ()

 from /lib64/libOpenColorIO.so.1
  • 10 0x00007ffff598126f in OpenColorIO::v1::Config::CreateFromFile(char const*) () from /lib64/libOpenColorIO.so.1
  • 11 0x0000000001a63614 in OCIOImpl::configCreateFromFile(char const*) ()
  • 12 0x00000000012b6f0c in colormanagement_init ()
  • 13 0x0000000000b8051e in main ()
Run into this with Fedora 19. Blender built from 17d2e6422cfac5c1fe2f66dba94ad76212876eca Backtrace is similar: # 0 0x0000003fc1074a7a in std::local_Rb_tree_decrement (__x=0x37f9608) ``` at ../../../../../libstdc++-v3/src/c++98/tree.cc:98 ``` # 1 0x00007ffff56e3a53 in std::_Rb_tree<boost::shared_ptr<YAML::detail::node>, boost::shared_ptr<YAML::detail::node>, std::_Identity<boost::shared_ptr<YAML::detail::node> >, std::less<boost::shared_ptr<YAML::detail::node> >, std::allocator<boost::shared_ptr<YAML::detail::node> > >::_M_get_insert_unique_pos(boost::shared_ptr<YAML::detail::node> const&) () ``` from /lib64/libyaml-cpp.so.0.5 ``` - 2 0x00007ffff56e34f5 in YAML::detail::memory::create_node() () from /lib64/libyaml-cpp.so.0.5 - 3 0x00007ffff572e3c0 in YAML::NodeBuilder::Push(unsigned long) () from /lib64/libyaml-cpp.so.0.5 # 4 0x00007ffff572f3a0 in YAML::NodeBuilder::OnMapStart(YAML::Mark const&, std::string const&, unsigned long) () ``` from /lib64/libyaml-cpp.so.0.5 ``` - 5 0x00007ffff56fc307 in YAML::SingleDocParser::HandleNode(YAML::EventHandler&) () from /lib64/libyaml-cpp.so.0.5 - 6 0x00007ffff56fc828 in YAML::SingleDocParser::HandleDocument(YAML::EventHandler&) () from /lib64/libyaml-cpp.so.0.5 - 7 0x00007ffff572911d in YAML::Parser::HandleNextDocument(YAML::EventHandler&) () from /lib64/libyaml-cpp.so.0.5 - 8 0x00007ffff121ae04 in YAML::Parser::GetNextDocument(YAML::Node&) () from /lib64/libyaml-cpp.so.0.3 # 9 0x00007ffff597e9dc in OpenColorIO::v1::Config::Impl::load(std::istream&, char const*) () ``` from /lib64/libOpenColorIO.so.1 ``` - 10 0x00007ffff598126f in OpenColorIO::v1::Config::CreateFromFile(char const*) () from /lib64/libOpenColorIO.so.1 - 11 0x0000000001a63614 in OCIOImpl::configCreateFromFile(char const*) () - 12 0x00000000012b6f0c in colormanagement_init () - 13 0x0000000000b8051e in main ()
Member

Added subscriber: @totoro-4

Added subscriber: @totoro-4
Member

Still the same with the Ubuntu 14.04 release.

In Trusty both the libyaml-cpp0.3 and the libyaml-cpp0.5 packages are available.
Because currently I have no dependencies with the 0.5 version, I simply removed it:

sudo apt-get remove libyaml-cpp0.5
sudo apt-get install libyaml-cpp0.3-dev

before compiling Blender. After compiling, it seems safe to reinstall libyaml-cpp0.5 again.

Still the same with the Ubuntu 14.04 release. In Trusty both the libyaml-cpp0.3 and the libyaml-cpp0.5 packages are available. Because currently I have no dependencies with the 0.5 version, I simply removed it: sudo apt-get remove libyaml-cpp0.5 sudo apt-get install libyaml-cpp0.3-dev before compiling Blender. After compiling, it seems safe to reinstall libyaml-cpp0.5 again.

Added subscriber: @AdamStylinski

Added subscriber: @AdamStylinski

For the record I believe this is something that should be addressed sometime soon, as distributions will not always offer a YAML library that is API compatible with 0.3. My distro of choice by default only supplies 0.5, and I'd hate to see yet another bundled static library linked in with the blender code. Any progress yet on figuring out why it crashes when parsing this file with newer libyaml-cpp's?

For the record I believe this is something that should be addressed sometime soon, as distributions will not always offer a YAML library that is API compatible with 0.3. My distro of choice by default only supplies 0.5, and I'd hate to see yet another bundled static library linked in with the blender code. Any progress yet on figuring out why it crashes when parsing this file with newer libyaml-cpp's?
Author
Member

I really do not see how this can be addressed without taking control of all mayor distributions. libyaml / boost / libopencolorio it is just dependency hell. The whole notion of trying to use the distribution provided libraries just breaks in some cases.

I really do not see how this can be addressed without taking control of all mayor distributions. libyaml / boost / libopencolorio it is just dependency hell. The whole notion of trying to use the distribution provided libraries just breaks in some cases.

Added subscriber: @hasufell

Added subscriber: @hasufell

This is simply a blender bug. Whenever cmake detects library versions that are known to be broken with blender, it has to throw a fatal error.

This is simply a blender bug. Whenever cmake detects library versions that are known to be broken with blender, it has to throw a fatal error.

Why it's broken, though, needs to be addressed. A fix upstream to libyaml-cpp, for instance. As it stands, the newest version of libyaml-cpp breaks with blender. Stagnating on an older version for the next decade is not a solution, it should be fixed.

Why it's broken, though, needs to be addressed. A fix upstream to libyaml-cpp, for instance. As it stands, the newest version of libyaml-cpp breaks with blender. Stagnating on an older version for the next decade is not a solution, it should be fixed.

Ok! Blender (actually, OCIO) can 'use' both versions of this lib. It’s up to you to choose which one when you define (or update) your build environment with install_deps (see its help) or by hand.

Once and for all: **THIS IS NOT A BLENDER BUG!**Only issue is that many distro switched to default yaml-cpp 0.5,but still had many libs (including own OCIO) using 0.3 version!

We are not responsible for such errancies and inconsistencies of distro, I even took some time to add the option to select libyaml-cpp version in install_deps, so that you can force it to the one working on your system.

Ok! Blender (actually, OCIO) can 'use' both versions of this lib. It’s up to you to choose which one when you define (or update) your build environment with install_deps (see its help) or by hand. Once and for all: **`THIS IS NOT A BLENDER BUG!`**Only issue is that many distro switched to default yaml-cpp 0.5,**but still had many libs (including own OCIO) using 0.3 version!** We are not responsible for such errancies and inconsistencies of distro, I even took some time to add the option to select libyaml-cpp version in install_deps, so that you can force it to the one working on your system.

And I'm telling you I have opencolorio built strictly against yaml-cpp 0.5, no other version, and I still have this issue. I agree with your contention though that it may not really be a blender bug.

And I'm telling you I have opencolorio built strictly against yaml-cpp 0.5, no other version, and I still have this issue. I agree with your contention though that it may not really be a blender bug.

I stand corrected, I think I'm having some CMake sandboxing issues but can't be sure. It's probably something specific to what the distro is going, you can probably disregard everything I said.

I stand corrected, I think I'm having some CMake sandboxing issues but can't be sure. It's probably something specific to what the distro is going, you can probably disregard everything I said.

Added subscriber: @Wild_Penguin

Added subscriber: @Wild_Penguin
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
9 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#38370
No description provided.