Subject: [sup-talk] Exceptions around saving drafts

From: [email-masked] (Kevin Riggle)
Date: Sun, 26 Oct 2008 18:07:23 -0400

Working with a draft message today got me lots of exceptions, usually
when I saved the draft and went back to my inbox.  (These all took the
same form, so I've only attached one of them.)  Running sup-sync didn't
help.  Attempting to /delete/ a draft (open the message, hit 'e' on the
draft, quit my editor, close the buffer in Sup, hit 'y' for discard) got
me a segfault in Ruby (the stock Ubuntu package thereof):

./lib/sup/draft.rb:38: [BUG] Segmentation fault ruby 1.8.6 (2007-09-24) [x86_64-linux] 
Aborted

FYI.

- Kevin
-- 
Kevin Riggle (kevinr at free-dissociation.com) 
http://free-dissociation.com
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: exception-log.txt
URL: <http://rubyforge.org/pipermail/sup-talk/attachments/20081026/20fa0a0e/attachment.txt>

---

From: [email-masked] (Nicolas Pouillard)
Date: Mon, 27 Oct 2008 13:12:39 +0100

I also had this problem and never took time to debug it or report a bug.
Generally sup-sync fix it. Sometimes also working on a draft can duplicate
it and trying to remove the duplicate leads to this problem. Last time
I directly ran a console and removed it from the index.

Excerpts from Kevin Riggle's message of Sun Oct 26 23:07:23 +0100 2008:
> --- EOFError from thread: main
> End-of-File Error occured at <except.c>:93 in xraise
> Error occured in compound_io.c:137 - cmpdi_read_i
>         Tried to read past end of file. File length is <1> and tried to read to <30056>
> 
> ./lib/sup/draft.rb:38:in `default'
> ./lib/sup/draft.rb:38:in `[]'
> ./lib/sup/draft.rb:38:in `discard'
> ./lib/sup/util.rb:499:in `send'
> ./lib/sup/util.rb:499:in `method_missing'
> ./lib/sup/modes/resume-mode.rb:43:in `save_as_draft'
> ./lib/sup/mode.rb:49:in `send'
> ./lib/sup/mode.rb:49:in `handle_input'
> ./lib/sup/buffer.rb:240:in `handle_input'
> bin/sup:189

-- 
Nicolas Pouillard aka Ertai

---

From: [email-masked] (William Morgan)
Date: Mon, 27 Oct 2008 19:21:30 -0700

Reformatted excerpts from Kevin Riggle's message of 2008-10-26:
> same form, so I've only attached one of them.)  Running sup-sync
> didn't help.  Attempting to /delete/ a draft (open the message, hit
> 'e' on the draft, quit my editor, close the buffer in Sup, hit 'y' for
> discard) got me a segfault in Ruby (the stock Ubuntu package thereof):
> 

That don't look good.

>         Tried to read past end of file. File length is <1> and tried to read to <30056>

That neither. Any weird situations like running out of disk space?

Have you tried sup-sync -a sup://drafts? That should force a full
reindex of all your draft messages.

You can also try deleting the message manually through devel/console.sh.
Search the archives for "console.sh"; I believe there are a few good
examples of using it.
-- 
William <wmorgan-sup at masanjin.net>

---

From: [email-masked] (Nicolas Pouillard)
Date: Wed, 29 Oct 2008 10:09:57 +0100

> Search the archives for "console.sh"; I believe there are a few good

Yes console.sh is very nice! However the API seems not really designed to be
used that way, maybe a small refactoring with more idiomatic names (like in
rails) would be nice.

  ex: Message.find_by_message_id
      Message.search(:first, 'is:draft foo bar').destroy!