Skip Menu |

This queue is for tickets about the PlRPC CPAN distribution.

Report information
The Basics
Id: 13968
Status: resolved
Worked: 4.3 hours (260 min)
Priority: 0/
Queue: PlRPC

People
Owner: MNOONING [...] cpan.org
Requestors: michael [...] insulin-pumpers.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.2018
Fixed in: 0.2017



Subject: PlRPC crypt.t
revert from 0.2018 to 0.2017 Perl 5.6.1, Crypt::DES 2.0.3 linux 2.4.19 make test t/crypt.......Use of uninitialized value in concatenation (.) or string at t/lib.pl line 30. Use of uninitialized value in concatenation (.) or string at t/lib.pl line 31. Use of uninitialized value in concatenation (.) or string at t/lib.pl line 32. Use of uninitialized value in concatenation (.) or string at t/lib.pl line 30. Use of uninitialized value in concatenation (.) or string at t/lib.pl line 31. Use of uninitialized value in concatenation (.) or string at t/lib.pl line 32. t/crypt.......FAILED tests 1-18
From: m.nooning [...] comcast.net
I am seeing the same thing on Windows XP, ActiveState Perl 5.8.8
From: m.nooning [...] comcast.net
This is not a Linux centric problem. I get the same thing on Windows XP with ActiveState Perl 5.8.8. I do not have an answer but I have some more clues. I have sprinkled print statements about in PlClient.pm, ...\blib\lib\RPC\PlServer\Comm.pm, and C:\perl\site\lib\Net\Daemon\Test.pm. The Comm.pm of PlClient just routes to the Comm.pm of PlServer. These three lines of PlClient.pm are where the problms eventually show up. $comm->Write($socket, [$app, $version, $user, $password]); $self->Debug("Waiting for server's response ..."); my $reply = $comm->Read($socket); My prints show that ref($socket), ref($client) and other variables all have valid ref names or values. This seems to be true in the callers and in the invoked subroutines. Hence, no problems in that area. BTW: The PlClient Comm.pm just routes to the PlServer Comm.pm code. In Comm.pm, sub Read, I print the results of my $result = $socket->read($encodedSize, $readSize, length($encodedSize)); When $result is 0, this line of Comm.pm gest executed: return undef if defined($result); and so undef is returned to the PlClient line my $reply = $comm->Read($socket); which makes $reply to be undef. PlClient gives back the undef to its caller in lib.pl, in the line below. Test($client = eval { RPC::PlClient->new(@_) }) or print "Failed to make second connection: $@\n"; which results in the "Use of uninitialized value ..." from lib.pl when an attemp is made to use $client. I printed out the peerport and other vars. peerport gets numbers such as 3900, 4157 and so on. There is no consistency of peerport when this fails. The only consistency is that for the tests that pass, the above mentioned $result is 4. When it fails, Read's $result is always showing 0. Could there be underlying C code that is allowing a port to be assigned that is already in use? My level of expertise has been reached. If any one has any "try this or that" ideas, I would welcome them. Thanks
From: m.nooning [...] comcast.net
Aha! Found it. In crypt.t, change 'timeout' => 20, 'cipher' => $hostcipher); to 'timeout' => 20, 'usercipher' => $hostcipher); And that should do it. There is going to be a new revision to PlRPC in a couple of weeks, and this fix will be included.
From: m.nooning [...] comcast.net
Fixed in PlRPC/PlRPC-0.2019.tar.gz and is now on CPAN.
Fixed in PlRPC/PlRPC-0.2019.tar.gz and is now on CPAN.