[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: some issues with message expiration



Hi David,

First of all, thanks for all your help. Today, I finally found some time to do
further tracing on this problem.... results inline below.

>>>>> On Sun, 25 Jul 2010 19:16:15 +0200, David Maus ("DM") wrote:

  DM> Dirk-Jan C. Binnema wrote:
  >>>>>>> On Sun, 18 Jul 2010 22:03:19 +0200, David Maus ("DM") wrote:

  >> [expire]

  >> >> ("^\\.system$"               (date 3) remove)

  >> This is in Folder mode; I just reproduced it with the latest Wanderlust from
  >> Dave Abrahams repo. Interestingly, when I do that in summary mode
  >> (wl-summary-expire), the same thing does not happen; in fact, it seems to work
  >> without any problem in that case.

  DM> This fits with my observation.

  >> Interestingly, after doing the summary-mode expire, I can try folder-mode
  >> expire without any further trouble -- I think this is because there is no
  >> msgdb update involved now.

  [...]

  >> So my current hypothesis is that for some reason, msg-updating works in some
  >> different and wrong way when it's triggered by folder-mode expire. Digging
  >> further...

  DM> Good.  This is a lead.

  DM> A question about this one:

  >> >> - when trying to expire my 'System' folder, I get
  >> >> "Wrong type argument: listp, nil"
  >> >> but
  >> >> when I try to enter the folder afterwards I get:
  >> >> "Format specifier doesn't match argument type", after which WL (or emacs)
  >> >> is not very useful anymore, and tells me
  >> >> "Symbol's value as variable is void: nil". After that, I cannot even close
  >> >> emacs properly, but have to kill it.

  DM> Do you have a way to reproduce this behavior?  IIRC I hit a problem
  DM> with the same symptoms occasionally and "Symbol's value as variable is
  DM> void: nil" sound horrible: Meaning that Emacs somehow forgot that the
  DM> symbol nil is ... nil.  What ever WL might do wrong: THIS should not
  DM> never happen :( (read: It could be a Emacs bug).

  >> Yes, this easily reproducible, it happens every time I try to expire in Folder
  >> Mode when the folder needs to be updated. Indeed, the nil thing seems very
  >> scary. Do you have any idea on how I could debug this? (as mentioned,
  >> toggle-debug-on-error does not work).

  DM> Good thing: You can reproduce it!  Maybe this will give a clue:

  DM>  3. Produce the first bug (format specifier etc.)

 Hmmm, that seems to be the *second* error.

 Ok, I move point the 'Junk' folder in Folder mode, press 'e', I get these
 messages:

,----
| Expire .junk? (y or n) 
| Loading msgdb for .junk...done
| Checking folder diff...done
| Creating msgdb...done
| Loading msgdb for .junk...done
| Expiring (delete) 7 msgs...
| byte-code: Wrong type argument: listp, nil
`----

in the *TRACE* buffer, I get (cleaned up from about 400Kb of data; hope I kept
the important parts. 

======================================================================
1 -> elmo-msgdb-killed-list-load: dir="/home/djcb/.emacs.d/data/wl/elmo-djcb/maildir/ shome sdjcb sMaildir sjunk"
1 <- elmo-msgdb-killed-list-load: nil
======================================================================	
1 -> elmo-location-map-load: location-map=[elmo-maildir-folder [0 0 0 0 0 0 0]
maildir ".junk" "." #1="/home/djcb/.emacs.d/data/wl/elmo-djcb/maildir/ shome
sdjcb sMaildir sjunk" [modb-standard [0 0 0 0 0 0 0] #1# nil nil x-ctext (70
71 72 73 75 76 77 78 79 80 81 82 83 84 85) [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 <15998771\.271272431280502739983\.JavaMail\.

[...]

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0] ((unread . 12) (new . 12)) nil] nil nil t nil nil
x-ctext nil nil nil "/home/djcb/Maildir/junk" nil nil nil]
directory="/home/djcb/.emacs.d/data/wl/elmo-djcb/maildir/ shome sdjcb sMaildir
sjunk" | 2 -> elmo-location-map-setup: location-map=[elmo-maildir-folder [0 0
0 0 0 0 0] maildir ".junk" "."
#1="/home/djcb/.emacs.d/data/wl/elmo-djcb/maildir/ shome sdjcb sMaildir sjunk"
[modb-standard [0 0 0 0 0 0 0] #1# nil nil x-ctext (70 71 72 73 75 76 77 78 79
80 81 82 83 84 85) [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
<15998771\.271272431280502739983\.JavaMai

 [...]

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0] ((unread . 12) (new . 12)) nil] nil nil t nil nil x-ctext nil nil
nil "/home/djcb/Maildir/junk" nil nil nil] locations=((129))

| 2 <- elmo-location-map-setup: ((129))
1 <- elmo-location-map-load: ((129))
======================================================================
1 -> elmo-maildir-cleanup-temporal: dir="/home/djcb/Maildir/junk"
1 <- elmo-maildir-cleanup-temporal: nil
======================================================================
1 -> elmo-location-map-update: location-map=[elmo-maildir-folder [0 0 0 0 0 0
0] maildir ".junk" "." #1="/home/djcb/.emacs.d/data/wl/elmo-djcb/maildir/
shome sdjcb sMaildir sjunk" [modb-standard [0 0 0 0 0 0 0] #1# nil nil x-ctext
(70 71 72 7

[ ... ]

======================================================================
1 -> elmo-map-message-location: location-map=[elmo-maildir-folder [0 0 0 0 0 0
0] maildir ".junk" "." #1="/home/djcb/.emacs.d/data/wl/elmo-djcb/maildir/
shome sdjcb sMaildir sjunk" [modb-standard [0 0 0 0 0 0 0] #1# (0) t x-ctext
nil [0 0 0 0

[...] ==> any now we're going to delete some messages...


0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0] ((unread . 12) (new . 12)) nil] nil nil t nil nil
x-ctext nil nil 151 "/home/djcb/Maildir/junk" ("1280562004.3634_1.cthulhu"
"1280514904.13166_1.cthulhu" "1280508608.3348_1.cthulhu"
"1280469180.2575_1.cthulhu" "1280339119.4575_1.cthulhu"
"1280295005.3596_1.cthulhu" "1280268004.13040_1.cthulhu"
"1280252479.2794_1.cthulhu" "1280202304.24128_1.cthulhu"
"1280079635.8352_2.cthulhu" "1280079610.8323_2.cthulhu"
"1280060751.30027_1.cthulhu") nil nil] locations=nil

1 <- elmo-map-folder-delete-messages: t
======================================================================
1 -> elmo-location-map-remove-numbers: location-map=[elmo-maildir-folder [0 0
0 0 0 0 0] maildir ".junk" "." #1="/home/dj

[...]

0 0] ((unread . 12) (new . 12)) nil] nil nil t nil nil x-ctext nil nil 151
"/home/djcb/Maildir/junk" ("1280562004.3634_1.cthulhu"
"1280514904.13166_1.cthulhu" "1280508608.3348_1.cthulhu"
"1280469180.2575_1.cthulhu" "1280339119.4575_1.cthulhu"
"1280295005.3596_1.cthulhu" "1280268004.13040_1.cthulhu"
"1280252479.2794_1.cthulhu" "1280202304.24128_1.cthulhu"
"1280079635.8352_2.cthulhu" "1280079610.8323_2.cthulhu"
"1280060751.30027_1.cthulhu") nil nil] numbers=(130 131 132 133 134 135 140)

1 <- elmo-location-map-remove-numbers: nil

And it ends with that.

Then, I get the other error:

  wl-highlight-summary-current-line: Format specifier doesn't match argument type
  
but I cannot get anything in the trace for that. Note, now, I am able to see
some of the remaining messages in the junk folder; so possibly, some message
has its metadata screwed up.

I was able to catch a trace as well, when expiring the 'trash' folder: (again,
I truncated the data after the last function a bit; I can provide more but I
don't want to flood the list).

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)

elmo-location-map-setup([elmo-maildir-folder [0 0 0 0 0 0 0] maildir ".trash"
"." "/home/djcb/.emacs.d/data/wl/elmo-djcb/maildir/ shome sdjcb sMaildir
strash" [modb-standard [0 0 0 0 0 0 0]
"/home/djcb/.emacs.d/data/wl/elmo-djcb/maildir/ shome sdjcb sMaildir strash"
nil nil x-ctext (2368 2416 2419 2420 2421 2423 2424 2425 2426 2427 2428 2429
2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444
2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2458 2459 2460
2461 2462 2463 2466 2467 2469 2470 2471 ...)
[<AANLkTilZDbzaGd55Ga_zpHpQtO5XR3msA7e5fdDdD9oJ@mail\.gmail\.com> 0
<AANLkTik3-XYy4piZR4TUp21BdECDBwjsx7O2HdqDmcEe@mail\.gmail\.com> 0 0
<AANLkTikAhb75tF3QWNfBhLy9btvviHrk4=3u2Zuuq13X@mail\.gmail\.com> 0 0
<87sk3ecrk9\.fsf@gollum\.intra\.norang\.ca> 0
<1279489368\.5158\.5\.camel@localhost\.localdomain> 0 0
<4C447FAF\.6040104@igalia\.com>
<AANLkTinhVW4z-ZgTAhJP2sDq69_J5-Aaq0nVPOsiH3F5@mail\.gmail\.com>
<246948\.79197\.qm@web29001\.mail\.ird\.yahoo\.com>
<AANLkTik9qB0GmPAoL8LHirMH637b2lPgVbGb-zAYmS6B@mail\.gmail\.com> 0
<10dc01cb2a57$24046420$6c0d2c60$@com> <87iq47po9t\.fsf@gmx\.de> 0 0
<1279545109\.9128\.54\.camel@zingle> 0 0 0
<loom\.20100715T213504-2@post\.gmane\.org> <20100719133933\.GA23624@panahar> 0
<ProgLanguages-11065@acme\.com>
<AANLkTimIvJBvXUFUYdXmgonUwvHgS831pw13eWbglKsZ@mail\.gmail\.com> 0 0 0 0
<jwveieui53g\.fsf-monnier+emacs@gnu\.org> 0 0 0 0 0 0 0
<87vd8cv2v7\.fsf@gnu\.org> 0 0 0 <4C3F264F\.2030501@swipnet\.se> 0 0 ...] [0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 ...] (... ... ... ...) nil] nil nil t nil nil x-ctext nil
nil nil "/home/djcb/Maildir/trash" nil nil nil] ((nil)))

  (rest of the backtrace below, truncated)

elmo-location-map-load([elmo-maildir-folder [0 0 0 0 0 0 0] 
#[(folder) "\301\302!\"\210\303!\205 \304\305!\
apply(#[(folder) "\301\302!\"\210\303!\205 \304\3
luna-call-next-method()                                     
luna-apply-generic([elmo-maildir-folder [0 0 0 0 0 0 0] mail
elmo-folder-open-internal([elmo-maildir-folder [0 0 0 0 0 0 
elmo-generic-folder-open([elmo-maildir-folder [0 0 0 0 0 0 0
#[(folder &optional load-msgdb) "\302	\"\207" [folde
apply(#[(folder &optional load-msgdb) "\302	\"\207" [folde
luna-call-next-method()                                     
luna-apply-generic([elmo-maildir-folder [0 0 0 0 0 0 0] mail
elmo-folder-open([elmo-maildir-folder [0 0 0 0 0 0 0] maildi
wl-folder-sync-entity(#(".trash" 0 6 (wl-folder-entity-id 25
wl-folder-expire-entity(#(".trash" 0 6 (wl-folder-entity-id 
wl-folder-expire-current-entity()                           
call-interactively(wl-folder-expire-current-entity nil nil) 

Hope this makes things a bit clearer. I can provide more data if needed.

Best wishes,
Dirk.

-- 
Dirk-Jan C. Binnema                  Helsinki, Finland
e:djcb@djcbsoftware.nl           w:www.djcbsoftware.nl
pgp: D09C E664 897D 7D39 5047 A178 E96A C7A1 017D DA3C