-
Notifications
You must be signed in to change notification settings - Fork 6
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
Fix test failures on hurd-i386. #6
base: master
Are you sure you want to change the base?
Conversation
That sounds perfectly reasonable.
That doesn't, at least not without knowing more about it. Can you give me a paste that shows the observed behavior? It feels wrong to me to skip the tests without changing any of the code. |
The buildlog show that only the first test succeeds:
|
I've added some debug output to
The patch used: --- a/t/20-threads.t
+++ b/t/20-threads.t
@@ -5,6 +5,7 @@ use warnings;
use Config;
BEGIN {
# Yes, this is really necessary
+ #if ($Config{useithreads} && $^O ne 'gnu') {
if ($Config{useithreads}) {
require threads;
threads->import();
@@ -28,31 +29,48 @@ my $counter;
alarm 5;
+print "thread1 = async\n";
my $thread1 = async {
+ print "thread1: lock_map\n";
lock_map $variable;
+ print "thread1: wait_until\n";
wait_until { $counter++ } $variable;
+ print "thread1: is\n";
is($counter, 2, 'Counter is 2');
};
+print "Going to sleep\n";
sleep .1;
+print "Done sleeping\n";
do {
+ print "do: lock_map\n";
lock_map $variable;
+ print "do: notify\n";
notify $variable;
};
+print "thread1->join\n";
$thread1->join;
ok(1, "First notification worked");
+print "thread2 = async\n";
my $thread2 = async {
+ print "thread2: lock_map\n";
lock_map $variable;
+ print "thread2: wait_until\n";
wait_until { $counter++ } $variable;
};
+print "Going to sleep\n";
sleep .1;
+print "Done sleeping\n";
{
+ print "lock_map\n";
lock_map $variable;
+ print "notify\n";
notify $variable;
}
+print "thread2->join\n";
$thread2->join;
ok(1, "Second notification worked"); |
Could you give me a stacktrace of the sigalrm? and preferably for the other thread too ( |
No, I cannot:
|
I don't expect any actual users of File::Map on GNU/Hurd, so I'm not looking for a comprehensive fix. I suggest to just skip the thread tests on Hurd, and spend our time on more worthwhile endeavors. |
I guess I should have given more specific instructions; that runs the debugger on the harness not on the test.
It may point to a genuine bug in my code or in the tests; it may be broken on more systems.
That kind of defeats the point of testing, doesn't it? |
That gives the same results as via
|
- Make madvise() no-op, not implemented on Hurd. - Skip threads tests, thread implementation problematic.
This issue is still present in 0.68. |
I guess I should just skip the test after all then. |
The following changes were required to fix the test failures on the GNU/Hurd build systems for the libfile-map-perl Debian package: