Bug 1129402

Summary: slic3r-1.1.6-1.fc22 FTBFS: t/01_trianglemesh.t fails
Product: [Fedora] Fedora Reporter: Petr Pisar <ppisar>
Component: slic3rAssignee: Miro Hrončok <mhroncok>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: mhroncok, perl-devel
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: http://koji.fedoraproject.org/koji/taskinfo?taskID=7280658
Whiteboard:
Fixed In Version: slic3r-1.1.7-1.fc21 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-09-29 03:59:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Petr Pisar 2014-08-12 16:48:44 UTC
slic3r-1.1.6-1.fc22 fails to build in F22 because t/01_trianglemesh.t fails:

t/01_trianglemesh.t           (Wstat: 139 Tests: 14 Failed: 0)
  Non-zero wait status: 139
  Parse errors: Bad plan.  You planned 46 tests but ran 14.

Either the file declares wrong number of tests or interpreter crashes so, the TAP output does not contain all 46 results.

The difference between last known working and this build root is:

Removed packages:
	admesh-devel-0.97.5
	admesh-libs-0.97.5
	audit-libs-2.3.7
	bash-4.3.18
	cups-libs-1.7.4
	device-mapper-1.02.87
	device-mapper-libs-1.02.87
	gnupg2-2.0.24
	harfbuzz-0.9.32
	libdrm-2.4.54
	libogg-1.3.0
	libpwquality-1.2.3
	libwebp-0.4.0
	libXfont-1.4.99.901
	openssl-1.0.1h
	openssl-libs-1.0.1h
	perl-boolean-0.30
	perl-CPAN-Meta-2.140640
	perl-CPAN-Meta-Requirements-2.125
	perl-ExtUtils-Manifest-1.63
	perl-HTTP-Tiny-0.043
	perl-libwww-perl-6.07
	perl-Net-HTTP-6.06
	perl-Sub-Name-0.07
	python-2.7.7
	python-libs-2.7.7
	tar-1.27.1
Added packages:
	admesh-devel-0.98.0
	admesh-libs-0.98.0
	audit-libs-2.3.8
	bash-4.3.22
	cups-libs-1.7.5
	device-mapper-1.02.88
	device-mapper-libs-1.02.88
	gnupg2-2.0.25
	harfbuzz-0.9.34
	libbabeltrace-1.2.1
	libdrm-2.4.56
	libogg-1.3.2
	libpwquality-1.2.4
	libwebp-0.4.1
	libXfont-1.5.0
	openssl-1.0.1i
	openssl-libs-1.0.1i
	perl-boolean-0.38
	perl-CPAN-Meta-2.142060
	perl-CPAN-Meta-Requirements-2.126
	perl-ExtUtils-Manifest-1.64
	perl-HTTP-Tiny-0.047
	perl-libwww-perl-6.08
	perl-Net-HTTP-6.07
	perl-Sub-Name-0.08
	perl-Term-ANSIColor-4.03
	python-2.7.8
	python-libs-2.7.8
	tar-1.28

Running the test manually shows the interpreter gets ABORTed by glibc allocator:

$ perl -Iblib/{arch,lib} t/01_trianglemesh.t
1..46
ok 1 - hello world
ok 2 - vertices arrayref roundtrip
ok 3 - facets arrayref roundtrip
ok 4 - normals returns the right number of items
ok 5 - cloned vertices arrayref roundtrip
ok 6 - cloned facets arrayref roundtrip
ok 7 - stats.number_of_facets
ok 8 - stats.volume
ok 9 - scale
ok 10 - scale_xyz
ok 11 - translate
ok 12 - align_to_origin
ok 13 - size
ok 14 - rotate
ok 15 - split
ok 16 - 'split' isa 'Slic3r::TriangleMesh'
ok 17 - split populates stats
*** Error in `perl': corrupted double-linked list: 0x0000000001ed8540 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7ab3e)[0x7fe4e4cbdb3e]
/lib64/libc.so.6(+0x80ec3)[0x7fe4e4cc3ec3]
/lib64/libc.so.6(+0x82a93)[0x7fe4e4cc5a93]
/lib64/libc.so.6(+0x849a1)[0x7fe4e4cc79a1]
/lib64/libc.so.6(realloc+0xeb)[0x7fe4e4cc9d1b]
/lib64/libadmesh.so.1(stl_reallocate+0x30)[0x7fe4ddb49ab0]
blib/arch/auto/Slic3r/XS/XS.so(_ZN6Slic3r12TriangleMesh5mergeEPKS0_+0x3a)[0x7fe4de20014a]
blib/arch/auto/Slic3r/XS/XS.so(+0xa139c)[0x7fe4de10039c]
/lib64/libperl.so.5.20(Perl_pp_entersub+0x4db)[0x7fe4e606c50b]
/lib64/libperl.so.5.20(Perl_runops_standard+0x26)[0x7fe4e6064c96]
/lib64/libperl.so.5.20(perl_run+0x247)[0x7fe4e5ff5557]
perl[0x400d29]
/lib64/libc.so.6(__libc_start_main+0xf0)[0x7fe4e4c630e0]
perl[0x400d61]

(Please do not pay attention to the 5.20.0 perl version. It happens with 5.18.2 too.)

Comment 1 Petr Pisar 2014-08-12 16:54:00 UTC
Here is the backtrace:

#0  0x00007ffff6741b65 in _int_malloc () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007ffff674571e in malloc () from /lib64/libc.so.6
No symbol table info available.
#2  0x00007fffef82b6a8 in operator new(unsigned long) () from /lib64/libstdc++.so.6
No symbol table info available.
#3  0x00007fffefc82a7a in allocate (this=<optimized out>, __n=128) at /usr/include/c++/4.9.1/ext/new_allocator.h:104
No locals.
#4  _M_allocate_node (this=<optimized out>) at /usr/include/c++/4.9.1/bits/stl_deque.h:538
No locals.
#5  _M_create_nodes (this=0x7fffffffe230, __nfinish=0x979a40, __nstart=0x979a38) at /usr/include/c++/4.9.1/bits/stl_deque.h:632
        __cur = 0x979a38
#6  std::_Deque_base<int, std::allocator<int> >::_M_initialize_map (this=this@entry=0x7fffffffe230, __num_elements=__num_elements@entry=0)
    at /usr/include/c++/4.9.1/bits/stl_deque.h:606
        __num_nodes = 1
        __nstart = 0x979a38
        __nfinish = 0x979a40
#7  0x00007fffefc7d464 in _Deque_base (this=0x7fffffffe230) at /usr/include/c++/4.9.1/bits/stl_deque.h:458
No locals.
#8  deque (this=0x7fffffffe230) at /usr/include/c++/4.9.1/bits/stl_deque.h:788
No locals.
#9  Slic3r::TriangleMesh::split (this=<optimized out>) at src/TriangleMesh.cpp:224
        facet_queue = std::queue wrapping: std::deque with 0 elements
        facets = std::deque with -128 elements
        mesh = 0x982ee0
        first = <optimized out>
        meshes = std::vector of length 2, capacity 2 = {0x982d90, 0x982ee0}
        seen_facets = std::set with 24 elements = {[0] = 0, [1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5, [6] = 6, [7] = 7, [8] = 8, [9] = 9, [10] = 10, [11] = 11, [12] = 12, 
          [13] = 13, [14] = 14, [15] = 15, [16] = 16, [17] = 17, [18] = 18, [19] = 19, [20] = 20, [21] = 21, [22] = 22, [23] = 23}
        __func__ = "split"
#10 0x00007fffefbb3060 in XS_Slic3r__TriangleMesh_split (my_perl=<optimized out>, cv=<optimized out>)
    at /usr/bin/perl -MExtUtils::XSpp::Cmd -e xspp -- -t "/home/test/fedora/slic3r/Slic3r-1.1.6/xs/xsp/typemap.xspt"  "/home/test/fedora/slic3r/Slic3r-1.1.6/xs/xsp/TriangleMesh.xsp":232
        THIS = <optimized out>
        RETVAL = std::vector of length 0, capacity 0
        av = <optimized out>
        i = <optimized out>
        sp = <optimized out>
        ax = 1
#11 0x00007ffff7ae850b in Perl_pp_entersub () from /lib64/libperl.so.5.20
No symbol table info available.
#12 0x00007ffff7ae0c96 in Perl_runops_standard () from /lib64/libperl.so.5.20
No symbol table info available.
#13 0x00007ffff7a71557 in perl_run () from /lib64/libperl.so.5.20
No symbol table info available.
#14 0x0000000000400d29 in main ()
No symbol table info available.

Comment 2 Miro Hrončok 2014-08-12 19:19:46 UTC
Thanks for reporting, I know about this and I am already working on it, but I had to postpone it because of Flock.

Comment 3 Miro Hrončok 2014-08-12 19:22:32 UTC
For the record, it is caused by slightly different behavior of new admesh-libs (slic3r bundles older version).

Comment 4 Fedora Update System 2014-09-23 16:07:25 UTC
slic3r-1.1.7-1.fc21,admesh-0.98.1-1.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/slic3r-1.1.7-1.fc21,admesh-0.98.1-1.fc21

Comment 5 Fedora Update System 2014-09-24 15:46:31 UTC
Package slic3r-1.1.7-1.fc21, admesh-0.98.1-1.fc21:
* should fix your issue,
* was pushed to the Fedora 21 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing slic3r-1.1.7-1.fc21 admesh-0.98.1-1.fc21'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2014-11213/slic3r-1.1.7-1.fc21,admesh-0.98.1-1.fc21
then log in and leave karma (feedback).

Comment 6 Fedora Update System 2014-09-29 03:59:21 UTC
slic3r-1.1.7-1.fc21, admesh-0.98.1-1.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.