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
Test failures on amd64-freebsd 6.2 #9030
Comments
From srezic@cpan.orgCreated by srezic@cpan.orgWith bleedperl I get the following test failures: t/io/pipe.....................................................FAILED--expected 24 tests, saw 8 ext/IO/t/io_pipe..............................................FAILED--expected 10 tests, saw 8 ext/Time/HiRes/t/HiRes........................................ The following two look fishy, but do not generate a failure: ext/IPC/SysV/t/ipcsysv........................................# cannot proceed: semget() error: No space left on device lib/CPANPLUS/t/40_CPANPLUS-Internals-Report...................Integer overflow in version at /mnt/i386/usr/local/src/bleedperl-amd64/t/../lib/version.pm line 19. With another configuration (debugging turned on, maybe other changes too) ext/File/Glob/t/basic.........................................FAILED at test 8 Regards, Perl Info
|
From david@landgren.netsrezic@cpan.org (via RT) wrote:
This at least is normal, it's a question of resource acquisition. I That should probably be a skip(), come to think of it. David |
The RT System itself - Status changed from 'new' to 'open' |
From @eserteDavid Landgren <david@landgren.net> writes:
Or just lower the number of semaphores to acquire. I only seem to have $ ipcs -s These kernel limits seem to apply to semaphores: kern.ipc.semaem: 16384 Maybe one of the both limits with the value "10" are hitting here I propose the following patch: Inline Patch--- bleedperl-amd64/ext/IPC/SysV/t/ipcsysv.t Tue Jun 13 21:29:08 2006
+++ bleedperl2-amd64/ext/IPC/SysV/t/ipcsysv.t Wed Sep 19 21:49:03 2007
@@ -148,8 +148,11 @@ SKIP: {
use IPC::SysV qw(IPC_CREAT GETALL SETALL);
+ # FreeBSD's default limit seems to be 9
+ my $nsem = 5;
+
my $test_name = 'sem acquire';
- $sem = semget(IPC_PRIVATE, 10, $perm | IPC_CREAT);
+ $sem = semget(IPC_PRIVATE, $nsem, $perm | IPC_CREAT);
if ($sem) {
pass($test_name);
}
@@ -166,8 +169,6 @@ SKIP: {
ok(semctl($sem,0,IPC_STAT,$data),'sem data call');
cmp_ok(length($data),'>',0,'sem data len');
-
- my $nsem = 10;
ok(semctl($sem,0,SETALL,pack("s!*",(0) x $nsem)), 'set all sems');
-- Slaven Rezic - slaven <at> rezic <dot> de tksm - Perl/Tk program for searching and replacing in multiple files |
From david@landgren.netSlaven Rezic wrote:
Maybe 10 was chosen because it exercises problems on other platforms? So... my David
|
From @rgsOn 19 Sep 2007 21:56:00 +0200, Slaven Rezic <slaven@rezic.de> wrote:
Thanks, applied as #31967. |
From @eserteThe test failures were all caused by SIGBUS or SIGILL signals when I am not sure if the attached patch is correct. Are there systems which Regards, |
From @esertecsighandler.patch#
#
# To apply this patch:
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'applypatch' program with this patch file as input.
#
# If you do not have 'applypatch', it is part of the 'makepatch' package
# that you can fetch from the Comprehensive Perl Archive Network:
# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
# In the above URL, 'x' should be 2 or higher.
#
# To apply this patch without the use of 'applypatch':
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'patch' program with this file as input.
#
#### End of Preamble ####
#### Patch data follows ####
diff -up 'bleedperl-amd64/embed.fnc' 'bleedperl2-amd64/embed.fnc'
Index: ./embed.fnc
--- ./embed.fnc Mon Sep 17 23:08:36 2007
+++ ./embed.fnc Wed Sep 19 21:58:57 2007
@@ -787,8 +787,8 @@ p |I32 |setenv_getix |NN const char* nam
EXp |void |setdefout |NULLOK GV* gv
Ap |HEK* |share_hek |NN const char* str|I32 len|U32 hash
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-np |Signal_t |sighandler |int sig|...
-Anp |Signal_t |csighandler |int sig|...
+np |Signal_t |sighandler |int sig|NULLOK siginfo_t *info|NULLOK void *uap
+Anp |Signal_t |csighandler |int sig|NULLOK siginfo_t *info|NULLOK void *uap
#else
np |Signal_t |sighandler |int sig
Anp |Signal_t |csighandler |int sig
diff -up 'bleedperl-amd64/embed.h' 'bleedperl2-amd64/embed.h'
Index: ./embed.h
--- ./embed.h Mon Sep 17 23:08:36 2007
+++ ./embed.h Wed Sep 19 22:20:46 2007
@@ -3104,7 +3104,9 @@
#define share_hek(a,b,c) Perl_share_hek(aTHX_ a,b,c)
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
#ifdef PERL_CORE
+#define sighandler Perl_sighandler
#endif
+#define csighandler Perl_csighandler
#else
#ifdef PERL_CORE
#define sighandler Perl_sighandler
diff -up 'bleedperl-amd64/mg.c' 'bleedperl2-amd64/mg.c'
Index: ./mg.c
--- ./mg.c Fri Aug 31 11:08:42 2007
+++ ./mg.c Wed Sep 19 22:12:27 2007
@@ -56,7 +56,7 @@ tie.
#endif
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-Signal_t Perl_csighandler(int sig, ...);
+Signal_t Perl_csighandler(int sig, siginfo_t *, void *);
#else
Signal_t Perl_csighandler(int sig);
#endif
@@ -1307,7 +1307,7 @@ S_raise_signal(pTHX_ int sig)
Signal_t
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-Perl_csighandler(int sig, ...)
+Perl_csighandler(int sig, siginfo_t *sip PERL_UNUSED_DECL, void *uap PERL_UNUSED_DECL)
#else
Perl_csighandler(int sig)
#endif
@@ -1318,7 +1318,6 @@ Perl_csighandler(int sig)
dTHX;
#endif
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
- va_list args;
#endif
#ifdef FAKE_PERSISTENT_SIGNAL_HANDLERS
(void) rsignal(sig, PL_csighandlerp);
@@ -1333,7 +1332,6 @@ Perl_csighandler(int sig)
#endif
#endif
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
- va_start(args, sig);
#endif
if (
#ifdef SIGILL
@@ -1352,7 +1350,6 @@ Perl_csighandler(int sig)
else
S_raise_signal(aTHX_ sig);
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
- va_end(args);
#endif
}
@@ -2778,7 +2775,7 @@ Perl_whichsig(pTHX_ const char *sig)
Signal_t
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-Perl_sighandler(int sig, ...)
+Perl_sighandler(int sig, siginfo_t *sip, void *uap PERL_UNUSED_DECL)
#else
Perl_sighandler(int sig)
#endif
@@ -2856,11 +2853,6 @@ Perl_sighandler(int sig)
struct sigaction oact;
if (sigaction(sig, 0, &oact) == 0 && oact.sa_flags & SA_SIGINFO) {
- siginfo_t *sip;
- va_list args;
-
- va_start(args, sig);
- sip = (siginfo_t*)va_arg(args, siginfo_t*);
if (sip) {
HV *sih = newHV();
SV *rv = newRV_noinc((SV*)sih);
@@ -2881,7 +2873,6 @@ Perl_sighandler(int sig)
PUSHs(newSVpv((char *)sip, sizeof(*sip)));
}
- va_end(args);
}
}
#endif
diff -up 'bleedperl-amd64/proto.h' 'bleedperl2-amd64/proto.h'
Index: ./proto.h
--- ./proto.h Mon Sep 17 23:08:36 2007
+++ ./proto.h Wed Sep 19 22:20:46 2007
@@ -2133,8 +2133,8 @@ PERL_CALLCONV HEK* Perl_share_hek(pTHX_
__attribute__nonnull__(pTHX_1);
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-PERL_CALLCONV Signal_t Perl_sighandler(int sig, ...);
-PERL_CALLCONV Signal_t Perl_csighandler(int sig, ...);
+PERL_CALLCONV Signal_t Perl_sighandler(int sig, siginfo_t *info, void *uap);
+PERL_CALLCONV Signal_t Perl_csighandler(int sig, siginfo_t *info, void *uap);
#else
PERL_CALLCONV Signal_t Perl_sighandler(int sig);
PERL_CALLCONV Signal_t Perl_csighandler(int sig);
#### End of Patch data ####
#### ApplyPatch data follows ####
# Data version : 1.0
# Date generated : Wed Sep 19 23:31:03 2007
# Generated by : makepatch 2.03
# Recurse directories : Yes
# Excluded files : (\A|/).*\~\Z
# (\A|/).*\.a\Z
# (\A|/).*\.bak\Z
# (\A|/).*\.BAK\Z
# (\A|/).*\.elc\Z
# (\A|/).*\.exe\Z
# (\A|/).*\.gz\Z
# (\A|/).*\.ln\Z
# (\A|/).*\.o\Z
# (\A|/).*\.obj\Z
# (\A|/).*\.olb\Z
# (\A|/).*\.old\Z
# (\A|/).*\.orig\Z
# (\A|/).*\.rej\Z
# (\A|/).*\.so\Z
# (\A|/).*\.Z\Z
# (\A|/)\.del\-.*\Z
# (\A|/)\.make\.state\Z
# (\A|/)\.nse_depinfo\Z
# (\A|/)core\Z
# (\A|/)tags\Z
# (\A|/)TAGS\Z
# (\A|/)ipcsysv\.t\Z
# (\A|/)perlapi\.pod\Z
# (\A|/)perlintern\.pod\Z
# v 'patchlevel.h' 4734 1189085187 33060
# p 'embed.fnc' 79366 1190231937 0100664
# p 'embed.h' 167123 1190233246 0100660
# p 'mg.c' 72673 1190232747 0100664
# p 'proto.h' 160891 1190233246 0100660
#### End of ApplyPatch data ####
#### End of Patch kit [created: Wed Sep 19 23:31:03 2007] ####
#### Patch checksum: 160 5360 53935 ####
#### Checksum: 178 5985 39977 ####
|
From @rgsOn 29/09/2007, slaven@rezic.de via RT <perlbug-followup@perl.org> wrote:
We'll see with the smokes. Thanks, applied as 32012, amended as 32013. |
From @steve-m-hayRafael Garcia-Suarez wrote:
That's given me some new warnings on Win32 (with VC6): [miniperl compilation of mg.c:] [perl compilation of mg.c:} |
From @rgsOn 04/10/2007, Steve Hay <SteveHay@planit.com> wrote:
I would have been surprised if no problem was discovered. |
From @steve-m-hayRafael Garcia-Suarez wrote:
Yes, that's fixed it, thanks. |
From @craigberryOn 10/4/07, Steve Hay <SteveHay@planit.com> wrote:
Does Win32 have SA_SIGINFO defined? Based on how the prototypes are #ifdef WIN32 want this: #if defined(HAS_SIGACTION) && defined(SA_SIGINFO) It's also rather curious that at lines 1356-57 of mg.c became: #if defined(HAS_SIGACTION) && defined(SA_SIGINFO) with nothing between the #if and #endif.. In any case, the compile was failinng on VMS like so: 1 83084 (*PL_sighandlerp)(sig, NULL, NULL); HAS_SIGACTION is defined but SA_SIGINFO is not on VMS. I went ahead and checked in my suggestion as 32027. Please holler if |
From @steve-m-hayCraig A. Berry wrote:
Win32 doesn't even have HAS_SIGACTION defined, so it's still OK after |
From @eserteSeems to be solved now. Slaven |
@smpeters - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#45513 (status was 'resolved')
Searchable as RT45513$
The text was updated successfully, but these errors were encountered: