Help needed from Germans and Solaris users

Alias on 2009-07-11T16:19:39

In taking over IPC::Run, my goal was not to make it a better module, refactor it, or otherwise dramatically improve it. I'm just trying to fix the module packaging, and get it passing tests (fixing either specific bugs, or correcting the tests).

I've now managed to flush out all the Windows problems, and all the bugs on platforms I can replicate.

Now I'm stuck, and can't make any further progress. I don't have access to the platforms on which the problems occur.

So I'd like to ask for any volunteers that can help fix the two big failure cases.

The first is a bug specifically related to Solaris. You can see details of the failure here.

http://www.nntp.perl.org/group/perl.cpan.testers/2009/07/msg4535302.html

The second is something related to locale, with all the current failure reports occurring on Linux machines set to the German UTF8 locale.

http://www.nntp.perl.org/group/perl.cpan.testers/2009/07/msg4534455.html.

RT has bugs reported properly for the latter one, but I can't fix it.

What I need for both these bugs is either a patch for the code to fix the bug, or a patch for the tests if you can confirm the test is invalid.

Or even better, I'm happy to hand out commit rights for people to apply the fixes directly.


German error messages

mauzo on 2009-07-11T18:45:30

Isn't the issue simply this line

(($c < 200) and ($@||'')=~ m/^Resource temporarily/) and redo;

in IPC::Run::IO? It's string-matching against $!, which is pretty stupid. Is 'Ulazno/izlazna greáka' simply (mangled) Croatian for EAGAIN?

Re:German error messages

link on 2009-07-11T22:00:47

It is more pervasive than just the single spot.

Adding || $@ =~ /^Ulazno\/izlazna gre/ at line 2404 of Run.pm causes the error to go away.

I think using $! in numeric context gives access to the errno value which would be portable between locales but you may need some help from IO::Pty in order to get access to that.

Re:German error messages

mauzo on 2009-07-11T23:42:00

Unfortunately you can't rely on $! still having the right value by the time the exception is caught. Really all those croaks in _read &c. should be throwing proper exception objects which catch the (numeric) value of $!. I would want to switch the whole thing to use autodie, but that's quite a major change.

Croatian error messages

srezic on 2009-07-11T22:47:15

It's Croatian, but it means "Input/output error".

Set locale to C

srezic on 2009-07-11T22:50:38

I usually workaround the IPC::Run test failure by setting the locale to C. So maybe you can just do the same in the test script, somehow, locally.

Re:Set locale to C

mauzo on 2009-07-11T23:50:29

It is a real error, though, not a bug in the tests. If someone uses IPC::Run in a non-C locale it will fail to work correctly: if anything, tests should be added to catch the bug.

Setting the locale to C somewhere appropriate in IPC::Run itself might be a workaround, but I've no idea how the stringification of $! reacts to changing the locale. I would expect it to be quite system-specific: here (FreeBSD) I can't get perl to give me localized error messages at all (I think the translations may simply not exist, though).

This is why it should be checking the numeric value :).

Possible fix to t/pty.t error on MacOSX?

robinsmidsrod on 2009-07-12T12:17:19

Found this little thing that might interest you about one of the t/pty.t bugs.

http://www.simplicidade.org/notes/archives/2007/01/graphviz_under.html

It seems that the "bug" is still present in IPC-Run-0.83.

I don't have access to a MacOSX machine, but maybe someone else can verify if it FAILs or PASSes.

Re:Possible fix to t/pty.t error on MacOSX?

Alias on 2009-07-13T00:59:41

Fixed and 0.84 uploaded.

I use a Solaris VMWare image

brian_d_foy on 2009-07-13T16:50:15

I had similar problems with access to machines when I was fixing Crypt::Rijndael. I realized that I had Solaris 10 media on my shelf, and set up a virtual machine in VMWare. Now I have access to it.

If you want the virtual machine we could figure out how to exchange it, but you can also get OpenSolaris on your own.

I know that the community can also chip in, but I found that model like taking your punch cards down to the operator's office and waiting for him to run your program. Even though some Solaris people did help, I could also try stuff instantly.

Re:I use a Solaris VMWare image

Alias on 2009-07-14T03:46:45

If the CPAN Testers identified the specific VM/configurations they were using to run tests, it would certainly make it easier to replicate their bugs.

Re:I use a Solaris VMWare image

brian_d_foy on 2009-07-14T03:51:48

I think we talked about this in Iceland. Wouldn't life be grand if a CPAN tester could send you a VM of the setup causing the failure!

Re:I use a Solaris VMWare image

Alias on 2009-07-14T15:37:46

Forget "sending".

I want the CPAN Testers report to state the URL or UUID of the VM that was used to make it.

That way you wouldn't need to co-ordinate, you just go to some website and pull it.