Bug 8367

Summary: ptest - perl tests fail for genericx86-64 on NUC
Product: [QA/Testing] Runtime Testing Reporter: Alexandru Georgescu <alexandru.c.georgescu>
Component: generalAssignee: Armin Kuster <akuster>
Status: VERIFIED FIXED QA Contact: Lucian Musat <georgex.l.musat>
Severity: normal    
Priority: Medium+ CC: hongxu.jia, jpuhlman, maxin.john, randy.macleod, ross.burton
Version: 1.9   
Target Milestone: 2.0   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)
Bug Depends on:    
Bug Blocks: 9119    
Attachments:
Description Flags
Difference between 5.20 and 5.22 errno.pm
none
Very preliminary fix. none

Description Alexandru Georgescu 2015-09-22 06:36:45 UTC
AB Link: http://autobuilder.yoctoproject.org/pub/releases/yocto-1.8_M1+snapshot/ptest/machines/genericx86-64/core-image-sato-sdk-genericx86-64.hddimg

HW: Tested on NUC

Steps to reproduce:
When running pTEst suite, perl tests failed


Commit: ea562de57590c966cd5a75fda8defecd397e6436
Previous Commit: c75cefe8a382a63f625123c156137782db118f64

Sanity report here: https://wiki.yoctoproject.org/wiki/Ptest_ea562de57590c966cd5a75fda8defecd397e6436

Results for NUC ptest perl 2015-09-15:
********************************
Tests that failed now and worked last time: 75
cpan/IO-Socket-IP/t/16v6only
cpan/IO-Socket-IP/t/02local-server-v4
cpan/IO-Socket-IP/t/15io-socket
cpan/HTTP-Tiny/t/050_chunked_body
cpan/HTTP-Tiny/t/030_response
cpan/IO-Socket-IP/t/19no-addrs
cpan/HTTP-Tiny/t/102_put
dist/IO/t/io_multihomed
cpan/libnet/t/ftp
cpan/HTTP-Tiny/t/070_cookie_jar
cpan/IO-Socket-IP/t/06local-cross-v6
cpan/HTTP-Tiny/t/141_no_proxy
cpan/IO-Socket-IP/t/20subclass
cpan/HTTP-Tiny/t/000_load
t/run/switches
cpan/IO-Socket-IP/t/05local-server-v6
cpan/IO-Socket-IP/t/31nonblocking-connect-internet
cpan/HTTP-Tiny/t/101_head
dist/IO/t/io_sel
cpan/IO-Socket-IP/t/30nonblocking-connect
cpan/libnet/t/nntp_ssl
cpan/HTTP-Tiny/t/020_headers
cpan/HTTP-Tiny/t/140_proxy
cpan/IO-Socket-IP/t/18fdopen
cpa n/IO-Socket-IP/t/10args
dist/IO/t/cachepropagate-unix
cpan/IO-Socket-IP/t/01local-client-v4
dist/IO/t/IO
cpan/HTTP-Tiny/t/103_delete
cpan/HTTP-Tiny/t/010_url
dist/IO/t/io_unix
cpan/IO-Socket-IP/t/03local-cross-v4
dist/IO/t/cachepropagate-tcp
cpan/HTTP-Tiny/t/130_redirect
cpan/IO-Socket-IP/t/13addrinfo
cpan/IO-Socket-IP/t/21as-inet
t/io/fs
cpan/libnet/t/pop3_ipv6
cpan/File-Fetch/t/01_File-Fetch
cpan/libnet/t/pop3_ssl
cpan/HTTP-Tiny/t/160_cookies
cpan/HTTP-Tiny/t/161_basic_auth
cpan/HTTP-Tiny/t/001_api
cpan/libnet/t/require
cpan/HTTP-Tiny/t/104_post
ext/Errno/t/ErrnoEND
cpan/HTTP-Tiny/t/150_post_form
dist/IO/t/io_sock
dist/IO/t/io_udp
dist/autouse/t/autouse
cpan/IO-Socket-IP/t/12port-fallback
cpan/libnet/t/smtp_ipv6
cpan/HTTP-Tiny/t/110_mirror
cpan/HTTP-Tiny/t/100_get
cpan/IO-Socket-IP/t/14fileno
cpan/HTTP-Tiny/t/002_croakag e
cpan/libnet/t/smtp
cpan/HTTP-Tiny/t/060_http_date
cpan/IO-Socket-IP/t/04local-client-v6
cpan/HTTP-Tiny/t/003_agent
cpan/libnet/t/nntp_ipv6
t/re/reg_namedcapture
cpan/IO-Socket-IP/t/17gai-flags
cpan/IO-Socket-IP/t/00use
cpan/HTTP-Tiny/t/170_keepalive
cpan/IO-Socket-IP/t/22timeout
t/op/magic
cpan/HTTP-Tiny/t/040_content
cpan/libnet/t/smtp_ssl
t/io/open
cpan/IO-Socket-IP/t/11sockopts
cpan/libnet/t/nntp
dist/IO/t/cachepropagate-udp
cpan/HTTP-Tiny/t/162_proxy_auth
cpan/Socket/t/socketpair
Tests that passed now and and failed last time: 0

Tests that were skipped now and worked last time: 263
ext/SDBM_File/t/constants
ext/XS-APItest/t/weaken
ext/XS-APItest/t/stuff_modify_bug
ext/Pod-Html/t/htmlescp
lib/DirHandle
ext/XS-APItest/t/pad_scalar
ext/POSIX/t/unimplemented
lib/File/stat
ext/XS-APItest/t/gv_fetchmeth_au toload
ext/Pod-Functions/t/Functions
ext/XS-APItest/t/svpv
lib/Tie/ExtraHash
lib/Tie/Scalar
ext/POSIX/t/math
ext/FileCache/t/07noimport
ext/POSIX/t/termios
ext/XS-APItest/t/keyword_plugin
lib/Thread
ext/XS-APItest/t/temp_lv_sub
ext/XS-APItest/t/peep
ext/XS-APItest/t/push
lib/Tie/SubstrHash
ext/POSIX/t/sigaction
ext/XS-APItest/t/exception
ext/FileCache/t/05override
ext/XS-APItest/t/handy
lib/subs
lib/Pod/t/Usage
dist/Net-Ping/t/450_service
lib/vars_carp
lib/Pod/t/Select
ext/File-Glob/t/rt114984
lib/User/pwent
ext/XS-APItest/t/lvalue
ext/XS-APItest/t/printf
lib/File/stat-7896
ext/XS-APItest/t/postinc
lib/Tie/Array/std
lib/overloading
lib/B/Deparse-subclass
lib/vars
ext/XS-APItest/t/op
ext/I18N-Langinfo/t/Langinfo
ext/XS-APItest/t/overload
ext/XS-APItest/t/my_cxt
ext/File-DosGlob/t/DosGlob
e xt/XS-APItest/t/call_checker
ext/re/t/reflags
lib/Tie/Array/stdpush
ext/Pod-Html/t/htmllink
lib/DBM_Filter/t/01error
lib/B/Deparse-core
lib/File/Basename
ext/Errno/t/Errno
ext/XS-APItest/t/newDEFSVOP
ext/FileCache/t/03append
ext/XS-APItest/t/sym-hook
lib/Tie/Handle/stdhandle_from_handle
ext/XS-APItest/t/scopelessblock
ext/POSIX/t/is
ext/Pod-Html/t/eol
lib/Benchmark
lib/Time/gmtime
ext/XS-APItest/t/newCONSTSUB
ext/XS-APItest/t/swaplabel
ext/XS-APItest/t/gv_init
lib/blib
ext/ODBM_File/t/odbm
ext/FileCache/t/04twoarg
ext/FileCache/t/02maxopen
ext/XS-APItest/t/pmflag
lib/open
ext/POSIX/t/strerror_errno
ext/XS-APItest/t/blockhooks
lib/English
ext/POSIX/t/sysconf
lib/Net/hostent
ext/POSIX/t/waitpid
lib/feature/unicode_strings
ext/XS-APItest/t/ptr_table
lib/feature
ext/Pod-Html/t/anchorify
ext/IPC-Open3/t /IPC-Open2
ext/IPC-Open3/t/IPC-Open3
ext/XS-APItest/t/sviscow
ext/NDBM_File/t/ndbm
ext/XS-APItest/t/arrayexpr
ext/Pod-Html/t/crossref2
ext/Pod-Html/t/crossref3
lib/Symbol
lib/dumpvar
lib/Tie/Array/splice
lib/AnyDBM_File
lib/Internals
ext/XS-APItest/t/loopblock
ext/Hash-Util-FieldHash/t/11_hashassign
lib/locale
ext/re/t/re
ext/PerlIO-encoding/t/nolooping
ext/PerlIO-scalar/t/scalar
lib/h2ph
lib/DB
ext/XS-APItest/t/sort
ext/POSIX/t/taint
ext/XS-APItest/t/gv_autoload4
ext/XS-APItest/t/op_list
ext/XS-APItest/t/whichsig
ext/POSIX/t/wrappers
ext/XS-APItest/t/underscore_length
ext/XS-APItest/t/clone-with-stack
lib/integer
ext/Hash-Util-FieldHash/t/12_hashwarn
ext/POSIX/t/usage
ext/XS-APItest/t/magic
lib/Tie/Handle/stdhandle
lib/sigtrap
lib/strict
ext/XS-APItest/t/svpv_magic
ext/XS-APItest/t/coplabel
e xt/Hash-Util-FieldHash/t/02_function
lib/Getopt/Std
lib/diagnostics
ext/XS-APItest/t/gv_fetchmeth
ext/Hash-Util-FieldHash/t/04_thread
ext/XS-APItest/t/refs
lib/vmsish
ext/XS-APItest/t/svcat
ext/File-Find/t/find
lib/Net/servent
ext/XS-APItest/t/stmtsasexpr
ext/XS-APItest/t/hash
ext/Pod-Html/t/htmlview
lib/DBM_Filter/t/02core
ext/XS-APItest/t/synthetic_scope
ext/SDBM_File/t/sdbm
ext/File-Glob/t/basic
ext/Pod-Html/t/cache
ext/Pod-Html/t/podnoerr
ext/XS-APItest/t/utf8
lib/SelectSaver
lib/DBM_Filter/t/null
ext/re/t/strict
ext/POSIX/t/posix
ext/XS-APItest/t/my_exit
ext/FileCache/t/01open
ext/Opcode/t/ops
ext/XS-APItest/t/labelconst
lib/Unicode/UCD
ext/XS-APItest/t/rv2cv_op_cv
ext/XS-Typemap/t/Typemap
ext/XS-APItest/t/gv_const_sv
ext/Pod-Html/t/crossref
ext/Opcode/t/Opcode
ext/re/t/re_funcs
ext/XS-APItest/t/ev al-filter
ext/Hash-Util/t/Util
lib/FileHandle
ext/PerlIO-encoding/t/fallback
lib/Pod/t/utils
ext/Sys-Hostname/t/Hostname
t/op/waitpid
ext/Fcntl/t/mode
lib/Tie/Hash
ext/re/t/lexical_debug
ext/Fcntl/t/autoload
lib/B/Deparse
lib/Net/protoent
ext/POSIX/t/export
ext/XS-APItest/t/xs_special_subs
ext/XS-APItest/t/customop
ext/POSIX/t/sigset
ext/XS-APItest/t/autoload
ext/XS-APItest/t/blockhooks-csc
ext/Fcntl/t/fcntl
ext/XS-APItest/t/xsub_h
lib/sort
ext/XS-APItest/t/keyword_multiline
ext/XS-APItest/t/xs_special_subs_require
lib/less
ext/XS-APItest/t/cleanup
ext/File-Glob/t/taint
lib/warnings
lib/DBM_Filter/t/compress
ext/File-Glob/t/global
ext/XS-APItest/t/fetch_pad_names
lib/filetest
ext/POSIX/t/time
lib/overload
ext/XS-APItest/t/addissub
lib/File/Copy
ext/XS-APItest/t/copstash
ext/XS-APItest/t/callre gexec
ext/XS-APItest/t/cophh
ext/Pod-Html/t/feature
ext/XS-APItest/t/multicall
ext/XS-APItest/t/caller
lib/FindBin
lib/Pod/t/InputObjects
ext/Pod-Html/t/htmldir1
ext/XS-APItest/t/mro
ext/Pod-Html/t/htmldir2
ext/Pod-Html/t/htmldir5
ext/Hash-Util-FieldHash/t/03_class
lib/overload64
lib/Class/Struct
ext/XS-APItest/t/utf16_to_utf8
ext/Tie-Memoize/t/Tie-Memoize
ext/IPC-Open3/t/fd
ext/re/t/qr
lib/utf8
ext/XS-APItest/t/copyhints
ext/Pod-Html/t/htmldir3
ext/Pod-Html/t/htmldir4
ext/XS-APItest/t/join_with_space
ext/XS-APItest/t/gotosub
ext/XS-APItest/t/op_contextualize
lib/DBM_Filter/t/int32
ext/XS-APItest/t/stuff_svcur_bug
ext/Pod-Html/t/poderr
lib/meta_notation
ext/Tie-Hash-NamedCapture/t/tiehash
ext/XS-APItest/t/call
ext/XS-APItest/t/savehints
lib/User/grent
lib/Config/Extensions
ext/XS-APItest/t/stmtasexpr
li b/DBM_Filter/t/encode
ext/XS-APItest/t/cv_name
ext/XS-APItest/t/rmagical
lib/charnames
lib/h2xs
lib/bytes
ext/XS-APItest/t/gv_fetchmethod_flags
ext/XS-APItest/t/grok
ext/Hash-Util-FieldHash/t/01_load
ext/SDBM_File/t/prep
lib/Time/localtime
ext/Fcntl/t/syslfs
ext/re/t/regop
ext/File-Glob/t/case
ext/Pod-Html/t/feature2
ext/XS-APItest/t/blockasexpr
ext/XS-APItest/t/magic_chain
ext/File-Glob/t/threads
ext/re/t/re_funcs_u
ext/XS-APItest/t/subcall
ext/FileCache/t/06export
lib/File/Compare
ext/XS-APItest/t/svpeek
ext/XS-APItest/t/svsetsv
ext/XS-APItest/t/check_warnings
ext/XS-APItest/t/looprest
lib/DBM_Filter/t/utf8
lib/Tie/Array/push
lib/perl5db
ext/PerlIO-encoding/t/encoding
ext/XS-APItest/t/swaptwostmts
ext/Hash-Util-FieldHash/t/05_perlhook
ext/PerlIO-scalar/t/scalar_ungetc
lib/Config
ext/XS-APItest/t/lexsub
ext/File-Find/t/taint
ext/PerlIO-via/t/via
Comment 1 Saul Wold 2015-09-24 15:43:57 UTC
Hongxu is the perl owner, possibly he should look into this. There is nothing 
obvious in the commits between the two listed.

Question for AlexG and Lucian: Did this fail on any other hardware or qemu?  It 
would be helpful to have full hardware information in each of those ptests wiki 
pages.
Comment 2 Maxin B. John 2015-10-05 13:23:48 UTC
The failures could be related to the gcc version used for building perl (gcc-5.2.0) as these failures doesn't occur while running ptest on image built with gcc-4.8

ie: build the image with

GCCVERSION="4.8%"

in local.conf
Comment 3 Ross Burton 2015-10-19 11:59:40 UTC
Armin, would you or someone else at Montavista be able to look into this for 2.0?
Comment 4 Jeremy A. Puhlman 2015-10-19 20:51:14 UTC
Created attachment 2805 [details]
Difference between 5.20 and 5.22 errno.pm

After running the ptest for perl, the errors that it was reporting appear to center around errno issues. 

Comparing the Errno.pm between 1.8 and 2.0 shows the Errno content is just not getting generated in 2.0. 

5.22 should already have fixes for dealing with this, but it appears they may not be working in the cross compilation environment.

https://rt.perl.org/Public/Bug/Display.html?id=123784

Still digging to figure out why, but here is a data point if anyone else is looking.
Comment 5 Jeremy A. Puhlman 2015-10-19 21:35:22 UTC
Once I copied over the contents of 5.20 to 5.22 for Errno.pm, a cursory look at the test cases seems to fix a number of the failing cases.

The reason why the 5.22 fixes didn't deal with the problem is because the changes were keyed off the compiler used to build miniperl or in our case perl-native. It checks $Config{gccversion} which will report the value that the running perl was compiled against.

<snip ext/Errno/Errno_pm.PL>
        my $inhibit_linemarkers = '';
        if ($Config{gccversion} =~ /\A(\d+)\./ and $1 >= 5) {
            # GCC 5.0 interleaves expanded macros with line numbers breaking
            # each line into multiple lines. RT#123784
            $inhibit_linemarkers = ' -P';
        }
<snip ext/Errno/Errno_pm.PL>

The command to create the file is here:
"../../../../../../../sysroots/x86_64-linux/usr/bin/perl-native/perl5.22.0.real" "-I../../lib" "-I../../lib" Errno_pm.PL Errno.pm


cat foo.pl
use Config;
print $Config{gccversion}
[perl-5.22.0]$ ../../../../../sysroots/x86_64-linux/usr/bin/perl-native/perl5.22.0.real foo.pl
4.4.7 20120313 (Red Hat 4.4.7-11)
Comment 6 Jeremy A. Puhlman 2015-10-19 22:41:25 UTC
Created attachment 2806 [details]
Very preliminary fix.

Here is a very preliminary fix that seems to solve the issue. Perl is not my language, but this seems to correct the empty Errno.pm. To this point I have only run this against the 5.2 compiler, but I have a 4.8 build running right now. Ill am also running a ptest run against the perl built with this patch, so far it is looking much better.
Comment 7 Armin Kuster 2015-10-23 16:18:40 UTC
Jeremy,

Can you submit this patch to the list and CC Jens Rehsack
Comment 8 Jeremy A. Puhlman 2015-10-24 17:23:31 UTC
Patch submitted to the list.
Comment 9 Ross Burton 2015-10-27 13:58:23 UTC
Fixed in oe-core c616e05691ec143066df8f416cc0b6b464fabd02.
Comment 10 Lucian Musat 2015-11-02 07:58:25 UTC
Ran again the perl ptest on commit 370a2916c4559c17952392b872322e8e490b124c. There were 2256 passed and 10 fails, as opposed to 1926 passed and 84 fails last runs.
I am marking this as verified fixed.