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
315 stars 36 forks source link

Breaks on loading D750 image #139

Closed johannspies closed 7 years ago

johannspies commented 7 years ago

I have compiled photoflow with the debug option and started it using run_photoflow.sh. Upon loading the first image I tried (from a Nikon D750) it broke shortly after fetching the image.

The log is attached. pf.log.txt

aferrero2707 commented 7 years ago

Could you try running photoflow through gdb, and send me the full stack backtrace of the crash? You can use this commands:

set pagination off
set logging file log.txt
set logging on
thread apply all bt full

More info here.

Also, a sample of RAW image that triggers the crash would be helpful to debug the issue from my side.

Finally, what version of VIPS are you using?

Thanks!

aferrero2707 commented 7 years ago

Did you manage to get a gdb backtrace? I have tried opening a D750 file with the current stable branch version, and it works fine:

screen shot 2017-03-29 at 21 33 00

The file was taken from here.

johannspies commented 7 years ago

On Wed, Mar 29, 2017 at 12:35:38PM -0700, aferrero2707 wrote:

Did you manage to get a gdb backtrace? I have tried opening a D750 file with the current stable branch version, and it works fine:

screen shot 2017-03-29 at 21 33 00

The file was taken from here.

Apologies for not replying. I did not get to it this week so far. Hopefully either tonight or tomorrow morning South African time (gmt+2).

Regards Johann

-- Johann Spies Telefoon: 021-808 4699 Databestuurder / Data manager Faks: 021-883 3691

Sentrum vir Navorsing oor Evaluasie, Wetenskap en Tegnologie Centre for Research on Evaluation, Science and Technology Universiteit Stellenbosch.

The integrity and confidentiality of this email is governed by these terms / Hierdie terme bepaal die integriteit en vertroulikheid van hierdie epos. http://www.sun.ac.za/emaildisclaimer

johannspies commented 7 years ago

On Fri, Mar 24, 2017 at 12:38:44AM -0700, aferrero2707 wrote:

Could you try running photoflow through gdb, and send me the full stack backtrace of the crash? You can use this commands:

set pagination off
set logging file log.txt
set logging on
thread apply all bt full

More info here.

Thanks for the link.

The logging did not work well and gdb will not accept an 'x' character.

So I used 'tee' in this way:

gdb photoflow | tee l.log

and the two logfiles are attached.

The raw file is available at

Also, a sample of RAW image that triggers the crash would be helpful to debug the issue from my side.

The file is available at https://filebin.net/ll3gzwwjlc6flfvu/D75_0325.NEF

Finally, what version of VIPS are you using?

% wajig list vips ii libvips42:amd64 8.4.5-1+b1 amd64 image processing system good for very large ones ii libvips-dev 8.4.5-1+b1 amd64 image processing system good for very large ones (dev) ii libvips-doc 8.4.5-1 all image processing system good for very large ones (doc) ii libvips-tools 8.4.5-1+b1 amd64 image processing system good for very large ones (tools)

But if I remember correctly I chose to let the build script download vips in the build process.

Regards Johann

-- J.H. Spies - Tel. 021-982 2694 / 082 782 0336 / 021-808 4699(w)
Posbus 4668, Tygervallei 7536

 "But the fruit of the Spirit is love, joy, peace,  
  longsuffering, gentleness, goodness, faith,
  Meekness, temperance: against such there is no   
  law."        Galatians 5:22,23  

GNU gdb (Debian 7.12-6) 7.12.0.20161007-git Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from photoflow...done. (gdb) r Starting program: /home/js/github/PhotoFlow/build/Debug/bin/photoflow exePath: /home/js/github/PhotoFlow/build/Debug/bin dataPath: /home/js/github/PhotoFlow/build/Debug/share/photoflow localePath: /home/js/github/PhotoFlow/build/Debug/share/locale Loading custom settings... display_profile_type=0 custom_display_profile_name= ... custom settings loaded. Starting image processor... ImageProcessor::ImageProcessor(): starting thread ImageProcessor::ImageProcessor(): thread started Image processor started. locale dir: /home/js/github/PhotoFlow/build/Debug/share/locale Calling ImageProcessor::instance().run() ImageProcessor started. stat_result=0 Open clicked. File selected: /home/js/Prente/2017/03/21/D75_0325.NEF img_zoom_in: /home/js/github/PhotoFlow/build/Debug/share/photoflow/icons/libre-zoom-in.png ImageEditor::on_realize() called. ImageEditor::open_image(): checking pfbck-X6FZ7s ImageEditor::open_image(): checking /home/js/.photoflow/cache/pfbck-X6FZ7s.info ImageEditor::open_image(): fname=/home/js/github/PhotoFlow/build/Debug/bin/photoflow ImageEditor::open_image(): checking pfraw-p6QyXt ImageEditor::open_image(): checking pfbck-qolnKr.info ImageEditor::open_image(): checking pfraw-MCNgwD ImageEditor::open_image(): checking pfraw-P6YBpe ImageEditor::open_image(): checking pfbck-X6FZ7s.info ImageEditor::open_image(): checking pfraw-oxD8wL ImageEditor::open_image(): checking pfbck-neogw4.info ImageEditor::open_image(): checking pfraw-B4G82G ImageEditor::open_image(): checking pfbck-PSuLBW ImageEditor::open_image(): checking /home/js/.photoflow/cache/pfbck-PSuLBW.info ImageEditor::open_image(): checking pfraw-uTQm2g ImageEditor::open_image(): checking pfbck-BM5bq2 ImageEditor::open_image(): checking /home/js/.photoflow/cache/pfbck-BM5bq2.info ImageEditor::open_image(): checking pfbck-7LUhLB ImageEditor::open_image(): checking /home/js/.photoflow/cache/pfbck-7LUhLB.info ImageEditor::open_image(): fname=/home/js/Pictures/2017/03/21/D75_0325.NEF ImageEditor::open_image(): bckname=/home/js/.photoflow/cache/pfbck-7LUhLB ImageEditor::open_image(): opening image /home/js/Pictures/2017/03/21/D75_0325.NEF ... ext: nef ImageEditor::open_image(): ... done. layers.size()=2 ImageEditor::open_image(): calling "RAW loader"->set_hidden( 0 ) ImageEditor::open_image(): updating image Active image: 0x555558b42c00 ImageEditor::on_map() called. ImageEditor::on_map(): toplevel window configured. ImageEditor::on_map(): parent window configured. ImageReaderPar::build(): creating new RawImage for file /home/js/Pictures/2017/03/21/D75_0325.NEF RawImage::RawImage(): opening file "/home/js/Pictures/2017/03/21/D75_0325.NEF" RawImage::RawImage(): RAWSpeed camera file: /home/js/github/PhotoFlow/build/Debug/share/photoflow/rawspeed/cameras.xml PreviewScrolledWindow::on_map() called. Active image: 0x555558b42c00 RawSpeed camera WB multipliers: 2.04688 1 1.24609 1 RawSpeed black=600 white=15520 original width: 6032 crop offset: 0 cropped width: 6032 RawImage: cache file: /home/js/.photoflow/cache/pfraw-Y987cL Saving raw data to buffer... Raw buffer allocated: 0x7fff9980d010 RawImage: crop_x=0 crop_y=0 Starting CA correction... width=6032 height=4032 filters=2492765332 CA correction parameters fitted. ... CA correction finished i=0 j=0 par: 0.320177 -0.004815 -0.000207 0.000006 -0.203434 0.024916 -0.001048 0.000012 0.017374 -0.002117 0.000085 -0.000001 -0.000338 0.000041 -0.000002 0.000000 i=0 j=1 par: 0.465813 -0.069716 0.003388 -0.000044 -0.136160 0.011331 -0.000185 0.000001 0.009229 -0.001016 0.000016 -0.000000 -0.000161 0.000022 -0.000000 0.000000 i=1 j=0 par: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 i=1 j=1 par: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 i=2 j=0 par: -1.235951 0.132302 -0.004790 0.000048 0.386841 -0.063858 0.002594 -0.000028 -0.026161 0.004808 -0.000197 0.000002 0.000488 -0.000092 0.000004 -0.000000 i=2 j=1 par: 0.759475 -0.030273 -0.001488 0.000035 -0.316748 0.035637 -0.000914 0.000006 0.017960 -0.002427 0.000076 -0.000001 -0.000281 0.000041 -0.000001 0.000000 RawImage: rawData.GetBuffer()=0 buffer size: 97284096 bytes data->exif_maker before stripping: "NIKON CORPORATION" c: ""(0) c: "N"(78) data->exif_maker after stripping: "NIKON CORPORATION" data->exif_model before stripping: "NIKON D750" data->exif_model after stripping: "NIKON D750" maker: "NIKON CORPORATION" model: "NIKON D750" RawImage: Camera maker/model data: exif_data.exif_maker: NIKON CORPORATION exif_data.exif_model: NIKON D750 exif_data.camera_maker: Nikon exif_data.camera_model: D750 exif_data.camera_alias: D750 exif_data.camera_makermodel: Nikon D750 new_raw_image->get_nref(): 1 rebuild_chain(): Layer "RAW loader" newimgvec.size()=1 AmazeDemosaicPar::build(): filters=2492765332 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() RawPreprocessorPar: setting WB coefficients to 2.04688,1,1.24609 RawOutputPar::build(): color conversion changed, rebuilding transform cam_profile=0x7fffdc37a440 out_profile=0x7fffdc37c330 cam_profile description: color matrix built-in cam_profile colorspace: 1380401696 out_profile description: sRGB out_profile colorspace: 1380401696 RawOutputPar::build(): new transform=0x7fffdc382840 RawOutputPar::build(): transform=0x7fffdc382840 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() rebuild_chain(): Layer "RAW developer" newimgvec.size()=1 new_raw_image->get_nref(): 2 rebuild_chain(): Layer "RAW loader" newimgvec.size()=1 AmazeDemosaicPar::build(): filters=2492765332 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() RawPreprocessorPar: setting WB coefficients to 2.04688,1,1.24609 RawOutputPar::build(): color conversion changed, rebuilding transform cam_profile=0x7fffdc452e50 out_profile=0x7fffdc454510 cam_profile description: color matrix built-in cam_profile colorspace: 1380401696 out_profile description: sRGB out_profile colorspace: 1380401696 RawOutputPar::build(): new transform=0x7fffdc45a900 RawOutputPar::build(): transform=0x7fffdc45a900 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() rebuild_chain(): Layer "RAW developer" newimgvec.size()=1 ImageArea::update(): current_display_profile: sRGB ICCTransformPar::build(): matching input and output profiles, no transform needed new_raw_image->get_nref(): 3 ImagePyramid: level #1 size: 69MB (max=500MB) ImagePyramid: saving cache buffer... ImagePyramid: cache buffer saved. ImagePyramid: level #2 size: 17MB (max=500MB) ImagePyramid: saving cache buffer... ImagePyramid: cache buffer saved. ImagePyramid: level #3 size: 4MB (max=500MB) ImagePyramid: saving cache buffer... ImagePyramid: cache buffer saved. ImagePyramid: level #4 size: 1MB (max=500MB) ImagePyramid: saving cache buffer... ImagePyramid: cache buffer saved. ImagePyramid: level #5 size: 0MB (max=500MB) ImagePyramid: saving cache buffer... ImagePyramid: cache buffer saved. ImagePyramid::get_level(): processing of level #5 took 6.14254 s rebuild_chain(): Layer "RAW loader" newimgvec.size()=1 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() RawPreprocessorPar: setting WB coefficients to 2.04688,1,1.24609 RawOutputPar::build(): color conversion changed, rebuilding transform cam_profile=0x7fffddc5be30 out_profile=0x7fffddc5dd80 cam_profile description: color matrix built-in cam_profile colorspace: 1380401696 out_profile description: sRGB out_profile colorspace: 1380401696 RawOutputPar::build(): new transform=0x7fffddc64320 RawOutputPar::build(): transform=0x7fffddc64320 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() rebuild_chain(): Layer "RAW developer" newimgvec.size()=1 RawDeveloperConfigGUI::do_update(): xyz_to_cam: 0.9020 -0.2890 -0.0715 -0.4535 1.2436 0.2348 -0.0934 0.1919 0.7086 PF::RawDeveloperConfigGUI::do_update(): preset WB=2.04688,1,1.24609 PF::RawDeveloperConfigGUI::do_update(): real WB=2.04688,1,1.24609 mul2temp: coeffs[]=2.046875,1.000000,1.246094 CAM_to_XYZ: 1.2562 0.2871 0.0316 0.4499 0.9502 -0.2695 0.0438 -0.2195 1.4884 raw_image->get_nref(): 4 new_raw_image->get_nref(): 4 rebuild_chain(): Layer "RAW loader" newimgvec.size()=1 AmazeDemosaicPar::build(): filters=2492765332 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() RawPreprocessorPar: setting WB coefficients to 2.04688,1,1.24609 RawOutputPar::build(): transform=0x7fffdc382840 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() rebuild_chain(): Layer "RAW developer" newimgvec.size()=1 raw_image->get_nref(): 4 new_raw_image->get_nref(): 4 rebuild_chain(): Layer "RAW loader" newimgvec.size()=1 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() RawPreprocessorPar: setting WB coefficients to 2.04688,1,1.24609 RawOutputPar::build(): transform=0x7fffdc45a900 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() rebuild_chain(): Layer "RAW developer" newimgvec.size()=1 ICCTransformPar::build(): matching input and output profiles, no transform needed raw_image->get_nref(): 4 new_raw_image->get_nref(): 4 rebuild_chain(): Layer "RAW loader" newimgvec.size()=1 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() RawPreprocessorPar: setting WB coefficients to 2.04688,1,1.24609 RawOutputPar::build(): transform=0x7fffddc64320 RawOutputPar::set_image_hints(): out_profile_mode=1 RawOutputPar::set_image_hints(): calling rgb_image() rebuild_chain(): Layer "RAW developer" newimgvec.size()=1 RawDeveloperConfigGUI::do_update(): xyz_to_cam: 0.9020 -0.2890 -0.0715 -0.4535 1.2436 0.2348 -0.0934 0.1919 0.7086 PF::RawDeveloperConfigGUI::do_update(): preset WB=2.04688,1,1.24609 PF::RawDeveloperConfigGUI::do_update(): real WB=2.04688,1,1.24609 mul2temp: coeffs[]=2.046875,1.000000,1.246094 CAM_to_XYZ: 1.2562 0.2871 0.0316 0.4499 0.9502 -0.2695 0.0438 -0.2195 1.4884 CacheBuffer::step_cb(): vips_region_prepare() failed. [Inferior 1 (process 5383) exited with code 0205] (gdb) (gdb) (gdb) set pagination off (gdb) (gdb) set logging file log.tt (gdb) (gdb) set logging on Copying output to log.tt. (gdb) thread apply all bt full (gdb) q

Starting program: /home/js/github/PhotoFlow/build/Debug/bin/photoflow [Inferior 1 (process 4712) exited with code 0205]

aferrero2707 commented 7 years ago

Could you provide me the log files and the run_photoflow.sh script via filebin? I guess attachments are not visible here in the issue tracker...

Meanwhile, I got your RAW file and on my system I can open it without any problem.

Maybe it could be a mismatch between the VIPS version used at compile time and the library linked at runtime?

johannspies commented 7 years ago

The log files that I sent to you last time are now at

https://filebin.net/0g1uaxk3iyrhk8mw

Regards Johann -- J.H. Spies - Tel. 021-982 2694 / 082 782 0336 / 021-808 4699(w)
Posbus 4668, Tygervallei 7536

 "But the fruit of the Spirit is love, joy, peace,  
  longsuffering, gentleness, goodness, faith,
  Meekness, temperance: against such there is no   
  law."        Galatians 5:22,23  
aferrero2707 commented 7 years ago

Unfortunately, the only useful information in the logfiles is the following:

CacheBuffer::step_cb(): vips_region_prepare() failed.

This might point to some mismatch between compile-time and run-time VIPS libraries.

Do you still experience the same crashes? Have you tried running the AppImage supplied here (you have to scroll down and take the most recent one)?

johannspies commented 7 years ago

On Fri, May 19, 2017 at 02:15:12PM -0700, aferrero2707 wrote:

Unfortunately, the only useful information in the logfiles is the following:

CacheBuffer::step_cb(): vips_region_prepare() failed.

This might point to some mismatch between compile-time and run-time VIPS libraries.

Do you still experience the same crashes? Have you tried running the AppImage supplied here (you have to scroll down and take the most recent one)?

I did not try it again and went with rawtherapee.

Thanks for the link to the app. I will try it some time when I am at home and let you know.

Regards Johann -- Johann Spies Telefoon: 021-808 4699 Databestuurder / Data manager Faks: 021-883 3691

Sentrum vir Navorsing oor Evaluasie, Wetenskap en Tegnologie Centre for Research on Evaluation, Science and Technology Universiteit Stellenbosch.

The integrity and confidentiality of this email is governed by these terms / Hierdie terme bepaal die integriteit en vertroulikheid van hierdie epos. http://www.sun.ac.za/emaildisclaimer

johannspies commented 7 years ago

On Fri, May 19, 2017 at 02:15:12PM -0700, aferrero2707 wrote:

Unfortunately, the only useful information in the logfiles is the following:

CacheBuffer::step_cb(): vips_region_prepare() failed.

This might point to some mismatch between compile-time and run-time VIPS libraries.

Do you still experience the same crashes? Have you tried running the AppImage supplied here (you have to scroll down and take the most recent one)?

I tried the 20170522-app and it handled the D750 image without a problem. Thanks.

Regards Johann

-- J.H. Spies - Tel. 021-982 2694 / 082 782 0336 / 021-808 4699(w)
Posbus 4668, Tygervallei 7536

 "But as it is written, Eye hath not seen, nor ear 
  heard, neither have entered into the heart of man, the
  things which God hath prepared for them that love 
  him."      I Corinthians 2:9 
aferrero2707 commented 7 years ago

Very good, and thanks for checking!

I guess we can close this for the moment, but do not hesitate to re-open the issue in case problems appear again...