Author Topic: crash on search  (Read 2188 times)

bartr

  • Newbie
  • *
  • Posts: 2
    • View Profile
crash on search
« on: August 22, 2014, 17:14:32 »
Hi,

Lately I've been getting very frequent crashes when I attempt to use the search box. I start typing something and it crashes, not every time but very often (one in three or four times).

I launched from a terminal and it frequently says something like:

GLib-CRITICAL **: Source ID 1914 was not found when attempting to remove it at /usr/bin/../share/gmusicbrowser/gmusicbrowser_songs.pm line 4959.
Use of uninitialized value in pattern match (m//) at /usr/bin/../share/gmusicbrowser/gmusicbrowser_songs.pm line 3109.

I have no idea what that means, but that's not when it crashes, when it crashes, the terminal goes:

*** unhandled exception in callback:
***   Can't use an undefined value as a subroutine reference at /usr/bin/../share/gmusicbrowser/gmusicbrowser_list.pm line 3716.
***  ignoring at /usr/bin/gmusicbrowser line 1433.
Segmentation fault

Any ideas as to what's going on would be greatly appreciated.

Thanks.

Quentin Sculo

  • Administrator
  • Hero Member
  • *****
  • Posts: 1082
    • View Profile
Re: crash on search
« Reply #1 on: August 23, 2014, 18:13:00 »
Thanks for reporting this. I can't find the line for the error as I don't know what version you are using, can you show me the lines around 3716 of your /usr/share/gmusicbrowser/gmusicbrowser_list.pm ?

(as a workaround, it seems to be in the suggestion code, so you might try turning it off : click on the search icon and un-check "show suggestions")

bartr

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: crash on search
« Reply #2 on: August 25, 2014, 14:01:26 »
Thanks for your reply. From a quick test, it seems like un-checking "show suggestions" stops the crashes (and checking it again brings back the crashes). That's a good enough solution for me, thanks, but I'm happy to help with further investigations into this issue.

The version I am using is 1.1.12 on ubuntu 14.04.

Here are lines 3700 to 3730 of the /usr/share/gmusicbrowser/gmusicbrowser_list.pm (line 3716 is the one that says "destroy").

}
   $self->StartIdleFilter if $self->{autofilter} || ($l>2 && !$self->{suggest});
   if ($self->{suggest})
   {   Glib::Source->remove(delete $self->{suggest_timeout}) if $self->{suggest_timeout};
      my $timeout= $l<2 ? 0 : $l==2 ? 200 : 100;
      if ($timeout)   { $self->{suggest_timeout}= Glib::Timeout->add($timeout,\&UpdateSuggestionMenu,$self); }
      else      { $self->CloseSuggestionMenu; }
   }
}

sub CloseSuggestionMenu
{   my $self=shift;
   Glib::Source->remove(delete $self->{suggest_timeout}) if $self->{suggest_timeout};
   my $menu= delete $self->{matchmenu};
   return unless $menu;
   $menu->cancel;
   $menu->destroy;
}

sub UpdateSuggestionMenu
{   my $self=shift;
   if ($self->{matchmenu} && !$self->{matchmenu}->mapped) { $self->CloseSuggestionMenu; }
   Glib::Source->remove(delete $self->{suggest_timeout}) if $self->{suggest_timeout};
   my $refresh= !!$self->{matchmenu};
   my $menu= $self->{matchmenu} ||= Gtk2::Menu->new;
   if ($refresh) { $menu->remove($_) for $menu->get_children; }

   my $h=$self->size_request->height;
   my $w=$self->size_request->width;
   my $screen=$self->get_screen;
   my $monitor=$screen->get_monitor_at_window($self->window);

Quentin Sculo

  • Administrator
  • Hero Member
  • *****
  • Posts: 1082
    • View Profile
Re: crash on search
« Reply #3 on: August 27, 2014, 19:08:32 »
Thanks, fixed in git (http://git.gmusicbrowser.org/commit/d659ed2888), I will make a new release soon.