Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[rt.cpan.org #80248] v0.72 crashes during tests on 32bit strawberry perl 5.16.1

32 views
Skip to first unread message

kmx via RT

unread,
Oct 17, 2012, 3:41:58 PM10/17/12
to libw...@perl.org
Wed Oct 17 15:41:57 2012: Request 80248 was acted upon.
Transaction: Ticket created by KMX
Queue: Win32-API
Subject: v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: Nobody
Requestors: k...@cpan.org
Status: new
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


The crash occurs during t\00_API.t:

prove -bv t\00_API.t

t\00_API.t ..
1..48
ok 1 - use Win32::API;
ok 2 - use Win32::API::Test;
ok 3 - use Win32;
ok 4 - loaded
# API test dll found at (API_test.dll)
ok 5 - found API test dll
ok 6 - GetCurrentProcessId() function found
ok 7 - GetCurrentProcessId() result ok
ok 8 - GetCurrentProcessId() result ok
ok 9 - Import of GetCurrentProcessId() function from kernel32.dll
ok 10 - GetCurrentProcessId() result ok
ok 11 - Import of IsBadReadPtr function from kernel32.dll
ok 12 - API test dll was freed
ok 13 - highbit_unsigned() function defined
ok 14 - return value for unsigned is signed on old API
ok 15 - GetHandle operates correctly
ok 16 - FreeHandle operates correctly
ok 17 - sum_integers() function defined
ok 18 - function call with integer arguments and return value
ok 19 - sum_integers_ref() function defined
ok 20 - sum_integers_ref() returns the expected value
ok 21 - sum_integers_ref() correctly modifies its ref argument
ok 22 - short as return type croak because they are structs on old API
ok 23 - sum_shorts_ref() function defined
ok 24 - shorts croak as struct objs on old API
ok 25 - API_test.dll sum_doubles function defined
ok 26 - function call with double arguments
ok 27 - sum_doubles_ref() function defined
ok 28 - sum_doubles_ref() call works
ok 29 - sum_doubles_ref() sets ref correctly
ok 30 - sum_floats() function defined
ok 31 - sum_floats() result correct
ok 32 - sum_floats_ref() function defined
ok 33 - sum_floats_ref() returns the expected value (1)
ok 34 - sum_floats_ref() call works
ok 35 - find_char() function defined
ok 36 - find_char() function call works
ok 37 - sum_char_ref() returns the expected value
ok 38 - sum_char_ref() correctly modifies its ref argument
ok 39 - numeric truncation sum_char_ref() returns the expected value
ok 40 - sum_char_ref() correctly modifies its ref argument
ok 41 - wstr_cmp() returns the expected value
ok 42 - buffer overflow protection worked
ok 43 - idiot flag works
ok 44 - cdecl c_sum_integers() function defined
Dubious, test returned 5 (wstat 1280, 0x500)
Failed 4/48 subtests

I have not investigated the issue further.

--
kmx

--
kmx

Daniel Dragan via RT

unread,
Oct 17, 2012, 3:44:54 PM10/17/12
to libw...@perl.org
Wed Oct 17 15:44:53 2012: Request 80248 was acted upon.
Transaction: Correspondence added by BULKDD
Queue: Win32-API
Subject: v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: Nobody
Requestors: k...@cpan.org
Status: new
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


Can you post perl -V?

kmx via RT

unread,
Oct 17, 2012, 4:16:16 PM10/17/12
to libw...@perl.org
Wed Oct 17 16:16:14 2012: Request 80248 was acted upon.
Transaction: Correspondence added by KMX
Queue: Win32-API
Subject: v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: Nobody
Requestors: k...@cpan.org
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


y:\>perl -V
Summary of my perl5 (revision 5 version 16 subversion 1) configuration:

Platform:
osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread
uname='Win32 strawberry-perl 5.16.1.1 #1 Thu Aug 9 09:54:46 2012 i386'
config_args='undef'
hint=recommended, useposix=true, d_sigaction=undef
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags =' -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS
-DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing
-mms-bitfields',
optimize='-s -O2',
cppflags='-DWIN32'
ccversion='', gccversion='4.6.3', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='long long',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='g++', ldflags ='-s -L"Z:\strawberry32_5161\perl\lib\CORE"
-L"Z:\strawberry32_5161\c\lib"'
libpth=Z:\strawberry32_5161\c\lib Z:\strawberry32_5161\c\i686-w64-mingw32\lib
libs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32
-lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion
-lodbc32 -lodbccp32 -lcomctl32
perllibs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32
-ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr
-lwinmm -lver
sion -lodbc32 -lodbccp32 -lcomctl32
libc=, so=dll, useshrplib=true, libperl=libperl516.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags='-mdll -s -L"Z:\strawberry32_5161\perl\lib\CORE"
-L"Z:\strawberry32_5161\c\lib"'


Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES HAVE_INTERP_INTERN MULTIPLICITY
PERLIO_LAYERS PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PL_OP_SLAB_ALLOC
USE_ITHREADS USE_LARGE_FILES USE_LOCALE
USE_LOCALE_COLLATE USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
Built under MSWin32
Compiled at Aug 9 2012 10:03:09
@INC:
Z:/strawberry32_5161/perl/site/lib
Z:/strawberry32_5161/perl/vendor/lib
Z:/strawberry32_5161/perl/lib
.

Daniel Dragan via RT

unread,
Oct 19, 2012, 1:54:54 AM10/19/12
to libw...@perl.org
Fri Oct 19 01:54:53 2012: Request 80248 was acted upon.
Transaction: Correspondence added by BULKDD
Queue: Win32-API
Subject: v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: Nobody
Requestors: k...@cpan.org
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


On Wed Oct 17 15:41:57 2012, KMX wrote:
> The crash occurs during t\00_API.t:
>
> prove -bv t\00_API.t
>
> t\00_API.t ..
> 1..48
> ok 1 - use Win32::API;
............................................
> ok 44 - cdecl c_sum_integers() function defined
> Dubious, test returned 5 (wstat 1280, 0x500)
> Failed 4/48 subtests
>
> I have not investigated the issue further.
>
> --
> kmx
>
> --
> kmx


New version posted at https://github.com/bulk88/perl5-win32-api . I
didn't do anything specific for your crash. Please try it and report
back. It seems you crashed at the first cdecl function called, all the
previous ones were stdcall. On my 32 bit Strawberry Perl 5.12.3 all
tests passed.

kmx via RT

unread,
Oct 19, 2012, 1:20:26 PM10/19/12
to libw...@perl.org
Fri Oct 19 13:20:24 2012: Request 80248 was acted upon.
Transaction: Correspondence added by k...@volny.cz
Queue: Win32-API
Subject: Re: [rt.cpan.org #80248] v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: Nobody
Requestors: k...@cpan.org
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


Unfortunately still the same failure on strawberry 5.16.1.1

Daniel Dragan via RT

unread,
Oct 20, 2012, 3:27:23 AM10/20/12
to libw...@perl.org
Sat Oct 20 03:27:22 2012: Request 80248 was acted upon.
Transaction: Correspondence added by BULKDD
Queue: Win32-API
Subject: v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: BULKDD
Requestors: k...@cpan.org
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


On Fri Oct 19 13:20:24 2012, k...@volny.cz wrote:
> Unfortunately still the same failure on strawberry 5.16.1.1

Just to confirm, from the S Perl x64 bug ticket, is 32 bit S Perl
working and passing all tests for you?

kmx via RT

unread,
Oct 20, 2012, 3:54:56 AM10/20/12
to libw...@perl.org
Sat Oct 20 03:54:55 2012: Request 80248 was acted upon.
Transaction: Correspondence added by k...@volny.cz
Queue: Win32-API
Subject: RE: [rt.cpan.org #80248] v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: BULKDD
Requestors: k...@cpan.org
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


Unfortunately 32bit strawberry 5.16.1 still crashing

--
kmx

Daniel Dragan via RT

unread,
Oct 20, 2012, 4:08:53 AM10/20/12
to libw...@perl.org
Sat Oct 20 04:08:52 2012: Request 80248 was acted upon.
Transaction: Correspondence added by BULKDD
Queue: Win32-API
Subject: v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: BULKDD
Requestors: k...@cpan.org
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


On Sat Oct 20 03:54:55 2012, k...@volny.cz wrote:
> Unfortunately 32bit strawberry 5.16.1 still crashing
>
> --
> kmx

Can you post a full run of the test suite on your 32 bit Strawberry
Perl? This is the last failing platform for Win32::API since Cygwin and
x64 Strawberry were fixed.

kmx via RT

unread,
Oct 20, 2012, 5:26:09 AM10/20/12
to libw...@perl.org
Sat Oct 20 05:26:07 2012: Request 80248 was acted upon.
Transaction: Correspondence added by KMX
Queue: Win32-API
Subject: v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: BULKDD
Requestors: k...@cpan.org
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


logs attached

build-log.txt
crash-log.txt

Daniel Dragan via RT

unread,
Oct 20, 2012, 1:12:43 PM10/20/12
to libw...@perl.org
Sat Oct 20 13:12:42 2012: Request 80248 was acted upon.
Transaction: Correspondence added by BULKDD
Queue: Win32-API
Subject: v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: BULKDD
Requestors: k...@cpan.org
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


On Sat Oct 20 03:54:55 2012, k...@volny.cz wrote:
> Unfortunately 32bit strawberry 5.16.1 still crashing
>
> --
> kmx
I decided to download 32 bit S perl 5.16.1 and so far, I think it is an
asm problem with the cdecl stack fixer/adder in call_i686.h. Variable
"words_pushed" was zero at the end of the Call_asm. I am still researching.

Daniel Dragan via RT

unread,
Oct 20, 2012, 1:21:00 PM10/20/12
to libw...@perl.org
Sat Oct 20 13:20:59 2012: Request 80248 was acted upon.
Transaction: Correspondence added by BULKDD
Queue: Win32-API
Subject: v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: BULKDD
Requestors: k...@cpan.org
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


On Sat Oct 20 13:12:42 2012, BULKDD wrote:
> On Sat Oct 20 03:54:55 2012, k...@volny.cz wrote:
> > Unfortunately 32bit strawberry 5.16.1 still crashing
> >
> > --
> > kmx
> I decided to download 32 bit S perl 5.16.1 and so far, I think it is an
> asm problem with the cdecl stack fixer/adder in call_i686.h. Variable
> "words_pushed" was zero at the end of the Call_asm. I am still
researching.

Bug identified, 32 bit Strawberry Perl 5.12 was using ebp parameter
addressing, 32 bit Strawberry Perl 5.16 is using esp parameter
addressing, since esp was moved around by "push"ing onto the stack, esp
addressing can not be used to fetch words_pushed to restore esp back to
its original position. keywords "frame pointer omission". Not sure how
to fix this yet since my knowledge of GCC is poor.

Daniel Dragan via RT

unread,
Oct 20, 2012, 3:45:17 PM10/20/12
to libw...@perl.org
Sat Oct 20 15:45:16 2012: Request 80248 was acted upon.
Transaction: Correspondence added by BULKDD
Queue: Win32-API
Subject: v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: BULKDD
Requestors: k...@cpan.org
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


On Sat Oct 20 13:20:59 2012, BULKDD wrote:
> On Sat Oct 20 13:12:42 2012, BULKDD wrote:
> > On Sat Oct 20 03:54:55 2012, k...@volny.cz wrote:
> > > Unfortunately 32bit strawberry 5.16.1 still crashing
> > >
> > > --
> > > kmx
> > I decided to download 32 bit S perl 5.16.1 and so far, I think it is an
> > asm problem with the cdecl stack fixer/adder in call_i686.h. Variable
> > "words_pushed" was zero at the end of the Call_asm. I am still
> researching.
>
> Bug identified, 32 bit Strawberry Perl 5.12 was using ebp parameter
> addressing, 32 bit Strawberry Perl 5.16 is using esp parameter
> addressing, since esp was moved around by "push"ing onto the stack, esp
> addressing can not be used to fetch words_pushed to restore esp back to
> its original position. keywords "frame pointer omission". Not sure how
> to fix this yet since my knowledge of GCC is poor.

A fix was implemented, the fix only works on GCC 4.4 or newer, so S Perl
5.16 is covered. The fix is not publically posted yet.


Daniel Dragan via RT

unread,
Oct 20, 2012, 8:19:38 PM10/20/12
to libw...@perl.org
Sat Oct 20 20:19:37 2012: Request 80248 was acted upon.
Transaction: Correspondence added by BULKDD
Queue: Win32-API
Subject: v0.72 crashes during tests on 32bit strawberry perl 5.16.1
Broken in: 0.72
Severity: (no value)
Owner: BULKDD
Requestors: k...@cpan.org
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=80248 >


On Sat Oct 20 15:45:16 2012, BULKDD wrote:
> On Sat Oct 20 13:20:59 2012, BULKDD wrote:
> > On Sat Oct 20 13:12:42 2012, BULKDD wrote:
> > > On Sat Oct 20 03:54:55 2012, k...@volny.cz wrote:
> > > > Unfortunately 32bit strawberry 5.16.1 still crashing
> > > >
> > > > --
> > > > kmx
> > > I decided to download 32 bit S perl 5.16.1 and so far, I think it
is an
> > > asm problem with the cdecl stack fixer/adder in call_i686.h. Variable
> > > "words_pushed" was zero at the end of the Call_asm. I am still
> > researching.
> >
> > Bug identified, 32 bit Strawberry Perl 5.12 was using ebp parameter
> > addressing, 32 bit Strawberry Perl 5.16 is using esp parameter
> > addressing, since esp was moved around by "push"ing onto the stack, esp
> > addressing can not be used to fetch words_pushed to restore esp back to
> > its original position. keywords "frame pointer omission". Not sure how
> > to fix this yet since my knowledge of GCC is poor.
>
> A fix was implemented, the fix only works on GCC 4.4 or newer, so S Perl
> 5.16 is covered. The fix is not publically posted yet.
>


The 32 bit Strawberry Perl 5.16 fixes are now available in Win32::API
0.73 on CPAN.
0 new messages