Dirk-Jan C. Binnema wrote: >>>>>> On Sun, 18 Jul 2010 22:03:19 +0200, David Maus ("DM") wrote: >[expire] > >> ("^\\.system$" (date 3) remove) > >> First it updates the message > >> db, then I get the 'Wrong type argument: listp, nil'. However, I do /not/ get > >> any backtrace. When I then try to enter the folder, or do anything (even when > >> trying M-x toggle-debug-on-error), I either get that same error again. And I > >> cannot move the cursor anymore. Emacs menus are still accessible though, it's > >> not a general hang. But just about whatever I do gives me 'Wrong type > >> argument: listp, nil'. > DM> Interesting. Do you call expire in Folder mode or Summary mode? Here > DM> expiring a maildir folder works perfectly in Summary mode, but in > DM> Folder mode I get an error -- although a different one (WL not being > DM> capable of finding the file the correspondents to a maildir message > DM> number). >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. 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. >After glancing at the sources (wl-summary-expire vs wl-folder-expire-entity), >it seem that the main difference is that the latter updates the msgdb first; >and I get the errors somewhere during or after update takes place. >But, if I enter the folder (which involves a msgdb update as well), and the >use expire in the summary mode, things work well. >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... 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). Good thing: You can reproduce it! Maybe this will give a clue: 1. Start Wanderlust 2. Enable tracing for all functions that start with wl- or elmo- (progn (let (func) (mapc (lambda (f) (if (and (not (memq f func)) (string-match "\\(wl-\\|elmo-\\)" (symbol-name f))) (setq func (cons f func)))) obarray) (mapc (lambda (f) (trace-function-background f (get-buffer-create "*TRACE*"))) func))) 3. Produce the first bug (format specifier etc.) 4. The buffer "*TRACE*" might give a hint. Especially that the format string was, that caused the first error. 5. If you are lucky you might as well produce the nasty one and be able to save the *TRACE* buffer for further investigation. HTH, -- David -- OpenPGP... 0x99ADB83B5A4478E6 Jabber.... dmjena@jabber.org Email..... dmaus@ictsoc.de
Attachment:
pgpKUjQLu5j0g.pgp
Description: PGP signature