POV-Ray : Newsgroups : povray.beta-test : Linux Beta 28 segfaults on Slackware and Kubuntu Server Time
19 Apr 2024 12:48:37 EDT (-0400)
  Linux Beta 28 segfaults on Slackware and Kubuntu (Message 11 to 20 of 32)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Nicolas Alvarez
Subject: Re: Linux Beta 28 segfaults on Slackware and Kubuntu
Date: 25 Aug 2008 19:20:28
Message: <48b33e3b@news.povray.org>
geep999 wrote:
> Hi Warp - I assume this is what you meant for configure:
> CFLAGS="-g" \
> CXXFLAGS="${CFLAGS}" \
> ../configure \
> --with-boost-src=/tmp/boost_1_34_1 \
> --disable-optimiz \
> --disable-optimiz-arch \
> COMPILED_BY="Beta 28 no_optim autocompiled_boost_1.34.1>"

Did you run "make clean" after configuring? Maybe it saw all the files were
up-to-date and didn't recompile anything...


Post a reply to this message

From: geep999
Subject: Re: Linux Beta 28 segfaults on Slackware and Kubuntu
Date: 26 Aug 2008 07:15:01
Message: <web.48b3e3b2cfc4a246c03ef3130@news.povray.org>
Nicolas Calimet <pov### [at] freefr> wrote:
> > 2/ I have tried compiling on Slackware 12.0 with both --enable-debug and
> > --enable-profile
> > ../configure \
> > --with-boost-thread=boost_thread-mt \
> > --enable-profile \
> > COMPILED_BY="geep"
> >
> > I am not sure that the --enable-debug and --enable-profile options are working
>
>  I verified that both --enable-debug and --enable-profile, alone or together,
> work as expected.  Please check that configure reports that the -g compiler flag
> is working and that the option is effectively used when compiling.
>
>  - NC

Hi Nicolas.

1/ Have now checked in config.log for -g flag with --enable-debug.
It's OK. Also other checks on compiler options - all OK. I hadn't checked enough
when I reported possible problem - apologies.

2/ Now I've got the hang of the compiler options, stacktrace has more
information.
Compiled with:
../configure \
--with-boost-src=/tmp/boost_1_34_1 \
--disable-optimiz \
--disable-optimiz-arch \
--enable-debug \
COMPILED_BY="Option 5"

m_textures.ini segfault whilst rendering the 4th frame:
(gdb) bt
#0  0xb785fc87 in raise () from /lib/libc.so.6
#1  0xb78614f8 in abort () from /lib/libc.so.6
#2  0xb7895c4b in __libc_message () from /lib/libc.so.6
#3  0xb789eb9b in _int_malloc () from /lib/libc.so.6
#4  0xb789fb7e in malloc () from /lib/libc.so.6
#5  0xb7a5a7e8 in operator new () from /usr/lib/libstdc++.so.6
#6  0x081a32be in
__gnu_cxx::new_allocator<pov::Trace::LightColorCache>::allocate
(this=0xb4e2299c, __n=2)
    at
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../../include/c++/4.1.2/ext/new_allocator.h:88
#7  0x081a32db in std::_Vector_base<pov::Trace::LightColorCache,
std::allocator<pov::Trace::LightColorCache> >::_M_allocate (this=0xb4e2299c,
__n=2)
    at
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:127
#8  0x081a4d3a in std::vector<pov::Trace::LightColorCache,
std::allocator<pov::Trace::LightColorCache> >::_M_fill_insert (this=0xb4e2299c,
__position={_M_current = 0xb4e5edd8}, __n=2, __x=@0xb676d9d8)
    at
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../../include/c++/4.1.2/bits/vector.tcc:357
#9  0x081a4f9b in std::vector<pov::Trace::LightColorCache,
std::allocator<pov::Trace::LightColorCache> >::insert (this=0xb4e2299c,
__position={_M_current = 0xb4e5edd8}, __n=2, __x=@0xb676d9d8)
    at
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:658
#10 0x081a505a in std::vector<pov::Trace::LightColorCache,
std::allocator<pov::Trace::LightColorCache> >::resize (this=0xb4e2299c,
__new_size=2, __x=@0xb676d9d8)
    at
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:426
#11 0x0819f388 in Trace (this=0xb4cc0090, sd=@0xb676da58, td=0xb4cc9bd0, mtl=5,
adcb=0.0039215686274509803,
    qf=508, cf=@0xb4cc03d4, mf=@0xb4cc03dc, rf=@0xb4cc0400) at
render/trace.cpp:155
#12 0x081b2ad5 in TracePixel (this=0xb4cc0090, vd=0xb4e213d0, td=0xb4cc9bd0,
mtl=5,
    adcb=0.0039215686274509803, qf=508, cf=@0xb4cc03d4, mf=@0xb4cc03dc,
