I *believe* I have created a much simpler method of reproducing the issue without all of my software necessary. It appears as though on AWS Windows 2012 servers, a ENTER keystroke is required on the server part of the setup before the cpanm gets executed. This is not required on my local win2k8R2 servers.

If it runs through without having to hit ENTER on the server.pl cmd window, that's what I see on my local boxes.

To repro:

- copy below code to client.pl and server.pl respectively - start the server in the background: -- perl server.pl bg - run the client (different cmd window): -- perl client.pl

On my local servers, the server returns to the client properly without any interaction. On my AWS systems, it hangs exactly like my original problem. Hitting ENTER in the server cmd window causes things to go through.

NOTE: there's no method in this test code to stop the server.pl background proc. It has to be killed via Task Manager.

client.pl

use warnings; use strict; use IO::Socket::INET; use Storable; my $mod = 'IO::Socket::INET'; my $sock = new IO::Socket::INET ( PeerHost => 'localhost', PeerPort => 7800, Proto => 'tcp', ); die "can't create socket\n" unless $sock; $sock->send("cpanm $mod"); my $recv = Storable::fd_retrieve($sock); print $$recv;

server.pl

use warnings; use strict; use IO::Socket::INET; use Proc::Background; use Storable; if (@ARGV && $ARGV[0] eq 'bg'){ Proc::Background->new('perl', $0, 'run'); } if (@ARGV && $ARGV[0] eq 'run'){ my $sock = new IO::Socket::INET ( LocalHost => '0.0.0.0', LocalPort => 7800, Proto => 'tcp', Listen => 5, Reuse => 1, ); die "cannot create socket $!\n" unless $sock; while (1){ my $conn = $sock->accept; my $cmd; $conn->recv($cmd, 1024); print "executing: $cmd\n"; my $ret = `$cmd`; print "return: $ret\n"; Storable::nstore_fd(\$ret, $conn); shutdown($conn, 1); } $sock->close; }

In reply to Re^2: Debug background Perl procs started with compiled C# code (breaks only on AWS) by stevieb
in thread Debug background Perl procs started with compiled C# code (breaks only on AWS) by stevieb

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.