Ticket #1318 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

Padre freeze(?)

Reported by: Sewi Owned by:
Priority: blocker Milestone:
Component: not classified yet Version: 0.90
Keywords: Cc:

Description

Selecting a locally stored file as current tab freezes Padre. Only reproduceable with this one file, but I got a trace:

>> /usr/share/perl5/Module/Manifest.pm:256:     foreach my $mask (@{ $self->{skiplist} }) {
>> /usr/share/perl5/Module/Manifest.pm:257:             return 1 if ($file =~ /$mask/i);
>> /usr/share/perl5/Module/Manifest.pm:259:     return 0;
>> /home/sewi/padre/Padre/lib/Padre/Wx/Directory/Browse.pm:165:                                 push @objects,
>> /home/sewi/padre/Padre/lib/Padre/Wx/Directory/Path.pm:80:    ( $_[0]->[0] == DIRECTORY ) ? 1 : 0;
>> /home/sewi/padre/Padre/lib/Padre/Wx/Directory/Path.pm:56:    $_[0]->[-1];
>> /home/sewi/padre/Padre/lib/Padre/Wx/Directory/Browse.pm:172:                                 if ( $descend >= 0 ) {
>> /home/sewi/padre/Padre/lib/Padre/Wx/Directory/Browse.pm:181:                 if ( $self->{order} eq 'first' ) {
>> /home/sewi/padre/Padre/lib/Padre/Wx/Directory/Browse.pm:183:                                 sort { $b->[2] <=> $a->[2] or $a->[3] cmp $b->[3] } @objects;
>> /home/sewi/padre/Padre/lib/Padre/Wx/Directory/Browse.pm:182:                         @objects =
>> /home/sewi/padre/Padre/lib/Padre/Wx/Directory/Browse.pm:191:                 if ( $self->is_child and @objects ) {
>> /home/sewi/padre/Padre/lib/Padre/Task.pm:516:        defined $_[0]->{handle};
>> /home/sewi/padre/Padre/lib/Padre/Wx/Directory/Browse.pm:192:                         $self->message( OWNER => $request, map { $_->[0] } @objects );
>> /home/sewi/padre/Padre/lib/Padre/Wx/Directory/Browse.pm:192:                         $self->message( OWNER => $request, map { $_->[0] } @objects );
>> /home/sewi/padre/Padre/lib/Padre/Wx/Directory/Browse.pm:192:                         $self->message( OWNER => $request, map { $_->[0] } @objects );
>> /home/sewi/padre/Padre/lib/Padre/Task.pm:589:        return unless defined $_[0]->{handle};
>> /home/sewi/padre/Padre/lib/Padre/Task.pm:590:        return shift->{handle}->message(@_);
>> /home/sewi/padre/Padre/lib/Padre/TaskHandle.pm:134:  TRACE( $_[0] ) if DEBUG;
>> /home/sewi/padre/Padre/lib/Padre/TaskHandle.pm:135:  if ( $_[0]->child ) {
>> /home/sewi/padre/Padre/lib/Padre/TaskHandle.pm:48:   $_[0]->{child};
>> /home/sewi/padre/Padre/lib/Padre/TaskHandle.pm:136:          Padre::Wx::Role::Conduit->signal( Storable::freeze( [ shift->hid, @_ ] ) );
>> /home/sewi/padre/Padre/lib/Padre/TaskHandle.pm:36:   $_[0]->{hid};
>> /usr/local/lib/perl/5.10.1/Storable.pm:317:  _freeze(\&mstore, @_);
>> /usr/local/lib/perl/5.10.1/Storable.pm:331:  my $xsptr = shift;
>> /usr/local/lib/perl/5.10.1/Storable.pm:332:  my $self = shift;
>> /usr/local/lib/perl/5.10.1/Storable.pm:33>> /home/sewi/padre/Padre/lib/Padre/Wx/TreeCtrl.pm:45:              if ( $self->GetItemText($child) eq $text ) {
>> /home/sewi/padre/Padre/lib/Padre/Wx/TreeCtrl.pm:50:          ( $child, $cookie ) = $self->GetNextChild( $item, $cookie );
>> /home/sewi/padre/Padre/lib/Padre/Wx/TreeCtrl.pm:45:          if ( $self->GetItemText($child) eq $text ) {
>> /home/sewi/padre/Padre/lib/Padre/Wx/TreeCtrl.pm:50:          ( $child, $cookie ) = $self->GetNextChild( $item, $cookie );
>> /home/sewi/padre/Padre/lib/Padre/Wx/TreeCtrl.pm:45:          if ( $self->GetItemText($child) eq $text ) {
>> /home/sewi/padre/Padre/lib/Padre/Wx/TreeCtrl.pm:50:          ( $child, $cookie ) = $self->GetNextChild( $item, $cookie );
>> /home/sewi/padre/Padre/lib/Padre/Wx/TreeCtrl.pm:45:          if ( $self->GetItemText($child) eq $text ) {
>> /home/sewi/padre/Padre/lib/Padre/Wx/TreeCtrl.pm:50:          ( $child, $cookie ) = $self->GetNextChild( $item, $cookie );
>> /home/sewi/padre/Padre/lib/Padre/Wx/TreeCtrl.pm:45:          if ( $self->GetItemText($child) eq $text ) {

Padre freezes at this point and loops between lines 45 and 50.

Change History

comment:1 Changed 3 years ago by azawawi

while ( $cookie ) {

Should be:

while ( $child->IsOk ) {

What's the Wx version? I guess it is a Wx 0.9901 upgrade bug fix

comment:2 Changed 3 years ago by azawawi

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in r16711

Note: See TracTickets for help on using tickets.