af=@0xb4cc0400)
    at render/tracepixel.cpp:244
#13 0x081ab931 in TraceTask (this=0xb4cc0030, vd=0xb4e213d0, tm=1, js=1,
aat=0.30000001192092896, aad=3, ps=0,
    psc=false, final=true) at render/tracetask.cpp:294
#14 0x080bccf2 in pov::View::StartRender (this=0xb4e21340,
renderOptions=@0xb676e0bc) at scene/view.cpp:813
#15 0x080a55c8 in pov::RenderBackend::StartRender (this=0xb676e228,
msg=@0xb676e0bc)
    at control/renderbackend.cpp:602
#16 0x080a98fb in
POVMS_MessageReceiver::MemberHandlerOO<pov::RenderBackend>::Call
(this=0x830d3f8,
    msg=@0xb676e0bc, result=@0xb676e0cc, mode=1) at
....../../source/base/povmscpp.h:382
---Type <return> to continue, or q <return> to quit---
#17 0x081f6386 in POVMS_MessageReceiver::ReceiveHandler (msg=0xb676e1cc,
result=0xb676e1c0, mode=1,
    privatedataptr=0xb676e228) at povmscpp.cpp:1774
#18 0x081f3a19 in POVMS_Receive (contextref=0x830d0a0, msg=0xb676e1cc,
result=0xb676e1c0, mode=1)
    at povms.cpp:944
#19 0x081f4cbc in POVMS_ProcessMessages (contextref=0x830d0a0, blocking=true,
yielding=true) at povms.cpp:688
#20 0x080a22bc in (anonymous namespace)::MainThreadFunction () at povray.cpp:540
#21 0x080a2e8e in boost::_bi::list0::operator()<void (*)(), boost::_bi::list0>
(this=0xb676e398, f=@0xb676e394)
    at /tmp/boost_1_34_1/boost/bind.hpp:177
#22 0x080a2ec2 in boost::_bi::bind_t<void, void (*)(),
boost::_bi::list0>::operator() (this=0xb676e394)
    at /tmp/boost_1_34_1/boost/bind/bind_template.hpp:20
#23 0x080a2edf in
boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void,
void (*)(), boost::_bi::list0>, void>::invoke (function_obj_ptr=@0xb676e394)
    at /tmp/boost_1_34_1/boost/function/function_template.hpp:158
#24 0x081b9990 in boost::function0<void, std::allocator<boost::function_base>
>::operator() (this=0xb676e390)
    at /tmp/boost_1_34_1/boost/function/function_template.hpp:825
#25 0x08230961 in thread_proxy (param=0xb6f6e17c) at
/tmp/boost_1_34_1/libs/thread/src/thread.cpp:108
#26 0xb7e9c1b3 in start_thread () from /lib/libpthread.so.0
#27 0xb790603e in clone () from /lib/libc.so.6
(gdb)

Salutations,
Peter


Post a reply to this message

From: Nicolas Calimet
Subject: Re: Linux Beta 28 segfaults on Slackware and Kubuntu
Date: 27 Aug 2008 08:58:08
Message: <48b54f60$1@news.povray.org>
> 2/ Now I've got the hang of the compiler options, stacktrace has more
> information.
> Compiled with:
> ../configure \
> --with-boost-src=/tmp/boost_1_34_1 \

	I'd say you face a problem with this version of Boost.  Moreover,
as said in the INSTALL file, you should avoid using POV's --with-boost-src
configure option *especially* with Boost 1.34.1 (actually I don't even
understand how you managed to get things compiled this way).  Better try
using a precompiled lib (possibly from package repositeries) or an earlier
Boost version, e.g. 1.33.1.

	- NC


Post a reply to this message

