GithubHelp home page GithubHelp logo

Comments (6)

Lawrence37 avatar Lawrence37 commented on June 8, 2024

Unlike #7045, the file is closed after it is done using it.

from rawtherapee.

kaesa avatar kaesa commented on June 8, 2024

I have new information on this.

I did a new debug build with the latest dev version 5.10-208 and ran it on valgrind. It seems like the issue of the locked file is related to the thumbnails. I did some more testing to make sure to narrow down the problem. Here are the added notes:

  • The problem is reproducible if I open the RawTherapee in file browser and then open the source file to Save As jpeg.
  • The issue is not reproducible if I open the file directly with RawTherapee from file manager.
  • The issue still seems to exist only for the jpg files.
  • Opening directories with jpg files and/or opening jpg file from such directory doesn't have issues.
  • So far reproducible only after Save As has been used to generate a new jpg file.

I think this is the relevant part from the Valgrind result:

Details

==5290== at 0x7280705: open (in /usr/lib/libc.so.6)
==5290== by 0x720393E: _IO_file_open (in /usr/lib/libc.so.6)
==5290== by 0x7203AC4: _IO_file_fopen (in /usr/lib/libc.so.6)
==5290== by 0x71F7D5A: ??? (in /usr/lib/libc.so.6)
==5290== by 0xB420EA: rtengine::ImageIO::loadJPEG(Glib::ustring const&) (in /usr/local/bin/rawtherapee)
==5290== by 0xE871B0: rtengine::StdImageSource::load(Glib::ustring const&) (in /usr/local/bin/rawtherapee)
==5290== by 0xE5C0F8: rtengine::Thumbnail::loadFromImage(Glib::ustring const&, int&, int&, int, double, rtengine::StandardObserver, bool) (in /usr/local/bin/rawtherapee)
==5290== by 0x9B0A8F: Thumbnail::_generateThumbnailImage() (in /usr/local/bin/rawtherapee)
==5290== by 0x9B1CE5: Thumbnail::Thumbnail(CacheManager*, Glib::ustring const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) (in /usr/local/bin/rawtherapee)
==5290== by 0x4A824A: CacheManager::getEntry(Glib::ustring const&) (in /usr/local/bin/rawtherapee)
==5290== by 0x91734F: PreviewLoader::Impl::processNextJob() (in /usr/local/bin/rawtherapee)
==5290== by 0x5E04F41: (anonymous namespace)::call_thread_entry_slot(void*, void*) (slot.h:540)

from rawtherapee.

kaesa avatar kaesa commented on June 8, 2024

I tested and turning the file descriptor at

FILE *file = g_fopen(fname.c_str (), "rb");
into a smart pointer following the #7056 commit solved the issue in this report. I don't know if it hides other bugs though.

from rawtherapee.

Lawrence37 avatar Lawrence37 commented on June 8, 2024

That code is in the JPEG file reading function. Did you save the JPEG in the directory that is open in the RawTherapee file browser?

from rawtherapee.

kaesa avatar kaesa commented on June 8, 2024

That code is in the JPEG file reading function. Did you save the JPEG in the directory that is open in the RawTherapee file browser?

Yes. Right next to the source file.

I now tested creating a subdirectory for the open directory and when saved there, there was no locking issue. The option to show images recursively in subdirectories was not enabled. After enabling the recursive option, the locking happened in the subdirectory as well.

from rawtherapee.

Lawrence37 avatar Lawrence37 commented on June 8, 2024

Ok, it makes sense now why the freeze is happening.

from rawtherapee.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.