aferrero2707 / PhotoFlow

A fully non-destructive photo retouching program providing a complete layer-based workflow including RAW image development.
http://aferrero2707.github.io/PhotoFlow
GNU General Public License v3.0
309 stars 36 forks source link

Photoflow exits with error message and return code 134 #106

Closed SvenPuschmann closed 8 years ago

SvenPuschmann commented 8 years ago

How to reproduce:

  1. Run Photoflow from command line.
  2. Open an image in Photoflow.
  3. Exit the program by its Exit button.

Expected behaviour: The program terminates without error message and exit code 0.

Actual behaviour: The program terminates with the error message: "VIPS:ERROR:buffer.c:377:vips_buffer_undone: assertion failed: (cache->thread == g_thread_self())" and exit code 134.

Here is the complete debug output after clicking the exit button: MainWindow::on_delete_event(): npages=1 MainWindow::on_delete_event(): tab=0 w=0x4043920 MainWindow::on_delete_event(): removing tab #0 PF::MainWindow::remove_tab() called. editor->get_image()->is_modified(): 0 Active image: 0 PF::Image::update(): waiting for rebuild_done.... ~ImageEditor(): deleting image Pipeline::~Pipeline() called. Pipeline::~Pipeline(): unref of nodes[i]->image Pipeline::~Pipeline(): deleting processor ImageReaderPar::~ImageReaderPar(): raster_image=0x7f399400ead0 ImageReaderPar::~ImageReaderPar(): raster_image->get_nref()=2 ~OpParBase(): deleting operation 0x7f3994001300 Pipeline::~Pipeline(): processor deleted Pipeline::~Pipeline(): deleting blender ~OpParBase(): deleting operation 0x7f3994009510 Pipeline::~Pipeline(): blender deleted Pipeline::~Pipeline(): deleting sinks Pipeline::~Pipeline(): deleting sink #0 Pipeline::~Pipeline(): sink #0 deleted Pipeline::~Pipeline(): all sinks deleted Pipeline::~Pipeline() called. Pipeline::~Pipeline(): unref of nodes[i]->image Pipeline::~Pipeline(): deleting processor ImageReaderPar::~ImageReaderPar(): raster_image=0x7f399400ead0 ImageReaderPar::~ImageReaderPar(): raster_image->get_nref()=1 ~OpParBase(): deleting operation 0x7f39940d7bb0 Pipeline::~Pipeline(): processor deleted Pipeline::~Pipeline(): deleting blender ~OpParBase(): deleting operation 0x7f39940e3630 Pipeline::~Pipeline(): blender deleted Pipeline::~Pipeline(): deleting sinks Pipeline::~Pipeline(): deleting sink #0 Deleting image area ** VIPS:ERROR:buffer.c:377:vips_buffer_undone: assertion failed: (cache->thread == g_thread_self())

I've built with the latest git master branches of Photoflow and VIPS.

Is this something that happens only to me or do others have the same problem?

aferrero2707 commented 8 years ago

Could you try with the "stable" photoflow branch?

The master brach corresponds to the official release 0.2.6, which is rather old now. As I'm planning a new release in few days from now, which will be based on the current stable branch, it would be interesting to know if the problem is still present in stable or not.

Thanks!

SvenPuschmann commented 8 years ago

I tried, but now the build breaks at gexiv2. It claims that aclocal 1.14 is missing:

CDPATH="${ZSH_VERSION+.}:" && cd $Workspace/PhotoFlow/src/external/gexiv2 && /bin/bash $Workspace/PhotoFlow/src/external/gexiv2/build-aux/missing aclocal-1.14 -I m4 $Workspace/PhotoFlow/src/external/gexiv2/build-aux/missing: Zeile 81: aclocal-1.14: Kommando nicht gefunden. WARNING: 'aclocal-1.14' is missing on your system. You should only need it if you modified 'acinclude.m4' or 'configure.ac' or m4 files included by 'configure.ac'. The 'aclocal' program is part of the GNU Automake package: http://www.gnu.org/software/automake It also requires GNU Autoconf, GNU m4 and Perl in order to run: http://www.gnu.org/software/autoconf http://www.gnu.org/software/m4/ http://www.perl.org/