From: geep999
Subject: Re: Linux Beta 28 segfaults on Slackware and Kubuntu
Date: 28 Aug 2008 10:05:00
Message: <web.48b6aab9cfc4a246b6fda8bd0@news.povray.org>
1/ I still get segfaults rendering m_textures.ini (see below) in a different
environment, after changing from Slackware 12.0 to Slackware 12.1,
using official beta 28 source and precompiled repository
(http://repository.slacky.eu/slackware-12.1)
versions of libraries: boost-1.33.1 icu-3.6 ilmbase-1.0.1 openexr-1.6.1

But beta 25b renders m_textures.ini fine using exactly the same ./configure
options and installed libraries.

gcc (GCC) 4.2.3, Kernel: 2.6.24.5-smp #1 SMP

.../configure \
--with-boost-thread=boost_thread-mt \
--disable-optimiz \
--disable-optimiz-arch \
--enable-debug \
COMPILED_BY="Slackware 12.1 Repository: boost-1.33.1-i686-3as icu-3.6-i486-1sl
ilmbase-1.0.1-i486-2sl openexr-1.6.1-i486-2sl"

2/ Nicolas Calimet <pov### [at] freefr> wrote:
>
>  I'd say you face a problem with this version of Boost.  Moreover,
> as said in the INSTALL file, you should avoid using POV's --with-boost-src
> configure option *especially* with Boost 1.34.1 (actually I don't even
> understand how you managed to get things compiled this way).  Better try
I had patched the 1.34.1 source as per http://boost.sourceforge.net/
December 19, 2007 - Critical Bug in Function Library

    * Boost.Function in Boost 1.34.x has a bug that affects the construction of
Boost.Function objects in a multi-threaded context. The problem has been fixed
in the Boost trunk and for the upcoming Boost 1.35.x. To patch your Boost
1.34.x, copy the files function_base.hpp and function_template.hpp into the
Boost directory boost/function.
> using a precompiled lib (possibly from package repositeries) or an earlier
> Boost version, e.g. 1.33.1.
>
>  - NC

3/ I'd previously had similar segfaults on Kubuntu with boost 1.34.1
downloaded from Kubuntu repository, using --with-boost-thread=boost_thread-mt
configure option.

4/ Am I still the only person to see these segfaults on Linux?
I've now tried installing on 3 different Linuxes and always get the
same segfaults. I suppose I could be making the same mistake in all 3 OS's,
but as the last test only involved compiling Povray (./configure shown above)
and installing 4 pre-compiled packages (using simple Slackware command
"installpkg packagename.tgz") the opportunity for even me to screw-up is
limited!

Salutations,
Peter

(gdb) bt
#0  0xb78e9c03 in malloc_consolidate () from /lib/libc.so.6
#1  0xb78ebd3a in _int_malloc () from /lib/libc.so.6
#2  0xb78edb2d in malloc () from /lib/libc.so.6
#3  0x08226212 in pov::pov_malloc (size=3072, file=0x82314f2
"bounding/bbox.cpp", line=134,
    msg=0x8231504 "priority queue") at pov_mem.cpp:430
#4  0x080da6b4 in PriorityQueue (this=0xb5e297c4) at bounding/bbox.cpp:134
#5  0x0819b600 in Trace (this=0xb5e29790, sd=@0xb67b7a7c, td=0xb5e32f60, mtl=3,
adcb=3.9215686274509805e-05, qf=372,
    cf=@0xb5e29760, mf=@0xb5e2984c, rf=@0xb5e2978c) at render/trace.cpp:143
#6  0x0817c7a0 in RadiosityFunction (this=0xb5e2978c, sd=@0xb67b7b20,
td=0xb5e32f60, mtl=5, adcb=0.0039215686274509803,
    rs=@0xb5e01110, rc=@0xb5e02414, cf=@0xb5e29760, ft=true) at
lighting/radiosity.cpp:241
#7  0x081a5f67 in TraceTask (this=0xb5e293c0, vd=0xb5e022a8, tm=1, js=1,
aat=0.30000001192092896, aad=3, ps=0, psc=false,
    final=true) at render/tracetask.cpp:294
#8  0x080bbf1c in pov::View::StartRender (this=0xb5e02218,
renderOptions=@0xb67b80dc) at scene/view.cpp:813
#9  0x080a42de in pov::RenderBackend::StartRender (this=0xb67b8248,
msg=@0xb67b80dc) at control/renderbackend.cpp:602
#10 0x080a8777 in
POVMS_MessageReceiver::MemberHandlerOO<pov::RenderBackend>::Call
(this=0xb5e00728, msg=@0xb67b80dc,
    result=@0xb67b80ec, mode=1) at ../../source/base/povmscpp.h:382
#11 0x081f2b2a in POVMS_MessageReceiver::ReceiveHandler (msg=0xb67b81ec,
result=0xb67b81e0, mode=1,
    privatedataptr=0xb67b8248) at povmscpp.cpp:1774
#12 0x081f009f in POVMS_Receive (contextref=0x82fbbf0, msg=0xb67b81ec,
result=0xb67b81e0, mode=1) at povms.cpp:944
#13 0x081f1353 in POVMS_ProcessMessages (contextref=0x82fbbf0, blocking=true,
yielding=true) at povms.cpp:688
#14 0x080a0afc in MainThreadFunction () at povray.cpp:540
#15 0x080a15fa in boost::_bi::list0::operator()<void (*)(), boost::_bi::list0>
(this=0x82fb62c, f=@0x82fb628)
    at /usr/include/boost/bind.hpp:179
#16 0x080a162e in boost::_bi::bind_t<void, void (*)(),
boost::_bi::list0>::operator() (this=0x82fb628)
    at /usr/include/boost/bind/bind_template.hpp:20
#17 0x080a164b in
boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void,
void (*)(), boost::_bi::list0>, void>::invoke (function_obj_ptr={obj_ptr =
0x82fb628, const_obj_ptr = 0x82fb628, func_ptr = 0x82fb628, data = "("})
    at /usr/include/boost/function/function_template.hpp:136
#18 0x081b54a2 in boost::function0<void, std::allocator<boost::function_base>
>::operator() (this=0xb67b83a0)
    at /usr/include/boost/function/function_template.hpp:576
#19 0xb7aea5d2 in ?? () from /usr/lib/libboost_thread-mt.so.1.33.1
#20 0xb7e89383 in start_thread () from /lib/libpthread.so.0
#21 0xb795605e in clone () from /lib/libc.so.6
(gdb)


Post a reply to this message

From: Le Forgeron
Subject: Re: Linux Beta 28 segfaults on Slackware and Kubuntu
Date: 28 Aug 2008 13:15:03
Message: <48b6dd17$1@news.povray.org>
Le Thu, 28 Aug 2008 10:00:49 -0400, geep999 a modifié des petits morceaux
de l'univers pour nous faire lire :

[snip]

I'm getting a memory fault here too (amd64, linux gentoo)... 
"recompiling for debugger" in progress

So, you are not really alone.
(--disable-io-restrictions here...)

povray -L/usr/local/share/povray-3.7/scenes/portfolio /usr/local/share/
povray-3.7/scenes/portfolio/m_textures.ini


Post a reply to this message

From: Le Forgeron
Subject: Re: Linux Beta 28 segfaults on Slackware and Kubuntu
Date: 28 Aug 2008 13:58:14
Message: <48b6e736@news.povray.org>
Le Thu, 28 Aug 2008 13:15:03 -0400, Le Forgeron a modifié des petits
morceaux de l'univers pour nous faire lire :

> Le Thu, 28 Aug 2008 10:00:49 -0400, geep999 a modifié des petits
> morceaux de l'univers pour nous faire lire :
> 
> [snip]
> 
> I'm getting a memory fault here too (amd64, linux gentoo)...
> "recompiling for debugger" in progress


Operations seems to SigSegV on memory allocation/release
(first is on pixels.reserve(pixels.size()*5), with pixels.size()==1024)
second is on pool.push_back(ptr); on destroy of Ref object,
third is on         vector<double> rands(count); with count==32768 )

first was done with -WT1, second & third without...

Either that, or the C++ memory allocator/deallocator is not thread-
safe... or the one in libc.6 (missing an option for malloc thread-safe ?)


