Ticket #830 (new enhancement)

Opened 4 years ago

Last modified 4 years ago

Padre Hangup and close on Win7 with Strawberry perl 5.10.1

Reported by: vrobin Owned by:
Priority: minor Milestone:
Component: editor Version: trunk
Keywords: windows starting hangup win7 strawberry win32 Cc: robinsp@…

Description

I have add a lot of problems to get Padre launched on my machine. I tried both CPAN 0.55 and Trunk (exported on 20100123).

After several dozens of tries with both versions, I only managed to get Padre correctly launched 2 times. Every other time, the problem is the same, the command hangs for around sixty seconds and then exits. For all this time before returning, I can see the splashscreen and nothing else. I also can see the wx message box when I use --version.

With help from Sewi, I finally gathered logs to identify where the problem resides:

Thinking about it, it could be a firewall related problem, but this wouldn't match the fact that it randomly works.


>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/Exporter/Heavy.pm:197:        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
>> C:/strawberry/perl/lib/IO/Socket/UNIX.pm:12: use Carp;
>> C:/strawberry/perl/lib/IO/Socket/UNIX.pm:12: use Carp;
>> C:/strawberry/perl/lib/IO/Socket/UNIX.pm:12: use Carp;
>> C:/strawberry/perl/lib/Exporter.pm:32:   my $pkg = shift;
>> C:/strawberry/perl/lib/Exporter.pm:33:   my $callpkg = caller($ExportLevel);
>> C:/strawberry/perl/lib/Exporter.pm:35:   if ($pkg eq "Exporter" and @_ and $_[0] eq "import") {
>> C:/strawberry/perl/lib/Exporter.pm:41:   my($exports, $fail) = (\@{"$pkg\::EXPORT"}, \@{"$pkg\::EXPORT_FAIL"});
>> C:/strawberry/perl/lib/Exporter.pm:41:   my($exports, $fail) = (\@{"$pkg\::EXPORT"}, \@{"$pkg\::EXPORT_FAIL"});
>> C:/strawberry/perl/lib/Exporter.pm:41:   my($exports, $fail) = (\@{"$pkg\::EXPORT"}, \@{"$pkg\::EXPORT_FAIL"});
>> C:/strawberry/perl/lib/Exporter.pm:42:   return export $pkg, $callpkg, @_
>> C:/strawberry/perl/lib/Exporter.pm:44:   my $export_cache = ($Cache{$pkg} ||= {});
>> C:/strawberry/perl/lib/Exporter.pm:45:   my $args = @_ or @_ = @$exports;
>> C:/strawberry/perl/lib/Exporter.pm:47:   local $_;
>> C:/strawberry/perl/lib/Exporter.pm:48:   if ($args and not %$export_cache) {
>> C:/strawberry/perl/lib/Exporter.pm:52:   my $heavy;
>> C:/strawberry/perl/lib/Exporter.pm:55:   if ($args or $fail) {
>> C:/strawberry/perl/lib/Exporter.pm:58:                  foreach (@_);
>> C:/strawberry/perl/lib/Exporter.pm:58:                  foreach (@_);
>> C:/strawberry/perl/lib/Exporter.pm:63:   return export $pkg, $callpkg, ($args ? @_ : ()) if $heavy;
>> C:/strawberry/perl/lib/Exporter.pm:65:       sub {require Carp; &Carp::carp};
>> C:/strawberry/perl/lib/Exporter.pm:67:   *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_;
>> C:/strawberry/perl/lib/Exporter.pm:67:   *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_;
>> C:/strawberry/perl/lib/Exporter.pm:67:   *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_;
>> C:/strawberry/perl/lib/Exporter.pm:67:   *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_;
>> C:/strawberry/perl/lib/Exporter.pm:67:   *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_;
>> C:/strawberry/perl/lib/Exporter.pm:67:   *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_;
>> C:/strawberry/perl/lib/Exporter.pm:67:   *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_;
>> C:/strawberry/perl/lib/Exporter.pm:67:   *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_;
>> C:/strawberry/perl/lib/IO/Socket/UNIX.pm:10: our(@ISA, $VERSION);
>> C:/strawberry/perl/lib/IO/Socket/UNIX.pm:14: @ISA = qw(IO::Socket);
>> C:/strawberry/perl/lib/IO/Socket/UNIX.pm:15: $VERSION = "1.23";
>> C:/strawberry/perl/lib/IO/Socket/UNIX.pm:16: $VERSION = eval $VERSION;
>> (eval 14)[C:/strawberry/perl/lib/IO/Socket/UNIX.pm:16]:1: 1.23
>> C:/strawberry/perl/lib/IO/Socket/UNIX.pm:18: IO::Socket::UNIX->register_domain( AF_UNIX );
>> C:/strawberry/perl/lib/IO/Socket.pm:55:     my($p,$d) = @_;
>> C:/strawberry/perl/lib/IO/Socket.pm:56:     $domain2pkg[$d] = $p;
>> C:/strawberry/perl/lib/IO/Socket/UNIX.pm:65: 1; # Keep require happy
>> C:/strawberry/perl/lib/IO/Socket.pm:24: @ISA = qw(IO::Handle);
>> C:/strawberry/perl/lib/IO/Socket.pm:26: $VERSION = "1.31";
>> C:/strawberry/perl/lib/IO/Socket.pm:28: @EXPORT_OK = qw(sockatmark);
>> C:/strawberry/perl/lib/IO/Socket.pm:52: my @domain2pkg;
>> C:/strawberry/perl/lib/IO/Socket.pm:303: my $intsize = length(pack("i",0));
>> C:/strawberry/perl/lib/IO/Socket.pm:355: 1;
>> J:/programmes/padre/Padre/lib/Padre/Startup.pm:79:           my $socket = IO::Socket::INET->new(
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:35:     my $class = shift;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:36:     unshift(@_, "PeerAddr") if @_ == 1;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:37:     return $class->SUPER::new(@_);
>> C:/strawberry/perl/lib/IO/Socket.pm:41:     my($class,%arg) = @_;
>> C:/strawberry/perl/lib/IO/Socket.pm:42:     my $sock = $class->SUPER::new();
>> C:/strawberry/perl/lib/IO/Handle.pm:311:     my $class = ref($_[0]) || $_[0] || "IO::Handle";
>> C:/strawberry/perl/lib/IO/Handle.pm:312:     @_ == 1 or croak "usage: new $class";
>> C:/strawberry/perl/lib/IO/Handle.pm:313:     my $io = gensym;
>> C:/strawberry/perl/lib/Symbol.pm:101:     my $name = "GEN" . $genseq++;
>> C:/strawberry/perl/lib/Symbol.pm:102:     my $ref = \*{$genpkg . $name};
>> C:/strawberry/perl/lib/Symbol.pm:102:     my $ref = \*{$genpkg . $name};
>> C:/strawberry/perl/lib/Symbol.pm:103:     delete $$genpkg{$name};
>> C:/strawberry/perl/lib/Symbol.pm:104:     $ref;
>> C:/strawberry/perl/lib/IO/Handle.pm:314:     bless $io, $class;
>> C:/strawberry/perl/lib/IO/Socket.pm:44:     $sock->autoflush(1);
>> C:/strawberry/perl/lib/IO/Handle.pm:479:     my $old = new SelectSaver qualify($_[0], caller);
>> C:/strawberry/perl/lib/Symbol.pm:117:     my ($name) = @_;
>> C:/strawberry/perl/lib/Symbol.pm:118:     if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) {
>> C:/strawberry/perl/lib/Symbol.pm:131:     $name;
>> C:/strawberry/perl/lib/SelectSaver.pm:42:     @_ >= 1 && @_ <= 2 or croak 'usage: SelectSaver->new( [FILEHANDLE] )';
>> C:/strawberry/perl/lib/SelectSaver.pm:43:     my $fh = select;
>> C:/strawberry/perl/lib/SelectSaver.pm:44:     my $self = bless \$fh, $_[0];
>> C:/strawberry/perl/lib/SelectSaver.pm:45:     select qualify($_[1], caller) if @_ > 1;
>> C:/strawberry/perl/lib/Symbol.pm:117:     my ($name) = @_;
>> C:/strawberry/perl/lib/Symbol.pm:118:     if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) {
>> C:/strawberry/perl/lib/Symbol.pm:131:     $name;
>> C:/strawberry/perl/lib/SelectSaver.pm:46:     $self;
>> C:/strawberry/perl/lib/IO/Handle.pm:480:     my $prev = $|;
>> C:/strawberry/perl/lib/IO/Handle.pm:481:     $| = @_ > 1 ? $_[1] : 1;
>> C:/strawberry/perl/lib/IO/Handle.pm:482:     $prev;
>> C:/strawberry/perl/lib/SelectSaver.pm:50:     my $self = $_[0];
>> C:/strawberry/perl/lib/SelectSaver.pm:51:     select $$self;
>> C:/strawberry/perl/lib/IO/Socket.pm:46:     ${*$sock}{'io_socket_timeout'} = delete $arg{Timeout};
>> C:/strawberry/perl/lib/IO/Socket.pm:46:     ${*$sock}{'io_socket_timeout'} = delete $arg{Timeout};
>> C:/strawberry/perl/lib/IO/Socket.pm:48:     return scalar(%arg) ? $sock->configure(\%arg)
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:138:     my($sock,$arg) = @_;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:139:     my($lport,$rport,$laddr,$raddr,$proto,$type);
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:142:     $arg->{LocalAddr} = $arg->{LocalHost}
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:145:     ($laddr,$lport,$proto) = _sock_info($arg->{LocalAddr},
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:73:   my($addr,$port,$proto) = @_;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:74:   my $origport = $port;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:75:   my @serv = ();
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:77:   $port = $1
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:80:   if(defined $proto  && $proto =~ /\D/) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:81:     my $num = _get_proto_number($proto);
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:49:     my $name = lc(shift);
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:50:     return undef unless defined $name;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:51:     return $proto_number{$name} if exists $proto_number{$name};
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:82:     unless (defined $num) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:86:     $proto = $num;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:89:   if(defined $port) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:105:  return ($addr || undef,
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:150:     $laddr = defined $laddr ? inet_aton($laddr)
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:153:     return _error($sock, $EINVAL, "Bad hostname '",$arg->{LocalAddr},"'
")
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:156:     $arg->{PeerAddr} = $arg->{PeerHost}
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:159:     unless(exists $arg->{Listen}) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:160:        ($raddr,$rport,$proto) = _sock_info($arg->{PeerAddr},
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:73:   my($addr,$port,$proto) = @_;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:74:   my $origport = $port;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:75:   my @serv = ();
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:77:   $port = $1
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:80:   if(defined $proto  && $proto =~ /\D/) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:89:   if(defined $port) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:90:     my $defport = ($port =~ s,\((\d+)\)$,,) ? $1 : undef;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:91:     my $pnum = ($port =~ m,^(\d+)$,)[0];
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:93:     @serv = getservbyname($port, _get_proto_name($proto) || "")
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:96:     $port = $serv[2] || $defport || $pnum;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:97:     unless (defined $port) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:102:     $proto = _get_proto_number($serv[3]) if @serv && !$proto;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:105:  return ($addr || undef,
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:166:     $proto ||= _get_proto_number('tcp');
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:168:     $type = $arg->{Type} || $socket_type{lc _get_proto_name($proto)};
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:170:     my @raddr = ();
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:172:     if(defined $raddr) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:173:        @raddr = $sock->_get_addr($raddr, $arg->{MultiHomed});
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:126:     my($sock,$addr_str, $multi) = @_;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:127:     my @addr;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:128:     if ($multi && $addr_str !~ /^\d+(?:\.\d+){3}$/) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:131:        my $h = inet_aton($addr_str);
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:132:        push(@addr, $h) if defined $h;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:134:     @addr;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:174:        return _error($sock, $EINVAL, "Bad hostname '",$arg->{PeerAddr},
"'")
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:178:     while(1) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:180:        $sock->socket(AF_INET, $type, $proto) or
>> C:/strawberry/perl/lib/IO/Socket.pm:77:     @_ == 4 or croak 'usage: $sock->socket(DOMAIN, TYPE, PROTOCOL)';
>> C:/strawberry/perl/lib/IO/Socket.pm:78:     my($sock,$domain,$type,$protocol) = @_;
>> C:/strawberry/perl/lib/IO/Socket.pm:80:     socket($sock,$domain,$type,$protocol) or
>> C:/strawberry/perl/lib/IO/Socket.pm:83:     ${*$sock}{'io_socket_domain'} = $domain;
>> C:/strawberry/perl/lib/IO/Socket.pm:83:     ${*$sock}{'io_socket_domain'} = $domain;
>> C:/strawberry/perl/lib/IO/Socket.pm:84:     ${*$sock}{'io_socket_type'}   = $type;
>> C:/strawberry/perl/lib/IO/Socket.pm:84:     ${*$sock}{'io_socket_type'}   = $type;
>> C:/strawberry/perl/lib/IO/Socket.pm:85:     ${*$sock}{'io_socket_proto'}  = $protocol;
>> C:/strawberry/perl/lib/IO/Socket.pm:85:     ${*$sock}{'io_socket_proto'}  = $protocol;
>> C:/strawberry/perl/lib/IO/Socket.pm:87:     $sock;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:183:         if (defined $arg->{Blocking}) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:188:        if ($arg->{Reuse} || $arg->{ReuseAddr}) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:193:        if ($arg->{ReusePort}) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:198:        if ($arg->{Broadcast}) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:203:        if($lport || ($laddr ne INADDR_ANY) || exists $arg->{Listen}) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:208:        if(exists $arg->{Listen}) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:215:        last unless exists($arg->{PeerAddr});
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:217:         $raddr = shift @raddr;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:219:        return _error($sock, $EINVAL, 'Cannot determine remote port')
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:223:            unless($type == SOCK_STREAM || defined $raddr);
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:225:        return _error($sock, $EINVAL, "Bad hostname '",$arg->{PeerAddr},
"'")
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:231:        undef $@;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:232:         if ($sock->connect(pack_sockaddr_in($rport, $raddr))) {
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:254:     @_ == 2 || @_ == 3 or
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:256:     my $sock = shift;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:257:     return $sock->SUPER::connect(@_ == 1 ? shift : pack_sockaddr_in(@_)
);
>> C:/strawberry/perl/lib/IO/Socket.pm:106:     @_ == 2 or croak 'usage: $sock->connect(NAME)';
>> C:/strawberry/perl/lib/IO/Socket.pm:107:     my $sock = shift;
>> C:/strawberry/perl/lib/IO/Socket.pm:108:     my $addr = shift;
>> C:/strawberry/perl/lib/IO/Socket.pm:109:     my $timeout = ${*$sock}{'io_socket_timeout'};
>> C:/strawberry/perl/lib/IO/Socket.pm:109:     my $timeout = ${*$sock}{'io_socket_timeout'};
>> C:/strawberry/perl/lib/IO/Socket.pm:110:     my $err;
>> C:/strawberry/perl/lib/IO/Socket.pm:111:     my $blocking;
>> C:/strawberry/perl/lib/IO/Socket.pm:113:     $blocking = $sock->blocking(0) if $timeout;
>> C:/strawberry/perl/lib/IO/Socket.pm:114:     if (!connect($sock, $addr)) {
>> C:/strawberry/perl/lib/IO/Socket.pm:141:     $sock->blocking(1) if $blocking;
>> C:/strawberry/perl/lib/IO/Socket.pm:143:     $! = $err if $err;
>> C:/strawberry/perl/lib/IO/Socket.pm:145:     $err ? undef : $sock;
>> C:/strawberry/perl/lib/IO/Socket/INET.pm:234:             return $sock;
>> J:/programmes/padre/Padre/lib/Padre/Startup.pm:85:           if ( $socket ) {
>> J:/programmes/padre/Padre/lib/Padre/Startup.pm:86:                   my $pid = '';
>> J:/programmes/padre/Padre/lib/Padre/Startup.pm:87:                   my $read = $socket->sysread( $pid, 10 );
>> C:/strawberry/perl/lib/IO/Handle.pm:449:     @_ == 3 || @_ == 4 or croak 'usage: $io->sysread(BUF, LEN [, OFFSET])';
>> C:/strawberry/perl/lib/IO/Handle.pm:450:     sysread($_[0], $_[1], $_[2], $_[3] || 0);
  

Change History

comment:1 Changed 4 years ago by vrobin

  • Cc robinsp@… added

And here is the end of the trace (after the timeout):

>> J:/programmes/padre/Padre/lib/Padre/Startup.pm:88:                   if ( defined $read and $read == 10 ) {
>> J:/programmes/padre/Padre/lib/Padre/Startup.pm:98:                   foreach my $file ( @ARGV ) {
>> J:/programmes/padre/Padre/lib/Padre/Startup.pm:102:                  $socket->print("focus\n");
>> C:/strawberry/perl/lib/IO/Handle.pm:404:     @_ or croak 'usage: $io->print(ARGS)';
>> C:/strawberry/perl/lib/IO/Handle.pm:405:     my $this = shift;
>> C:/strawberry/perl/lib/IO/Handle.pm:406:     print $this @_;
>> J:/programmes/padre/Padre/lib/Padre/Startup.pm:103:                  $socket->close;
>> C:/strawberry/perl/lib/IO/Socket.pm:192:     @_ == 1 or croak 'usage: $sock->close()';
>> C:/strawberry/perl/lib/IO/Socket.pm:193:     my $sock = shift;
>> C:/strawberry/perl/lib/IO/Socket.pm:194:     ${*$sock}{'io_socket_peername'} = undef;
>> C:/strawberry/perl/lib/IO/Socket.pm:194:     ${*$sock}{'io_socket_peername'} = undef;
>> C:/strawberry/perl/lib/IO/Socket.pm:195:     $sock->SUPER::close();
>> C:/strawberry/perl/lib/IO/Handle.pm:370:     @_ == 1 or croak 'usage: $io->close()';
>> C:/strawberry/perl/lib/IO/Handle.pm:371:     my($io) = @_;
>> C:/strawberry/perl/lib/IO/Handle.pm:373:     close($io);
>> J:/programmes/padre/Padre/lib/Padre/Startup.pm:104:                  return 0;
>> J:/programmes/padre/Padre/script/padre:112:          exit(0);

comment:2 Changed 4 years ago by vrobin

  • Priority changed from major to minor
  • Type changed from defect to enhancement

In fact, I finally found where the problem was coming from:

Netbeans was listening on port 4444.

Maybe it could be possible to detect this problem and display a nice error message...

comment:3 Changed 4 years ago by vrobin

It seems that the problem is also existing (still on win 7, but it could happen anywhere) when a first instance of Padre has failed but the process isn't dead yet.

Example:

  1. Run Padre
  2. Run wx example (from open example, wx directory)
  3. debug step by step the wx example (Padre Hangs at the $app->MainLoop? line)
  4. force close padre with window manager close button (red cross on windows) (windows is closed, but perl process is still in the background)
  5. If you try to run Padre again, the splashscreen displays, but hangs.

=> you have to kill the perl process for padre to run again.

Here is a netstat log showing the 4444 connection of the (would be) closed Padre which prevent the new instance to start.

 TCP    0.0.0.0:58512          0.0.0.0:0              LISTENING
 TCP    127.0.0.1:4444         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:4444         127.0.0.1:52301        ESTABLISHED
 TCP    127.0.0.1:5354         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:27015        0.0.0.0:0              LISTENING
Note: See TracTickets for help on using tickets.