$Workspace is a placeholder for my actual workspace path. I have automake 1.15, libgexiv2-2 (version 0.10.3-2) and libgexiv2-dev installed on my system. However aclocal is not found. Is there a way to either use automake >1.14 or skip the gexiv2 build if I have it already installed here?

aferrero2707 commented 8 years ago

Please pass "-DBUNDLED_GEXIV2=OFF" to the cmake invocation.

I should make the bundled GExiv2 an option, not the default.

There reason for having it is that some Ubuntu PPA mess-up with the versions of EXIV2 and GExiv2 libraries.

Joermungand commented 8 years ago

Here’s a quick workaround I use in the PKGBUILD for Arch:

sed -i "s/am__api_version='1.14'/am__api_version='1.15'/" src/external/gexiv2/configure

just before issuing the cmake command.

On 05/09/16 15:59, scit2010 wrote:

I tried, but now the build breaks at gexiv2. It claims that aclocal 1.14 is missing:

CDPATH="${ZSH_VERSION+.}:" && cd /PhotoFlow/src/external/gexiv2 && /bin/bash /PhotoFlow/src/external/gexiv2/build-aux/missing aclocal-1.14 -I m4 /PhotoFlow/src/external/gexiv2/build-aux/missing: Zeile 81: aclocal-1.14: Kommando nicht gefunden. WARNING: 'aclocal-1.14' is missing on your system. You should only need it if you modified 'acinclude.m4' or 'configure.ac' or m4 files included by 'configure.ac'. The 'aclocal' program is part of the GNU Automake package: http://www.gnu.org/software/automake It also requires GNU Autoconf, GNU m4 and Perl in order to run: http://www.gnu.org/software/autoconf http://www.gnu.org/software/m4/ http://www.perl.org/

is a placeholder for my actual workspace path. I have automake 1.15, libgexiv2-2 (version 0.10.3-2) and libgexiv2-dev installed on my system. However aclocal is not found. Is there a way to skip the gexiv2 build if I have it already installed here?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/aferrero2707/PhotoFlow/issues/106#issuecomment-244741327, or mute the thread https://github.com/notifications/unsubscribe-auth/AKx0Rp_pAY8aP-aMp-eYjnFtQOrEMYcSks5qnBIlgaJpZM4J057D.

SvenPuschmann commented 8 years ago

Thank you. I've extended the cmake invocation as proposed by aferrero2707 and integrated it into my latest pull request.

aferrero2707 commented 8 years ago

@Joermungand for Arch there is actually no reason for using the bundled Gexiv2, which as I said should be made not the default (I will include this in the next bunch of commits).

So please use "-DBUNDLED_GEXIV2=OFF" for your Arch builds as well...

Thanks!

Joermungand commented 8 years ago

Will do. Thank you. This will also reduce compile time a bit.

On 05/09/16 17:19, aferrero2707 wrote:

@Joermungand https://github.com/Joermungand for Arch there is actually no reason for using the bundled Gexiv2, which as I said should be made not the default (I will include this in the next bunch of commits).

So please use "-DBUNDLED_GEXIV2=OFF" for your Arch builds as well...

Thanks!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/aferrero2707/PhotoFlow/issues/106#issuecomment-244757706, or mute the thread https://github.com/notifications/unsubscribe-auth/AKx0Ru866tvdT1mGdoVU601pNXMqPKAQks5qnCTwgaJpZM4J057D.

SvenPuschmann commented 8 years ago

OK, back to my original problem: yes, the error also occurs in the stable branch. I'm on a current Debian testing, 64 bit.

aferrero2707 commented 8 years ago

Could you compile with -DCMAKE_BUILD_TYPE=Debug, run photoflow through gdb and send me the output of the "bt" gdb command after the crash occurs? This will help me locate the origin of the problem, which I cannot reproduce on my system...

SvenPuschmann commented 8 years ago

Here is the debug output: Issue 106 - gdb report of program exit.txt

The error only occurs when I use the self compiled VIPS from latest git master, not the packaged one from Debian.

aferrero2707 commented 8 years ago

I have pushed a fix for the crash at program exit, could you recompile the stable branch and check if it works for you?

Thanks!

SvenPuschmann commented 8 years ago

It works fine now, thank you!