gcc (GCC) 4.2.4
kernel 2.6.24-gentoo-r7

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x43009950 (LWP 10206)]
0x00002ab94487c378 in ?? () from /lib/libc.so.6
(gdb) where
#0  0x00002ab94487c378 in ?? () from /lib/libc.so.6
#1  0x00002ab94487e67c in ?? () from /lib/libc.so.6
#2  0x00002ab9448803b0 in malloc () from /lib/libc.so.6
#3  0x00002ab94413108b in operator new () from /usr/lib/gcc/x86_64-pc-
linux-gnu/4.2.4/libstdc++.so.6
#4  0x000000000048b7b7 in __gnu_cxx::new_allocator<float>::allocate 
(this=0x43008ac0, __n=5120) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.4/
include/g++-v4/ext/new_allocator.h:91
#5  0x000000000048b7df in std::_Vector_base<float, std::allocator<float> 
>::_M_allocate (this=0x43008ac0, __n=5120) at /usr/lib/gcc/x86_64-pc-
linux-gnu/4.2.4/include/g++-v4/bits/stl_vector.h:128
#6  0x000000000048bcdd in std::vector<float, std::allocator<float> 
>::_M_allocate_and_copy<float*> (this=0x43008ac0, __n=5120, __first=0x0, 
__last=0x0) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.4/include/g++-v4/bits/
stl_vector.h:763
#7  0x000000000048bd89 in std::vector<float, std::allocator<float> 
>::reserve (this=0x43008ac0, __n=5120) at /usr/lib/gcc/x86_64-pc-linux-
gnu/4.2.4/include/g++-v4/bits/vector.tcc:77
#8  0x0000000000480128 in pov::ViewData::CompletedRectangle 
(this=0x9dd270, rect=@0x43008d00, serial=0, pixels=@0x43008c78, size=1, 
final=true) at scene/view.cpp:232
#9  0x000000000058aab4 in pov::TraceTask::NonAdaptiveSupersamplingM1 
(this=0x9ded60) at render/tracetask.cpp:619
#10 0x000000000058ab84 in pov::TraceTask::Run (this=0x9ded60) at render/
tracetask.cpp:339
#11 0x0000000000598279 in pov::Task::TaskThread (this=0x9ded60, 
completion=@0x9ae9d0) at support/task.cpp:233
#12 0x00000000005992d2 in boost::_mfi::mf1<void, pov::Task, 
boost::function0<void, std::allocator<boost::function_base> > 
const&>::operator() (this=0x9ae9b8, p=0x9ded60, a1=@0x9ae9d0) at /usr/
include/boost/bind/mem_fn_template.hpp:162
#13 0x0000000000599382 in 
boost::_bi::list2<boost::_bi::value<pov::Task*>, 
boost::_bi::value<boost::function0<void, 
std::allocator<boost::function_base> > > >::operator()
<boost::_mfi::mf1<void, pov::Task, boost::function0<void, 
std::allocator<boost::function_base> > const&>, boost::_bi::list0> 
(this=0x9ae9c8, f=@0x9ae9b8, a=@0x43008fef) at /usr/include/boost/
bind.hpp:289
#14 0x00000000005993c2 in boost::_bi::bind_t<void, boost::_mfi::mf1<void, 
pov::Task, boost::function0<void, std::allocator<boost::function_base> > 
const&>, boost::_bi::list2<boost::_bi::value<pov::Task*>, 
boost::_bi::value<boost::function0<void, 
std::allocator<boost::function_base> > > > >::operator() (this=0x9ae9b8) 
at /usr/include/boost/bind/bind_template.hpp:20
#15 0x00000000005993e0 in 
boost::thread::thread_data<boost::_bi::bind_t<void, 
boost::_mfi::mf1<void, pov::Task, boost::function0<void, 
std::allocator<boost::function_base> > const&>, 
boost::_bi::list2<boost::_bi::value<pov::Task*>, 
boost::_bi::value<boost::function0<void, 
std::allocator<boost::function_base> > > > > >::run (this=0x9ae8b0) at /
usr/include/boost/thread/pthread/thread.hpp:130
#16 0x00002ab943e4bf1f in thread_proxy () from /usr/lib/libboost_thread-
mt.so
#17 0x00002ab941cd4067 in start_thread () from /lib/libpthread.so.0
#18 0x00002ab9448d1edd in clone () from /lib/libc.so.6
#19 0x0000000000000000 in ?? ()

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x4400b950 (LWP 10302)]
0x00002b2b5192b17c in ?? () from /lib/libc.so.6
(gdb) where
#0  0x00002b2b5192b17c in ?? () from /lib/libc.so.6
#1  0x00002b2b5192d3b0 in malloc () from /lib/libc.so.6
#2  0x00002b2b511de08b in operator new () from /usr/lib/gcc/x86_64-pc-
linux-gnu/4.2.4/libstdc++.so.6
#3  0x0000000000567ba5 in 
__gnu_cxx::new_allocator<std::vector<pov::Trace::WNRX, 
std::allocator<pov::Trace::WNRX> >*>::allocate (this=0xa60d90, __n=8) at /
usr/lib/gcc/x86_64-pc-linux-gnu/4.2.4/include/g++-v4/ext/
new_allocator.h:91
#4  0x0000000000567bcd in std::_Vector_base<std::vector<pov::Trace::WNRX, 
std::allocator<pov::Trace::WNRX> >*, 
std::allocator<std::vector<pov::Trace::WNRX, 
std::allocator<pov::Trace::WNRX> >*> >::_M_allocate (this=0xa60d90, 
__n=8) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.4/include/g++-v4/bits/
stl_vector.h:128
#5  0x0000000000567f89 in std::vector<std::vector<pov::Trace::WNRX, 
std::allocator<pov::Trace::WNRX> >*, 
std::allocator<std::vector<pov::Trace::WNRX, 
std::allocator<pov::Trace::WNRX> >*> >::_M_insert_aux (this=0xa60d90, 
__position={_M_current = 0x9fe180}, __x=@0x44009660) at /usr/lib/gcc/
x86_64-pc-linux-gnu/4.2.4/include/g++-v4/bits/vector.tcc:271
#6  0x0000000000568142 in std::vector<std::vector<pov::Trace::WNRX, 
std::allocator<pov::Trace::WNRX> >*, 
std::allocator<std::vector<pov::Trace::WNRX, 
std::allocator<pov::Trace::WNRX> >*> >::push_back (this=0xa60d90, 
__x=@0x44009660) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.4/include/g++-v4/
bits/stl_vector.h:605
#7  0x0000000000568161 in pov::RefPool<std::vector<pov::Trace::WNRX, 
std::allocator<pov::Trace::WNRX> > >::release (this=0xa60d90, 
ptr=0x9b2450) at ../../source/backend/frame.h:1276
#8  0x0000000000568195 in ~Ref (this=0x44009b10) at ../../source/backend/
frame.h:1301
#9  0x000000000057c8bb in pov::Trace::ComputeLightedTexture 
(this=0xa60cc0, resultcolour=@0x4400a480, texture=0xadcb60, 
warps=@0x9b2430, ipoint=@0x4400a430, rawnormal=@0x4400a450, 
ray=@0x4400a7b0, weight=1, isect=@0x4400a630) at render/trace.cpp:1046
#10 0x000000000057450e in pov::Trace::ComputeOneTextureColour 
(this=0xa60cc0, resultcolour=@0x4400a480, texture=0xadcb60, 
warps=@0x9b2430, ipoint=@0x4400a430, rawnormal=@0x4400a450, 
ray=@0x4400a7b0, weight=1, isect=@0x4400a630, shadowflag=false, 
photonPass=false) at render/trace.cpp:600
#11 0x000000000057649a in pov::Trace::ComputeTextureColour 
(this=0xa60cc0, isect=@0x4400a630, colour=@0x4400aaa0, ray=@0x4400a7b0, 
weight=1, photonPass=false) at render/trace.cpp:532
#12 0x000000000057cc45 in pov::Trace::TraceRay (this=0xa60cc0, 
ray=@0x4400a7b0, colour=@0x4400aaa0, weight=1) at render/trace.cpp:216
#13 0x00000000005916d0 in pov::TracePixel::operator() (this=0xa60cc0, 
x=39.061198001106582, y=18.279306997855503, width=200, height=200, 
colour=@0x4400aaa0) at render/tracepixel.cpp:326
#14 0x0000000000587fdd in pov::TraceTask::SupersampleOnePixel 
(this=0xa60c30, x=39, y=18, col=@0x96b73c) at render/tracetask.cpp:711
#15 0x000000000058839d in 
pov::TraceTask::NonAdaptiveSupersamplingForOnePixel (this=0xa60c30, x=39, 
y=18, leftcol=@0x96b728, topcol=@0x96b4bc, curcol=@0x96b73c, 
sampleleft=@0x4400acfb, sampletop=@0x4400acfa, samplecurrent=@0x4400acf9) 
at render/tracetask.cpp:692
#16 0x000000000058a9b4 in pov::TraceTask::NonAdaptiveSupersamplingM1 
(this=0xa60c30) at render/tracetask.cpp:606
#17 0x000000000058ab84 in pov::TraceTask::Run (this=0xa60c30) at render/
tracetask.cpp:339
#18 0x0000000000598279 in pov::Task::TaskThread (this=0xa60c30, 
completion=@0x982180) at support/task.cpp:233
#19 0x00000000005992d2 in boost::_mfi::mf1<void, pov::Task, 
boost::function0<void, std::allocator<boost::function_base> > 
const&>::operator() (this=0x982168, p=0xa60c30, a1=@0x982180) at /usr/
include/boost/bind/mem_fn_template.hpp:162
#20 0x0000000000599382 in 
boost::_bi::list2<boost::_bi::value<pov::Task*>, 
boost::_bi::value<boost::function0<void, 
std::allocator<boost::function_base> > > >::operator()
<boost::_mfi::mf1<void, pov::Task, boost::function0<void, 
std::allocator<boost::function_base> > const&>, boost::_bi::list0> 
(this=0x982178, f=@0x982168, a=@0x4400afef) at /usr/include/boost/
bind.hpp:289
#21 0x00000000005993c2 in boost::_bi::bind_t<void, boost::_mfi::mf1<void, 
pov::Task, boost::function0<void, std::allocator<boost::function_base> > 
const&>, boost::_bi::list2<boost::_bi::value<pov::Task*>, 
boost::_bi::value<boost::function0<void, 
std::allocator<boost::function_base> > > > >::operator() (this=0x982168) 
at /usr/include/boost/bind/bind_template.hpp:20
#22 0x00000000005993e0 in 
boost::thread::thread_data<boost::_bi::bind_t<void, 
boost::_mfi::mf1<void, pov::Task, boost::function0<void, 
std::allocator<boost::function_base> > const&>, 
boost::_bi::list2<boost::_bi::value<pov::Task*>, 
boost::_bi::value<boost::function0<void, 
std::allocator<boost::function_base> > > > > >::run (this=0x982060) at /
usr/include/boost/thread/pthread/thread.hpp:130
#23 0x00002b2b50ef8f1f in thread_proxy () from /usr/lib/libboost_thread-
mt.so
#24 0x00002b2b4ed81067 in start_thread () from /lib/libpthread.so.0
#25 0x00002b2b5197eedd in clone () from /lib/libc.so.6
#26 0x0000000000000000 in ?? ()


(gdb) where
#0  0x00002b9ec6341378 in ?? () from /lib/libc.so.6
#1  0x00002b9ec634367c in ?? () from /lib/libc.so.6
#2  0x00002b9ec63453b0 in malloc () from /lib/libc.so.6
#3  0x00002b9ec5bf608b in operator new () from /usr/lib/gcc/x86_64-pc-
linux-gnu/4.2.4/libstdc++.so.6
#4  0x00000000005569d5 in __gnu_cxx::new_allocator<double>::allocate 
(this=0xbc7ad0, __n=32768) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.4/
include/g++-v4/ext/new_allocator.h:91
#5  0x00000000005569fd in std::_Vector_base<double, 
std::allocator<double> >::_M_allocate (this=0xbc7ad0, __n=32768) at /usr/
lib/gcc/x86_64-pc-linux-gnu/4.2.4/include/g++-v4/bits/stl_vector.h:128
#6  0x000000000059b9f9 in _Vector_base (this=0xbc7ad0, __n=32768, 
__a=@0x4180504f) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.4/include/g++-v4/
bits/stl_vector.h:114
#7  0x000000000059bb07 in vector (this=0xbc7ad0, __n=32768, 
__value=@0x41805050, __a=@0x4180504f) at /usr/lib/gcc/x86_64-pc-linux-
gnu/4.2.4/include/g++-v4/bits/stl_vector.h:212
#8  0x000000000059a329 in pov::RandomDoubles (minval=0, maxval=1, 
count=32768) at support/randomsequences.cpp:132
#9  0x000000000059a3e9 in RandomDoubleSequence (this=0xbc7ad0, minval=0, 
maxval=1, count=32768) at support/randomsequences.cpp:184
#10 0x00000000004b0f2c in MediaFunction (this=0xbc7ac8, td=0x9b6ef0, 
t=0xbc7968, pg=0xbc7b10) at interior/media.cpp:289
#11 0x000000000055b609 in RadiosityFunction (this=0xbc7960, 
sd=@0x41805250, td=0x9b6ef0, mtl=5, adcb=0.0039215686274509803, 
rs=@0x956eb8, rc=@0x968268, cf=@0xbc7908, ft=true) at lighting/
radiosity.cpp:241
#12 0x0000000000589510 in TraceTask (this=0xbc7360, vd=0x9680b0, tm=1, 
js=1, aat=0.30000001192092896, aad=3, ps=0, psc=false, final=true) at 
render/tracetask.cpp:294
#13 0x0000000000484d36 in pov::View::StartRender (this=0x967fb0, 
renderOptions=@0x41805cc0) at scene/view.cpp:813
#14 0x000000000046bba3 in pov::RenderBackend::StartRender 
(this=0x41805e80, msg=@0x41805cc0) at control/renderbackend.cpp:602
#15 0x0000000000470535 in 
POVMS_MessageReceiver::MemberHandlerOO<pov::RenderBackend>::Call 
(this=0x93d580, msg=@0x41805cc0, result=@0x41805ce0, mode=1) at ../../
source/base/povmscpp.h:382
#16 0x00000000005df671 in POVMS_MessageReceiver::ReceiveHandler 
(msg=0x41805e30, result=0x41805e20, mode=1, privatedataptr=0x41805e80) at 
povmscpp.cpp:1774
#17 0x00000000005dca3c in POVMS_Receive (contextref=0x93d000, 
msg=0x41805e30, result=0x41805e20, mode=1) at povms.cpp:943
#18 0x00000000005ddd01 in POVMS_ProcessMessages (contextref=0x93d000, 
blocking=true, yielding=true) at povms.cpp:687
#19 0x0000000000468386 in MainThreadFunction () at povray.cpp:540
#20 0x0000000000468dc8 in boost::_bi::list0::operator()<void (*)(), 
boost::_bi::list0> (this=0x93ce60, f=@0x93ce58) at /usr/include/boost/
bind.hpp:178
#21 0x0000000000468e00 in boost::_bi::bind_t<void, void (*)(), 
boost::_bi::list0>::operator() (this=0x93ce58) at /usr/include/boost/bind/
bind_template.hpp:20
#22 0x0000000000468e1e in 
boost::thread::thread_data<boost::_bi::bind_t<void, void (*)(), 
boost::_bi::list0> >::run (this=0x93cd50) at /usr/include/boost/thread/
pthread/thread.hpp:130
#23 0x00002b9ec5910f1f in thread_proxy () from /usr/lib/libboost_thread-
mt.so
#24 0x00002b9ec3799067 in start_thread () from /lib/libpthread.so.0
#25 0x00002b9ec6396edd in clone () from /lib/libc.so.6
#26 0x0000000000000000 in ?? ()


