# [hugin] panorama - segmentation fault avec nona [RESOLU]

## l_arbalette

Bonjour à tous,

je suis confonté à un segmentation fault que je n'arrive pas à résoudre, sur un super programme qui fonctionnait bien avant, et depuis que j'ai mis à jour toute la machine, il ne fonctionne plus.

Il s'agit d'Hugin : ce programme permet de recomposer une seule photo (panoramique) à partir de plusieurs photos.

C'est l'assemblage final du panorama qui plante, lors de l'appel à nona.

Je cherche à comprendre ce qui pourrait le faire planter, mais je n'y arrive pas.

J'ai refait un emerge world pour être sûr que toutes les bibliothèques étaient bien compilées avec le même gcc (puisque lui aussi s'est mis à jour quand j'ai fait le big update)

j'ai fait un revdep-rebuild : tout est clean.

j'ai mis ci-dessous : 

l'ouput d'emerge --info,

le log d'Hugin qui s'arrête sur le seg fault,

les outputs de gdb & backtrace que j'ai pu sortir, sans trop savoir quoi faire avec

ainsi que les versions des programmes que le backtrace a mis en évidence lors du seg fault...

Merci à ceux qui pourront se pencher sur ce problème qui me dépasse !

```
emerge --info

Portage 2.1.11.9 (default/linux/amd64/10.0, gcc-4.5.4, glibc-2.15-r2, 3.2.12-gentoo x86_64)

=================================================================

System uname: Linux-3.2.12-gentoo-x86_64-Intel-R-_Core-TM-2_CPU_6400_@_2.13GHz-with-gentoo-2.1

Timestamp of tree: Sat, 08 Sep 2012 10:00:01 +0000

ccache version 3.1.7 [enabled]

app-shells/bash:          4.2_p37

dev-java/java-config:     2.1.11-r3

dev-lang/python:          2.6.6-r1, 2.7.3-r2, 3.2.3

dev-util/ccache:          3.1.7

dev-util/cmake:           2.8.8-r3

dev-util/pkgconfig:       0.27.1

sys-apps/baselayout:      2.1-r1

sys-apps/openrc:          0.9.8.4

sys-apps/sandbox:         2.5

sys-devel/autoconf:       2.13, 2.68

sys-devel/automake:       1.11.6

sys-devel/binutils:       2.22-r1

sys-devel/gcc:            4.5.4

sys-devel/gcc-config:     1.7.3

sys-devel/libtool:        2.4-r1

sys-devel/make:           3.82-r3

sys-kernel/linux-headers: 3.4-r2 (virtual/os-headers)

sys-libs/glibc:           2.15-r2

Repositories: gentoo

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="*"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-Os -march=nocona -pipe -mno-tls-direct-seg-refs"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"

CXXFLAGS="-Os -march=nocona -pipe -mno-tls-direct-seg-refs"

DISTDIR="/usr/portage/distfiles"

FCFLAGS="-O2 -pipe"

FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parse-eapi-ebuild-head protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

FFLAGS="-O2 -pipe"

GENTOO_MIRRORS="ftp://ftp.free.fr/mirrors/ftp.gentoo.org/"

LANG="fr_FR.utf8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

LINGUAS="fr"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp/"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY=""

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="X a52 aac accessibility acl acpi alsa amd64 apache2 arts avi berkdb bzip2 cdr cli cracklib crypt cups cxx dbus divx4linux dri dv dvd dvdr dvdread encode fame ffmpeg flac foomaticdb fortran ftp gdbm gif gimpprint gpm hal iconv ieee1394 ipv6 java jpeg kde matroska mmx modules mpeg mudflap multilib ncurses nls nptl nptlonly nsplugin nvidia ogg opengl openmp pam pcre pic png ppds pppd qt3 qt3support qt4 quicktime readline scanner session sse sse2 ssl subtitles tcpd truetype unicode usb userlocales v4l v4l2 vorbis xvid xvmc zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="fr" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

```

Le log du plantage de nona donné par Hugin :

```
===========================================================================

***************  Panorama makefile generated by Hugin       ***************

===========================================================================

System information

===========================================================================

Operating system: GNU/Linux

Release: 3.2.12-gentoo

Kernel version: #1 SMP Wed Jun 6 22:20:52 CEST 2012

Machine: x86_64

Disc usage

Sys. fich.     Taille Util. Dispo Uti% Monté sur

rootfs            92G   23G   65G  27% /

/dev/root         92G   23G   65G  27% /

tmpfs            1,5G  300K  1,5G   1% /run

rc-svcdir        1,0M  100K  924K  10% /lib64/rc/init.d

udev              10M     0   10M   0% /dev

shm              1,5G     0  1,5G   0% /dev/shm

/dev/sda3        230G  103G  115G  48% /home

/dev/sda4        137G  117G   20G  86% /mnt/winXP_sda4

/dev/sdb1        230G   50G  168G  23% /mnt/WinDataExt

/dev/sdb2        230G  166G   53G  76% /mnt/LinuxDocs

Memory usage

             total       used       free     shared    buffers     cached

Mem:          2955       2923         31          0         20        647

-/+ buffers/cache:       2255        699

Swap:         3820        415       3404

===========================================================================

Output options

===========================================================================

Hugin Version: 2011.0.0.0f9fdaf56720

Project file: /home/thibaut/temp/hugin/huginpto_7cV0v6

Output prefix: 1000001464-1000001465

Projection: Rectilinear (0)

Field of view: 70 x 48

Canvas dimensions: 2843 x 1787

Crop area: (56,144) - (2843,1438)

Output exposure value: 12.03

Selected outputs

Normal panorama

* Blended panorama

===========================================================================

Input images

===========================================================================

Number of images in project file: 2

Number of active images: 2

Image 0: /home/thibaut/Commun/02 - Photos/iPhone/1000001464.JPG

Image 0: Size 2592x1936, Exposure: 12.02

Image 1: /home/thibaut/Commun/02 - Photos/iPhone/1000001465.JPG

Image 1: Size 2592x1936, Exposure: 12.04

===========================================================================

Testing programs

===========================================================================

Checking nona...[OK]

Checking enblend...[OK]

Checking enfuse...[OK]

Checking hugin_hdrmerge...[OK]

Checking exiftool...[OK]

===========================================================================

Stitching panorama

===========================================================================

nona  -z LZW -r ldr -m TIFF_m -o 1000001464-1000001465 -i 0 /home/thibaut/temp/hugin/huginpto_7cV0v6

make: *** [1000001464-10000014650000.tif] Erreur de segmentation
```

j'ai aussi essayé d'utiliser gdb, mais j'ai un peu du mal à comprendre quoi faire avec le résultat :

```
gdb --args nona  -z LZW -r ldr -m TIFF_m -o 1000001464-1000001465 -i 0 /home/thibaut/temp/hugin/huginpto_7cV0v6

GNU gdb (Gentoo 7.3.1 p2) 7.3.1

Copyright (C) 2011 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-pc-linux-gnu".

For bug reporting instructions, please see:

<http://bugs.gentoo.org/>...

Reading symbols from /usr/bin/nona...(no debugging symbols found)...done.

(gdb) run

Starting program: /usr/bin/nona -z LZW -r ldr -m TIFF_m -o 1000001464-1000001465 -i 0 /home/thibaut/temp/hugin/huginpto_7cV0v6

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]

[New Thread 0x7fffee285700 (LWP 13927)]

Program received signal SIGSEGV, Segmentation fault.

[Switching to Thread 0x7fffee285700 (LWP 13927)]

0x00007ffff7730467 in boost::random::mersenne_twister_engine<unsigned int, 32ul, 624ul, 397ul, 31ul, 2567483615u, 11ul, 4294967295u, 7ul, 2636928640u, 15ul, 4022730752u, 18ul, 1812433253u>::operator()() ()

   from /usr/lib64/hugin/libhuginbase.so.0.0
```

un backtrace donne :

```
(gdb) bt

#0  0x00007ffff7730467 in boost::random::mersenne_twister_engine<unsigned int, 32ul, 624ul, 397ul, 31ul, 2567483615u, 11ul, 4294967295u, 7ul, 2636928640u, 15ul, 4022730752u, 18ul, 1812433253u>::operator()() ()

   from /usr/lib64/hugin/libhuginbase.so.0.0

#1  0x00007ffff778a0cb in HuginBase::Photometric::InvResponseTransform<unsigned char, double>::dither(double const&) const () from /usr/lib64/hugin/libhuginbase.so.0.0

#2  0x00007ffff779e2fc in HuginBase::Photometric::InvResponseTransform<unsigned char, double>::apply(vigra::RGBValue<unsigned char, 0u, 1u, 2u>, hugin_utils::TDiff2D<double> const&, vigra::VigraFalseType) const ()

   from /usr/lib64/hugin/libhuginbase.so.0.0

#3  0x00007ffff779e358 in HuginBase::Photometric::InvResponseTransform<unsigned char, double>::apply(vigra::RGBValue<unsigned char, 0u, 1u, 2u>, hugin_utils::TDiff2D<double> const&) const () from /usr/lib64/hugin/libhuginbase.so.0.0

#4  0x00007ffff779e39c in vigra::NumericTraits<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >::RealPromote HuginBase::Photometric::InvResponseTransform<unsigned char, double>::operator()<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >(vigra::RGBValue<unsigned char, 0u, 1u, 2u>, hugin_utils::TDiff2D<double> const&) const () from /usr/lib64/hugin/libhuginbase.so.0.0

#5  0x00007ffff798e100 in void vigra_ext::transformImageIntern<vigra::ConstBasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, HuginBase::PTools::Transform const, HuginBase::Photometric::InvResponseTransform<unsigned char, double> const, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra::StandardValueAccessor<unsigned char>, vigra_ext::interp_cubic>(vigra::triple<vigra::ConstBasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::ConstBasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > >, vigra::triple<vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> > >, std::pair<vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra::StandardValueAccessor<unsigned char> >, HuginBase::PTools::Transform const&, HuginBase::Photometric::InvResponseTransform<unsigned char, double> const&, vigra::Diff2D, vigra_ext::interp_cubic, bool, AppBase::MultiProgressDisplay&) () from /usr/lib64/hugin/libhuginbase.so.0.0

#6  0x00007ffff798e293 in vigra_ext::TransformImageIntern<vigra::ConstBasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, vigra::BasicImageIterator<vigra::RGBValue<unsigned char, 0u, 1u, 2u>, vigra::RGBValue<unsigned char, 0u, 1u, 2u>**>, vigra::RGBAccessor<vigra::RGBValue<unsigned char, 0u, 1u, 2u> >, HuginBase::PTools::Transform, HuginBase::Photometric::InvResponseTransform<unsigned char, double>, vigra::BasicImageIterator<unsigned char, unsigned char**>, vigra::StandardValueAccessor<unsigned char>, vigra_ext::interp_cubic>::operator()() () from /usr/lib64/hugin/libhuginbase.so.0.0

#7  0x00007ffff7756855 in boost::function0<void>::operator()() const () from /usr/lib64/hugin/libhuginbase.so.0.0

#8  0x00007ffff5cd556e in ?? () from /usr/lib64/libboost_thread-mt-1_49.so.1.49.0

#9  0x00007ffff4c3ab99 in start_thread () from /lib64/libpthread.so.0

#10 0x00007ffff5fc3eed in clone () from /lib64/libc.so.6

```

je ne sais pas quoi faire avec ça...

voici ce qui est installé sur mon PC en rapport avec les librairies mentionnées :

```
larbalette_home hugin # equery b /lib64/libc.so.6

 * Searching for /lib64/libc.so.6 ... 

sys-libs/glibc-2.15-r2 (/lib64/libc-2.15.so)

sys-libs/glibc-2.15-r2 (/lib64/libc.so.6 -> libc-2.15.so)

larbalette_home hugin # equery b /lib64/libpthread.so.0

 * Searching for /lib64/libpthread.so.0 ... 

sys-libs/glibc-2.15-r2 (/lib64/libpthread.so.0 -> libpthread-2.15.so)

sys-libs/glibc-2.15-r2 (/lib64/libpthread-2.15.so)

larbalette_home hugin # equery b libboost_thread-mt-1_49.so.1.49.0

 * Searching for libboost_thread-mt-1_49.so.1.49.0 ... 

dev-libs/boost-1.49.0-r1 (/usr/lib64/libboost_thread-mt-1_49.so.1.49.0)

larbalette_home hugin # equery b /usr/lib64/hugin/libhuginbase.so.0.0

 * Searching for /usr/lib64/hugin/libhuginbase.so.0.0 ... 

media-gfx/hugin-2011.0.0 (/usr/lib64/hugin/libhuginbase.so.0.0)
```

----------

## Leander256

Salut,

je sais que ce n'est pas à proprement parler une solution, mais as-tu essayé la dernière version disponible dans portage, à savoir la 2011.4.0-r1? Je suis aussi en amd64 (donc stable) mais j'utilise cette version soi-disant instable qui date quand même de décembre dernier!

----------

## l_arbalette

Merci de ta réponse.

Oui, j'ai aussi essayé de passer en version "instable".

Cela n'a pas résolu le problème. Et comme ça m'a installé un 2ème slot de boost, que j'avais déjà identifié comme étant "impliqué" dans le segmentation fault, j'ai préféré finalement revenir en arrière.

Par contre, si ça marche chez toi, peut-être qu'en comparant ton installation et la mienne, on pourrait mettre en évidence des différences, et qu'en m'alignant sur ton setup, ça pourrait peut-être faire avancer le truc ?

Vois-tu des éléments de différence ? (gcc, versions de librairies, etc... ?)

----------

## Leander256

J'utilise gcc 4.6.3 et boost 1.49 qui sont encore en version instable, par contre normalement le reste est stable. Ce bug se reproduit-il avec tous tes panoramiques ou juste avec un jeu de photos particuliers? Dans les deux cas je pense que tu devrais faire un rapport de bug, plutôt que de chercher à l'aveuglette  :Smile: 

----------

## l_arbalette

le bug se reproduit effectivement sur toutes les photos sans exception.

pour ce qui est de déposer un rapport de bug...oui, ça peut aider...mais j'ai bien peur que ça ne réponde pas (j'ai vu un autre bug similaire, similaire dans le sens ou c'est nona qui crashe, qui n'a jamais été traité https://bugs.launchpad.net/hugin/+bug/679594).

c'est pour cela que j'essaye quand même d'avancer de mon côté.

by the way, je vais effectivement déposer un bug sur le site d'Hugin.

sinon, donc, il n'y a que le compilateur qui diffère... Penses-tu que cela pourrait avoir une incidence sur ce bug ?

juste pour ma gouverne, quel est l'intérêt pour ta machine d'avoir cette version de gcc plutôt que la version stable ? (je ne maitrise pas vraiment ce genre de subtilité)

----------

## l_arbalette

j'ai déposé un bug à cette adresse : https://bugs.launchpad.net/hugin/+bug/1048799

----------

## l_arbalette

bon : j'ai été très mauvaise langue : j'ai déjà une réponse ! ils sont hyper réactif !

j'accepte les 100 coups de fouets !   :Embarassed: 

Donc apparemment, la version 2011.0 de Hugin, et toutes celles qui précèdent la 2012.0 ont un problème avec les dernières versions de boost : il ne faut pas utiliser une version de boost supérieure à 1.47

Le problème est d'ores et déjà réglé avec la version 2012.0 (mais version non dispo dans Portage)

Donc soit on se crée son ebuild avec la version 2012.0 (je ne sais pas faire), soit on downgrade boost, ce que j'ai fait.

Après vérif, rien sur mon système ne nécessite boost > 1.47

```
equery d boost

 * These packages depend on boost:

app-misc/strigi-0.7.7 (dev-libs/boost)

dev-util/kdevplatform-1.3.1 (dev-libs/boost)

kde-base/kdepimlibs-4.8.3 (>=dev-libs/boost-1.35.0-r5)

kde-base/plasma-workspace-4.8.3 (dev-libs/boost)

media-gfx/enblend-4.0 (>=dev-libs/boost-1.31.0)

media-gfx/exiv2-0.21.1-r1 (contrib ? >=dev-libs/boost-1.37)

media-gfx/hugin-2011.0.0 (>=dev-libs/boost-1.35.0-r5)

media-video/mkvtoolnix-5.0.1-r1 (>=dev-libs/boost-1.36.0)
```

Donc j'ai fait :

```
emerge -aC boost

echo ">dev-libs/boost-1.47 >> /etc/portage/package.mask"

emerge -av boost

eselect boost set boost-1.46/default

revdeprebuild
```

et le tour est joué !

Merci Leander256 de ton aide,

----------

## xaviermiller

Hello,

Peut-être pourrais-tu ajouter ta pierre au bug 388149 en mentionnant qu'il faut bloquer boost dans l'ebuild de hugin < 2012.0

en citant la réponse que tu as eue.

Et en ouvrir un autre pour faire un bump request de hugin 2012.

----------

## l_arbalette

c'est vrai : j'avais pensé à le faire...et j'ai répondu précipitemment, trop content que ça refonctionne !! et oublié de me charger de cette partie !

c'est fait pour la suggestion de bloquer boost >1.47 dans l'ebuild.

pour le bump request, c'est peut-être un peu tôt ? ça a été publié le 30/08 dernier...

----------

## xaviermiller

Un peu tôt ? Non, le bump request va demander de créer un ebuild, qui sera soit hardmasquée, soit en instable.

----------

## l_arbalette

done

https://bugs.gentoo.org/show_bug.cgi?id=435218

----------

