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: