Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Floating point exception thrown by Slic3r in DLP mode. #4130

Open
lordofhyphens opened this issue Sep 21, 2017 · 4 comments
Open

Floating point exception thrown by Slic3r in DLP mode. #4130

lordofhyphens opened this issue Sep 21, 2017 · 4 comments

Comments

@lordofhyphens
Copy link
Member

lordofhyphens commented Sep 21, 2017

Commit: 7e018f1
Error: Program terminated with signal SIGFPE, Arithmetic exception.

Core-file:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./slic3r /home/lenox/3d/benchy/files/3DBenchy.stl --export-svg --load /home/len'.
Program terminated with signal SIGFPE, Arithmetic exception.
b#0  0x000055cc29f2433e in Slic3r::FillCubic::_fill_surface_single (this=0x7fa468004620, thickness_layers=1, direction=..., expolygon=..., out=0x7fa4751fa930)
    at /home/lenox/slic3r/xs/src/libslic3r/Fill/FillRectilinear.cpp:528
528	    const coord_t x_shift = (coord_t)(scale_(this->z) + range) % (coord_t)(range*3);
[Current thread is 1 (Thread 0x7fa4751fb700 (LWP 16025))]
(gdb) back
#0  0x000055cc29f2433e in Slic3r::FillCubic::_fill_surface_single (this=0x7fa468004620, thickness_layers=1, direction=..., expolygon=..., out=0x7fa4751fa930)
    at /home/lenox/slic3r/xs/src/libslic3r/Fill/FillRectilinear.cpp:528
#1  0x000055cc29f191a8 in Slic3r::Fill::fill_surface (this=0x7fa468004620, surface=...) at /home/lenox/slic3r/xs/src/libslic3r/Fill/Fill.cpp:70
#2  0x000055cc29e830e1 in Slic3r::SLAPrint::_infill_layer (this=0x7ffc10529a60, i=1, _fill=0x55cc2b44ef70) at /home/lenox/slic3r/xs/src/libslic3r/SLAPrint.cpp:197
#3  0x000055cc29e901c8 in boost::_mfi::mf2<void, Slic3r::SLAPrint, unsigned long, Slic3r::Fill const*>::operator() (this=0x7fa4680008c0, p=0x7ffc10529a60, a1=1, a2=0x55cc2b44ef70)
    at /usr/include/boost/bind/mem_fn_template.hpp:280
#4  0x000055cc29e8f5c8 in boost::_bi::list3<boost::_bi::value<Slic3r::SLAPrint*>, boost::arg<1>, boost::_bi::value<Slic3r::Fill*> >::operator()<boost::_mfi::mf2<void, Slic3r::SLAPrint, unsigned long, Slic3r::Fill const*>, boost::_bi::rrlist1<unsigned long> > (this=0x7fa4680008d0, f=..., a=...) at /usr/include/boost/bind/bind.hpp:398
#5  0x000055cc29e8e546 in boost::_bi::bind_t<void, boost::_mfi::mf2<void, Slic3r::SLAPrint, unsigned long, Slic3r::Fill const*>, boost::_bi::list3<boost::_bi::value<Slic3r::SLAPrint*>, boost::arg<1>, boost::_bi::value<Slic3r::Fill*> > >::operator()<unsigned long>(unsigned long&&) (this=0x7fa4680008c0, 
    a1=<unknown type in /mnt/fiver/slic3r/src/slic3r, CU 0x327301, DIE 0x37bea1>) at /usr/include/boost/bind/bind.hpp:1306
#6  0x000055cc29e8d1f0 in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf2<void, Slic3r::SLAPrint, unsigned long, Slic3r::Fill const*>, boost::_bi::list3<boost::_bi::value<Slic3r::SLAPrint*>, boost::arg<1>, boost::_bi::value<Slic3r::Fill*> > >, void, unsigned long>::invoke (function_obj_ptr=..., a0=1)
    at /usr/include/boost/function/function_template.hpp:159
#7  0x000055cc29e8d872 in boost::function1<void, unsigned long>::operator() (this=0x7fa4751fae30, a0=1) at /usr/include/boost/function/function_template.hpp:771
#8  0x000055cc29e8b6b8 in Slic3r::_parallelize_do<unsigned long>(std::queue<unsigned long, std::deque<unsigned long, std::allocator<unsigned long> > >*, boost::mutex*, boost::function<void (unsigned long)>) (queue=0x7ffc10529100, queue_mutex=0x7ffc10528f90, func=...) at /home/lenox/slic3r/xs/src/libslic3r/libslic3r.h:90
#9  0x000055cc29e91abf in boost::_bi::list3<boost::_bi::value<std::queue<unsigned long, std::deque<unsigned long, std::allocator<unsigned long> > >*>, boost::_bi::value<boost::mutex*>, boost::_bi::value<boost::function<void (unsigned long)> > >::operator()<void (*)(std::queue<unsigned long, std::deque<unsigned long, std::allocator<unsigned long> > >*, boost::mutex*, boost::function<void (unsigned long)>), boost::_bi::list0>(boost::_bi::type<void>, void (*&)(std::queue<unsigned long, std::deque<unsigned long, std::allocator<unsigned long> > >*, boost::mutex*, boost::function<void (unsigned long)>), boost::_bi::list0&, int) (this=0x55cc2e09c920, 
    f=@0x55cc2e09c918: 0x55cc29e8b630 <Slic3r::_parallelize_do<unsigned long>(std::queue<unsigned long, std::deque<unsigned long, std::allocator<unsigned long> > >*, boost::mutex*, boost::function<void (unsigned long)>)>, a=...) at /usr/include/boost/bind/bind.hpp:398
#10 0x000055cc29e917ff in boost::_bi::bind_t<void, void (*)(std::queue<unsigned long, std::deque<unsigned long, std::allocator<unsigned long> > >*, boost::mutex*, boost::function<void (unsigned long)>), boost::_bi::list3<boost::_bi::value<std::queue<unsigned long, std::deque<unsigned long, std::allocator<unsigned long> > >*>, boost::_bi::value<boost::mutex*>, boost::_bi::value<boost::function<void (unsigned long)> > > >::operator()() (this=0x55cc2e09c918) at /usr/include/boost/bind/bind.hpp:1294
#11 0x000055cc29e91520 in boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(std::queue<unsigned long, std::deque<unsigned long, std::allocator<unsigned long> > >*, boost::mutex*, boost::function<void (unsigned long)>), boost::_bi::list3<boost::_bi::value<std::queue<unsigned long, std::deque<unsigned long, std::allocator<unsigned long> > >*>, boost::_bi::value<boost::mutex*>, boost::_bi::value<boost::function<void (unsigned long)> > > > >::run() (this=0x55cc2e09c760) at /usr/include/boost/thread/detail/thread.hpp:116
#12 0x00007fa476aa2116 in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.62.0
#13 0x00007fa476047494 in start_thread (arg=0x7fa4751fb700) at pthread_create.c:333
#14 0x00007fa475a85aff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Config and test STL.
4130.zip

Executed from command line.

@jdevelop
Copy link

      Message: Process 12092 (perl-local) of user 1000 dumped core.
                
                Stack trace of thread 12152:
                #0  0x00007f054b01c343 _ZN6Slic3r5Point13align_to_gridERKS0_S2_ (XS.so)
                #1  0x00007f054b029a53 _ZN6Slic3r13FillHoneycomb20_fill_surface_singleEjRKSt4pairIfNS_5PointEERNS_9ExPolygonEPSt6vectorINS_8PolylineESaIS9_EE (XS.so)
                #2  0x00007f054b0a52f6 _ZN6Slic3r4Fill12fill_surfaceERKNS_7SurfaceE (XS.so)
                #3  0x00007f054b0a653f _ZN6Slic3r8SLAPrint13_infill_layerEmPKNS_4FillE (XS.so)
                #4  0x00007f054b0a8203 _ZN6Slic3r15_parallelize_doImEEvPSt5queueIT_St5dequeIS2_SaIS2_EEEPN5boost5mutexENS8_8functionIFvS2_EEE (XS.so)
                #5  0x00007f054b0a7f5d _ZN5boost6detail11thread_dataINS_3_bi6bind_tIvPFvPSt5queueImSt5dequeImSaImEEEPNS_5mutexENS_8functionIFvmEEEENS2_5list3INS2_5valueIS9_EENSI_I
                #6  0x00007f054b109295 thread_proxy (XS.so)
                #7  0x00007f054d45008a start_thread (libpthread.so.0)
                #8  0x00007f054ca001bf __clone (libc.so.6)
                
                Stack trace of thread 12094:
                #0  0x00007f054c9f5cbb __poll (libc.so.6)
                #1  0x00007f0546ee5c09 n/a (libglib-2.0.so.0)
                #2  0x00007f0546ee5d1c g_main_context_iteration (libglib-2.0.so.0)
                #3  0x00007f0546ee5d61 n/a (libglib-2.0.so.0)
                #4  0x00007f0546f0cae5 n/a (libglib-2.0.so.0)
                #5  0x00007f054d45008a start_thread (libpthread.so.0)
                #6  0x00007f054ca001bf __clone (libc.so.6)
                
                Stack trace of thread 12153:
                #0  0x00007f054ca001b1 __clone (libc.so.6)
                #1  0x00007ffc4693a750 n/a (n/a)
                #2  0x00007ffc4693a601 n/a (n/a)
                #3  0x0000000000000000 n/a (n/a)

@lordofhyphens
Copy link
Member Author

Well, part of the problem is that config.layer_height defaults to 0 apparently, so the layer push in the slice() method adds layers until it runs out of memory.

@lordofhyphens
Copy link
Member Author

lordofhyphens commented Sep 29, 2017

@jdevelop on the CLI, anyway, you probably want to specify the options manually or generate a Slic3r config and export it and load that on the CLI.

I don't know why the GUI config isn't being loaded.

Looks like I had found a different bug #4139 when debugging your issue by mistake.

@lordofhyphens
Copy link
Member Author

@jdevelop as a short-term workaround, try setting your infill to 100% and rectilinear. Or 0% infill.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants