Closed Joelgranados closed 10 years ago
I downloaded BVZ0036-GC05L-C01~fullres-orig_2014_06_24_12_00_00_00.JPG and the image seems to be intact. It is not mangled and the exif data is all there. It might not be the image that is causing the segmentation fault, but the code that does something strange and invalid.
Could you post a gdb backtrace?
gdb `which python`
run pipeline_demo.py
bt
I am having the same problem. The segmentation fault happens randomly. This may be memory leaks or memory/hardware errors on the machine.
For example: .... 14:36:35: Expected image /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05R-C01~fullres-orig/2014/2014_06/2014_06_28/2014_06_28_05/BVZ0036-GC05R-C01~fullres-orig_2014_06_28_05_00_00_00.JPG at 2014_06_28_05_00_00 in /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05R-C01~fullres-orig did not exist. timestreamlib: WARNING: Expected image /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05R-C01~fullres-orig/2014/2014_06/2014_06_28/2014_06_28_05/BVZ0036-GC05R-C01~fullres-orig_2014_06_28_05_00_00_00.JPG at 2014_06_28_05_00_00 in /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05R-C01~fullres-orig did not exist. Missing Image 14:36:35: Expected image /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05R-C01~fullres-orig/2014/2014_06/2014_06_28/2014_06_28_05/BVZ0036-GC05R-C01~fullres-orig_2014_06_28_05_30_00_00.JPG at 2014_06_28_05_30_00 in /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05R-C01~fullres-orig did not exist. timestreamlib: WARNING: Expected image /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05R-C01~fullres-orig/2014/2014_06/2014_06_28/2014_06_28_05/BVZ0036-GC05R-C01~fullres-orig_2014_06_28_05_30_00_00.JPG at 2014_06_28_05_30_00 in /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05R-C01~fullres-orig did not exist. Missing Image Segmentation fault
or : ... Process /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/2014/2014_06/2014_06_24/2014_06_24_14/BVZ0036-GC05L-C01~fullres-orig_2014_06_24_14_30_00_00.JPG ... Time stamp 2014-06-24 14:30:00 ---perform optical undistortion--- ---perform color card detection--- ---Perform color correction--- ---Write image--- ---perform tray detection--- ---perform pot detection--- Done Process /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/2014/2014_06/2014_06_24/2014_06_24_15/BVZ0036-GC05L-C01~fullres-orig_2014_06_24_15_00_00_00.JPG ... Time stamp 2014-06-24 15:00:00 ---perform optical undistortion--- ---perform color card detection--- ---Perform color correction--- ---Write image--- ---perform tray detection--- ---perform pot detection--- Done Segmentation fault
At one occasion this happens at "ts_out.write_image(img)" of pipecomponents.py:
...
Process /mnt/phenocam/a_data/TimeStreams/Borevitz/BVZ0018/BVZ0018-GC05R-C01~fullres-orig/2013/2013_08/2013_08_20/2013_08_20_08/BVZ0018-GC05R-C01~fullres-orig_2013_08_20_08_30_00_00.jpg ...
Time stamp 2013-08-20 08:30:00
---Perform optical undistortion---
---perform color card detection---
---Perform color correction---
---Write image---
---Perform tray detection---
---Perform pot detection---
Done
Process /mnt/phenocam/a_data/TimeStreams/Borevitz/BVZ0018/BVZ0018-GC05R-C01~fullres-orig/2013/2013_08/2013_08_20/2013_08_20_08/BVZ0018-GC05R-C01~fullres-orig_2013_08_20_08_35_00_00.jpg ...
Time stamp 2013-08-20 08:35:00
---Perform optical undistortion---
---perform color card detection---
---Perform color correction---
---Write image---
Traceback (most recent call last):
File "pipeline_demo.py", line 148, in
Below is the debug information as required by Kevin:
chuong@north1ws:~/Workspace/timestreamlib/util$ gdb which python
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 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".
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/...
Reading symbols from /usr/bin/python...(no debugging symbols found)...done.
(gdb) run pipeline_demo.py /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/ /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/_data/pipeline_v2_potdetect.yml /home/chuong/Data/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-30min/
Starting program: /usr/bin/python pipeline_demo.py /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/ /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/_data/pipeline_v2_potdetect.yml /home/chuong/Data/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-30min/
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
p11-kit: invalid config filename, will be ignored in the future: /etc/pkcs11/modules/gnome-keyring-module
[New Thread 0x7fffd8727700 (LWP 25587)]
timestream path = /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig
Timestream instance created:
ts.path: /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig
ts.name: BVZ0036-GC05L-C01~fullres-orig
ts.version: 1
ts.start_datetime: 2014-06-18 17:00:00
ts.end_datetime: 2014-07-30 13:00:00
ts.image_type: jpg
ts.extension: JPG
ts.interval: 30
Iterating by date
startDate = 2014-06-18 08:00:00
endDate = None
14:53:12: Expected image /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/2014/2014_06/2014_06_18/2014_06_18_17/BVZ0036-GC05L-C01~fullres-orig_2014_06_18_17_30_00_00.JPG at 2014_06_18_17_30_00 in /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig did not exist.
timestreamlib: WARNING: Expected image /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/2014/2014_06/2014_06_18/2014_06_18_17/BVZ0036-GC05L-C01~fullres-orig_2014_06_18_17_30_00_00.JPG at 2014_06_18_17_30_00 in /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig did not exist.
Missing Image
...................(skipping here)..................
Process /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/2014/2014_06/2014_06_24/2014_06_24_14/BVZ0036-GC05L-C01~fullres-orig_2014_06_24_14_30_00_00.JPG ...
Time stamp 2014-06-24 14:30:00
---perform optical undistortion---
---perform color card detection---
---Perform color correction---
---Write image---
---perform tray detection---
---perform pot detection---
Done
Process /fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/2014/2014_06/2014_06_24/2014_06_24_15/BVZ0036-GC05L-C01~fullres-orig_2014_06_24_15_00_00_00.JPG ...
Time stamp 2014-06-24 15:00:00
---perform optical undistortion---
---perform color card detection---
---Perform color correction---
---Write image---
---perform tray detection---
---perform pot detection---
Done
Program received signal SIGSEGV, Segmentation fault. 0x00007fffe6cbc989 in ffi_closure_unix64_inner () from /usr/lib/x86_64-linux-gnu/libffi.so.6 (gdb) bt
(gdb)
OK, this looks like the issue I fixed here: https://github.com/scikit-image/scikit-image/pull/1039
please do this in your virtualenvs:
pip install git+https://github.com/scikit-image/scikit-image.git
And please close this if that fixes it, thanks guys.
K
I had a problem when testing this in virtual python env. This is the error:
(timestream)chuong@north1ws:~/Workspace/timestreamlib/util$ python
pipeline_demo.py
/fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/
/fast/phenomics/ts_cache/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-orig/_data/pipeline_v2_potdetect.yml
/home/chuong/Data/Borevitz/BVZ0036/BVZ0036-GC05L-C01~fullres-30min/
Traceback (most recent call last):
File "pipeline_demo.py", line 10, in
I updated to recent skimage and the segfault went away. Closing....
cheers man!
My virtual environment:
The log before it segfaulted: