Excerpts from Benoît PIERRE's message of Tue Aug 18 15:17:03 -0400 2009:
> Excerpts from Rich Lane's message of Tue Aug 18 20:42:13 +0200 2009:
> > Excerpts from Benoît PIERRE's message of Tue Aug 18 14:20:41 -0400 2009:
> > > Excerpts from Ben Walton's message of Tue Aug 18 19:35:35 +0200 2009:
> > > > 
> > > > I just tried to import my index to xapian and it crashed part way
> > > > through the import.  I then discovered that I couldn't use ferret
> > > > either.  There is something wonky with label handling, as per attached
> > > > exception log.  I haven't had a chance to look at the code yet, but
> > > > I'll poke at it tonight.
> > > 
> > > I think I just ran into the same problem! For now I fixed it with
> > > the following small patch:
> > 
> > That's odd because the Xapian code passes the labels straight through
> > from the message to LabelManager. Try instrumenting Message#labels= to
> > raise an exception if any member of the set is not a Symbol.
> 
> I applied the following patch:
> 
> diff --git a/lib/sup/message.rb b/lib/sup/message.rb
> index 965c10e..9156c02 100644
> --- a/lib/sup/message.rb
> +++ b/lib/sup/message.rb
> @@ -1,4 +1,5 @@
>  require 'time'
> +require 'pp'
> 
>  module Redwood
> 
> @@ -183,6 +184,7 @@ class Message
>    def labels= l
>      raise ArgumentError, "not a set" unless l.is_a?(Set)
>      return if @labels == l
> +    warn "labels=#{l.pretty_inspect}"
>      @labels = l
>      @dirty = true
>    end
> 
> And get this in the logs:
> 
> [Tue Aug 18 21:12:39 +0200 2009] WARNING: labels=#<Set: {:inbox, :unread,
> "aquarius", "music"}>
> [Tue Aug 18 21:12:39 +0200 2009] WARNING: labels=#<Set: {:inbox, :unread,
> "metalblade", "music"}>
> 

It'd be nice to get a backtrace including the offending caller. I'd just
replace the warn with a fail.
_______________________________________________
sup-talk mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/sup-talk

Reply via email to