Post a reply to this message

From: Le Forgeron
Subject: Re: Linux Beta 28 segfaults on Slackware and Kubuntu
Date: 28 Aug 2008 16:08:43
Message: <48b705cb$1@news.povray.org>
Le Thu, 28 Aug 2008 13:58:14 -0400, Le Forgeron a modifié des petits
morceaux de l'univers pour nous faire lire :
> Either that, or the C++ memory allocator/deallocator is not thread-
> safe... or the one in libc.6 (missing an option for malloc thread-safe
> ?)
 
Well, looking on internet, looks like clone & malloc of glibc are not 
friends (glibc wants its own thread_creation to provide a thread-safe 
malloc: clone user are assumed to deal with that themselves...):

http://osdir.com/ml/lib.glibc.bugs/2003-01/msg00012.html
http://sourceware.org/ml/libc-alpha/2006-01/msg00086.html

> Program received signal SIGSEGV, Segmentation fault. 
> #2  0x00002ab9448803b0 in malloc () from /lib/libc.so.6  
> #18 0x00002ab9448d1edd in clone () from /lib/libc.so.6 

> #1  0x00002b2b5192d3b0 in malloc () from /lib/libc.so.6 
> #25 0x00002b2b5197eedd in clone () from /lib/libc.so.6 

> in malloc () from /lib/libc.so.6 
> 0x00002b9ec6396edd in clone () from /lib/libc.so.6 

Now, if I could find where in the source is that call to clone() (which 
might be via some macro & include from other libraries, might be boost 
too), it might be worth trying to clone via pthread_create instead when 
on Linux.


Post a reply to this message

From: Le Forgeron
Subject: Re: Linux Beta 28 segfaults on Slackware and Kubuntu
Date: 29 Aug 2008 16:55:07
Message: <48b8622b@news.povray.org>
Le Thu, 28 Aug 2008 16:08:43 -0400, Le Forgeron a modifié des petits
morceaux de l'univers pour nous faire lire :

> Now, if I could find where in the source is that call to clone() (which
> might be via some macro & include from other libraries, might be boost
> too), it might be worth trying to clone via pthread_create instead when
> on Linux.

Serving it myself: B*S*.

Even with boost forced on pthread (BOOST_THREAD_POSIX defined to avoid 
any ambiguity if both thread model are available (that's a comment in 
Boost includes), it still crash with 28)

Now for the good news: the 25b does not crash on my linux... for 
m_textures.ini; (whereas it really crashing everytime with 28, but not 
always at the same frame... just lucky on 25b ?)

Just a shame we do not have the intermediate 26/27 for linux to limit the 
investigation. 361 diffs is a bit a lot to compile when adding them one 
at a time. (hoping its a single change).

If anybody get a clue, please share...


Post a reply to this message

From: Le Forgeron
Subject: Re: Linux Beta 28 segfaults on Slackware and Kubuntu
Date: 4 Sep 2008 15:44:24
Message: <48c03a98$1@news.povray.org>
Le Fri, 29 Aug 2008 16:55:07 -0400, Le Forgeron a modifié des petits
morceaux de l'univers pour nous faire lire :


> If anybody get a clue, please share...

Just an additional 0.01c: the memory fault is always at the start of the 
rendering phase, the parsing has been done, 
output is

==== [Rendering...]
========================================================
Memory fault 

sometime with just a 2% overwritten. (from the 40000 pixels of the ini's 
size)

Raising MB does not change the random crash.


Post a reply to this message

From: geep999
Subject: Re: Linux Beta 28 segfaults on Slackware and Kubuntu
Date: 6 Sep 2008 06:50:00
Message: <web.48c25e1bcfc4a246b6fda8bd0@news.povray.org>
> > If anybody get a clue, please share...

Here's an intriguing tidbit...

povray m_textures.ini +Q0 - segfault
povray m_textures.ini +Q1 - segfault
povray m_textures.ini +Q2 - OK
povray m_textures.ini +Q3 - OK
povray m_textures.ini +Q4 - OK
povray m_textures.ini +Q5 - OK
povray m_textures.ini +Q6 - segfault
povray m_textures.ini +Q7 - segfault
povray m_textures.ini +Q8 - segfault
povray m_textures.ini +Q9 - segfault
povray m_textures.ini +Q10 - segfault
povray m_textures.ini +Q11 - segfault

Can anybody else duplicate this?


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.