Gnus development mailing list
 help / color / mirror / Atom feed
* Woe is me and maildirs
@ 2003-01-08 15:23 John A. Martin
  2003-01-08 20:56 ` Paul Jarc
  0 siblings, 1 reply; 7+ messages in thread
From: John A. Martin @ 2003-01-08 15:23 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 26567 bytes --]

I need help with both the problem described here and in recovering my
maildirs which seems to be totally unusable.

In Group mode g (get) gives the following backtrace.

,----[ backtrace on Group mode g (get) ]
| Signaling: (wrong-type-argument number-char-or-marker-p nil)
|   nnmaildir--grp-add-art([cl-struct-nnmaildir--srv "" (nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)) "nnmaildir:" "/home/jam/mail-groups/" nnheader-directory-files-safe [gnupg-commits 0 root esf 0 acm 0 0 0 0 pbs 0 m53test mci 0 0 usc eilo-owner 0 ssh apl-l verizon 0 0 0 0 caldera 0 johnk maps-chatter 0 tct 0 0 inbox open-mag 0 0 u91718 0 debian-laptop 0 linux-journal 0 bastille rfci 0 forensics 0 bbdb ...] nil nil (15889 5612) nil "../maildirs"] [cl-struct-nnmaildir--grp "dc-linux" (15899 22802) nil 2 691 ((2177 . ...) (2176 . ...) (2175 . ...) (2174 . ...) (2173 . ...) (2172 . ...) (2171 . ...) (2170 . ...) (2169 . ...) (2168 . ...) (2167 . ...) (2166 . ...) (2165 . ...) (2164 . ...) (2163 . ...) (2162 . ...) (2161 . ...) (2160 . ...) (2159 . ...) (2158 . ...) (2157 . ...) (2156 . ...) (2155 . ...) (2154 . ...) (2153 . ...) (2152 . ...) (2151 . ...) (2150 . ...) (2149 . ...) (2148 . ...) (2147 . ...) (2146 . ...) (2145 . ...) (2144 . ...) (2143 . ...) (2142 . ...) (2141 . ...) (2140 . ...) (2139 . ...) (2138 . ...) (2137 . ...) (2136 . ...) (2135 . ...) (2134 . ...) (2133 . ...) (2132 . ...) (2131 . ...) (2130 . ...) (2129 . ...) (2128 . ...) (2127 . ...) ...) [0 0 1038027203\.3053_4\.athene\.jamux\.com 1038027609\.3053_1\.athene\.jamux\.com 0 1038027203\.3053_3\.athene\.jamux\.com 0 0 1038027481\.3053_3\.athene\.jamux\.com 0 1040072406\.9203_0\.athene 1041821051\.30668_0\.athene 0 1039655285\.28055_0\.athene 0 0 0 0 1038027207\.3053_7\.athene\.jamux\.com 1038027619\.3053_1\.athene\.jamux\.com 1039662073\.30339_0\.athene 1038027282\.3053_3\.athene\.jamux\.com 1038027223\.3053_3\.athene\.jamux\.com 1038027324\.3053_6\.athene\.jamux\.com 1038027555\.3053_6\.athene\.jamux\.com 1038027318\.3053_2\.athene\.jamux\.com 1038027315\.3053_6\.athene\.jamux\.com 0 1038027241\.3053_1\.athene\.jamux\.com 1038027307\.3053_1\.athene\.jamux\.com 1038027318\.3053_1\.athene\.jamux\.com 0 1038027388\.3053\.athene\.jamux\.com 0 1038027368\.3053\.athene\.jamux\.com 0 1038027572\.3053_1\.athene\.jamux\.com 1038027422\.3053\.athene\.jamux\.com 1038027242\.3053_8\.athene\.jamux\.com 1038027570\.3053_7\.athene\.jamux\.com 1038027570\.3053_6\.athene\.jamux\.com 1038027572\.3053_2\.athene\.jamux\.com 1038027321\.3053_6\.athene\.jamux\.com 1038027559\.3053_5\.athene\.jamux\.com 1038027559\.3053_4\.athene\.jamux\.com 1038027308\.3053_1\.athene\.jamux\.com 0 1038027487\.3053_1\.athene\.jamux\.com 1038027239\.3053_7\.athene\.jamux\.com 1038027508\.3053\.athene\.jamux\.com ...] [0 0 0 <20021109100047\.A11573@gri\.gallaudet\.edu> 0 0 0 <1033764364\.5623\.186\.camel@shzaq\.smartbrief\.com> <F34NFr9oD6XMLDthODt000184b4@hotmail\.com> 0 0 <20030103194827\.GA21905@gideonfamily\.org> 0 <1030860855\.6614\.1\.camel@sera\.symmetry\.symmsys\.com> <20021227152330\.A18821@gwyn\.tux\.org> <87isy9rvp6\.fsf@mendel\.genehack\.org> 0 <Pine\.LNX\.4\.30\.0208191254231\.23481-100000@gwyn\.tux\.org> 0 0 <Pine\.LNX\.4\.44\.0210071938510\.26684-100000@ns1\.db2adm\.com> 0 0 <1037206701\.7563\.17\.camel@localhost\.localdomain> 0 <29897\.198\.23\.5\.11\.1036610260\.squirrel@bird\.tomsw\.com> 0 <Pine\.GSO\.4\.10\.10212031759500\.15125-100000@apus\.astro\.umd\.edu> <20021212120656\.GA24046@gri\.gallaudet\.edu> <Pine\.GSO\.4\.33\.0208201331300\.17405-100000@ptah\.u\.arizona\.edu> 0 0 0 0 <20021214193201\.GA3092@gideonfamily\.org> <3D5035C0\.416FE560@johnknight\.com> 0 0 <1032979157\.1382\.76\.camel@shzaq\.smartbrief\.com> <20021006182933\.A25001@rainfall4\.gsfc\.nasa\.gov> 0 0 <Pine\.LNX\.4\.44L\.01\.0210101658220\.19214-100000@linux2\.gl\.umbc\.edu> 0 0 0 <Pine\.LNX\.4\.44\.0208190000050\.24573-100000@harappa\.oldtrail\.reston\.va\.us> 0 <Pine\.LNX\.4\.10\.10209071103270\.26471-100000@zaphod\.smartbrief\.com> <200212202231\.RAA03522@gwyn\.tux\.org> ...] [[cl-struct-nnmaildir--art "1038027616.3053_6.athene.jamux.com" ":2," 1879 "<010901c28abb$595d0120$5b64a8c0@tetratechffx>" ...] [cl-struct-nnmaildir--art "1038027617.3053_3.athene.jamux.com" ":2," 1883 "<1037171412.1510.11.camel@dsl092-171-058.wdc1.dsl.speakeasy.net>" ...] [cl-struct-nnmaildir--art "1038027617.3053_4.athene.jamux.com" ":2," 1884 "<200211131051.31814@laptop.rap.catchfs.com>" ...] [cl-struct-nnmaildir--art "1038027617.3053_5.athene.jamux.com" ":2," 1885 "<200211131059.52213@laptop.rap.catchfs.com>" ...] [cl-struct-nnmaildir--art "1038027619.3053.athene.jamux.com" ":2," 1886 "<1037206701.7563.17.camel@localhost.localdomain>" ...] [cl-struct-nnmaildir--art "1038027619.3053_1.athene.jamux.com" ":2," 1887 "<E18C9Fs-000HN2-00@f8.mail.ru>" ...] [cl-struct-nnmaildir--art "1038027620.3053.athene.jamux.com" ":2," 1890 "<200211141939.gAEJdDv00486@green.lucidgreen.com>" ...] [cl-struct-nnmaildir--art "1038027620.3053_1.athene.jamux.com" ":2," 1891 "<Pine.LNX.4.44.0211141223590.8133-100000@grace.speakeasy.net>" ...] [cl-struct-nnmaildir--art "1038027624.3053.athene.jamux.com" ":2," 1908 "<Pine.LNX.4.44.0211171729210.2311-100000@mail.uslinux.net>" ...] [cl-struct-nnmaildir--art "1038027624.3053_4.athene.jamux.com" ":2," 1912 "<200211180211.VAA14130@ns1.ksdpublishing.com>" ...] [cl-struct-nnmaildir--art "1038027624.3053_5.athene.jamux.com" ":2," 1913 "<Pine.GSO.4.10.10211180910480.26436-100000@apus.astro.umd.edu>" ...] [cl-struct-nnmaildir--art "1038027626.3053.athene.jamux.com" ":2," 1917 "<E18DqR1-0002S5-00@gold.nocdirect.com>" ...] [cl-struct-nnmaildir--art "1038027630.3053_3.athene.jamux.com" ":2," 1935 "<200211190543.AAA32139@gwyn.tux.org>" ...] [cl-struct-nnmaildir--art "1038027634.3053_6.athene.jamux.com" ":2," 1953 "<20021120131934.GA28357@gri.gallaudet.edu>" ...] [cl-struct-nnmaildir--art "1038027635.3053_4.athene.jamux.com" ":2," 1958 "<Pine.LNX.4.44.0211201106110.7617-100000@harappa.oldtrail.reston.va.us>" ...] [cl-struct-nnmaildir--art "1038027637.3053.athene.jamux.com" ":2," 1962 "<20021120170753.GB29765@gri.gallaudet.edu>" ...] [cl-struct-nnmaildir--art "1038228600.31106.athene.jamux.com" ":2," 2014 "<18604.212.234.3.118.1038222936.squirrel@www.movingsatellites.com>" ...] [cl-struct-nnmaildir--art "1038256007.31106.athene.jamux.com" ":2," 2023 "<Pine.LNX.4.44.0211251404310.13151-100000@mail.uslinux.net>" ...] [cl-struct-nnmaildir--art "1038279863.11209_0.athene" ":2," 2024 "<87znrxt4x3.fsf@mendel.genehack.org>" ...] [cl-struct-nnmaildir--art "1038321041.31199_0.athene" ":2," 2025 "<20021126141747.19277.qmail@web10007.mail.yahoo.com>" ...] [cl-struct-nnmaildir--art "1038323976.32195_0.athene" ":2," 2026 "<87hee4wejj.fsf@mendel.genehack.org>" ...] [cl-struct-nnmaildir--art "1038325756.32601_0.athene" ":2," 2027 "<951703DE931CD511A80600A0C9825BAA09C00D@BETH-EMAIL>" ...] [cl-struct-nnmaildir--art "1038327137.802_0.athene" ":2," 2028 "<Pine.LNX.4.44.0211261047240.32428-100000@mail.uslinux.net>" ...] [cl-struct-nnmaildir--art "1038414905.4563_0.athene" ":2," 2029 "<1038333494.1815.3.camel@localhost>" ...] [cl-struct-nnmaildir--art "1038692227.10214_0.athene" ":2," 2030 "<F33NxE87diADJHFpIfj00019be5@hotmail.com>" ...] [cl-struct-nnmaildir--art "1038708943.18594_0.athene" ":2," 2031 "<Pine.LNX.4.50.0211302111220.19007-100000@apoc.tamos.net>" ...] [cl-struct-nnmaildir--art "1038723584.3617_0.athene" ":2," 2032 "<200211271235.41141.sham@styk.net>" ...] [cl-struct-nnmaildir--art "1038798726.29989_0.athene" ":2," 2033 "<F32SN00ktmzmVBCOWHJ0000ebb1@hotmail.com>" ...] [cl-struct-nnmaildir--art "1038846143.6251_0.athene" ":2," 2034 "<20021202161607.GB21814@gideonfamily.org>" ...] [cl-struct-nnmaildir--art "1038883217.25022_0.athene" ":2," 2035 "<20021202202232.68b376e7.vvired@mail.ru>" ...] [cl-struct-nnmaildir--art "1038887629.26501_0.athene" ":2," 2036 "<20021202224614.13cbd03a.vvired@mail.ru>" ...] [cl-struct-nnmaildir--art "1038890882.27625_0.athene" ":2," 2037 "<20021202234205.61c8ed53.vvired@mail.ru>" ...] [cl-struct-nnmaildir--art "1038892415.28920_0.athene" ":2," 2038 "<20021203000750.34e5f61f.vvired@mail.ru>" ...] [cl-struct-nnmaildir--art "1038898838.13217_0.athene" ":2," 2039 "<00dd01c29a99$191eadf0$f801a8c0@internetchen.net>" ...] [cl-struct-nnmaildir--art "1038948298.7246_0.athene" ":2," 2040 "<F34NFr9oD6XMLDthODt000184b4@hotmail.com>" ...] [cl-struct-nnmaildir--art "1038949497.8106_0.athene" ":2," 2041 "<20021203205548.GB2862@gideonfamily.org>" ...] [cl-struct-nnmaildir--art "1038952073.9394_0.athene" ":2," 2042 "<20021203164114.A30373@usa.net>" ...] [cl-struct-nnmaildir--art "1038952309.9475_0.athene" ":2," 2043 "<Pine.LNX.4.44.0212031345350.17970-100000@grace.speakeasy.net>" ...] [cl-struct-nnmaildir--art "1038952733.9569_0.athene" ":2," 2044 "<20021203215315.19394.qmail@webmail.speakeasy.net>" ...] [cl-struct-nnmaildir--art "1038953829.10203_0.athene" ":2," 2045 "<Pine.LNX.4.33.0212031653140.3247-100000@tyan.doghouse.com>" ...] [cl-struct-nnmaildir--art "1038955484.10605_0.athene" ":2," 2046 "<Pine.LNX.4.43.0212031715290.4064-100000@chapelperilous.net>" ...] [cl-struct-nnmaildir--art "1038956819.11753_0.athene" ":2," 2047 "<20021203225829.21687.qmail@webmail.speakeasy.net>" ...] [cl-struct-nnmaildir--art "1038957012.11810_0.athene" ":2," 2048 "<Pine.GSO.4.10.10212031759500.15125-100000@apus.astro.umd.edu>" ...] [cl-struct-nnmaildir--art "1038961714.15264_0.athene" ":2," 2049 "<E18JNG3-0004Jm-00@gold.nocdirect.com>" ...] [cl-struct-nnmaildir--art "1038976518.22482_0.athene" ":2," 2050 "<874r9uxvjp.fsf@mendel.genehack.org>" ...] [cl-struct-nnmaildir--art "1039015593.21176_0.athene" ":2," 2051 "<20021204151947.GB8038@gideonfamily.org>" ...] [cl-struct-nnmaildir--art "1039059287.8771_0.athene" ":2," 2052 "<87isy9rvp6.fsf@mendel.genehack.org>" ...] [cl-struct-nnmaildir--art "1039059349.8802_0.athene" ":2," 2053 "<87n0nlrvq1.fsf@mendel.genehack.org>" ...] [cl-struct-nnmaildir--art "1039060139.8980_0.athene" ":2," 2054 "<87smxdqgcr.fsf@mendel.genehack.org>" ...] [cl-struct-nnmaildir--art "1039066343.11796_0.athene" ":2," 2055 "<Pine.GSO.4.10.10212050025410.21059-100000@apus.astro.umd.edu>" ...] ...] 172 [0]] [cl-struct-nnmaildir--art "1041879354.17125_0.athene" ":2," 1 "<200301061404.17982.tim.bogart@wcom.com>" nil])
|   #<compiled-function (file) "...(29)" [group nnmaildir--cur-server x file 5 vector cl-struct-nnmaildir--art nil nnmaildir--grp-add-art] 7>([104187 9354 17125 0 ".athene" ("1041879354.17125_0.athene" . ":2,")])
|   mapcar(#<compiled-function (file) "...(29)" [group nnmaildir--cur-server x file 5 vector cl-struct-nnmaildir--art nil nnmaildir--grp-add-art] 7> ([104187 9354 17125 0 ".athene" ("1041879354.17125_0.athene" . ":2,")] [104187 9840 17920 0 ".athene" ("1041879840.17920_0.athene" . ":2,")] [104197 3404 11855 0 ".athene" ("1041973404.11855_0.athene" . ":2,")]))
|   byte-code("..." [cl-struct-nnmaildir--grp-tags nnmaildir--cur-server absdir nattr files group current-time 2 nil file-name-as-directory ".nnmaildir" file-exists-p 0 error "nnmaildir--srv-error storing a non-nnmaildir--srv" 8 "No such directory: " throw return "tmp" "new" "cur" file-attributes "Not a maildir: " nnmaildir--prepare nnmaildir--pgname t vector cl-struct-nnmaildir--grp 1 nnmaildir--mkdir "nov" "marks" write-region "" "markfile" no-message nnmaildir--param read-only directory-files 11 "Maildir spans filesystems: " mapcar #<compiled-function (file) "...(23)" [36h-ago x file file-attributes 1 4 delete-file] 3> full "\\`[^.]" nosort 5 "nnmaildir--grp-new accessing a non-nnmaildir--grp" #<compiled-function (file) "...(10)" [cdir ndir file rename-file ":2,"] 5> ...] 19)
|   nnmaildir--scan("dc-linux" t [gnupg-commits 0 root esf 0 acm 0 0 0 0 pbs 0 m53test mci 0 0 usc eilo-owner 0 ssh apl-l verizon 0 0 0 0 caldera 0 johnk maps-chatter 0 tct 0 0 inbox open-mag 0 0 u91718 0 debian-laptop 0 linux-journal 0 bastille rfci 0 forensics 0 bbdb ...] (nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)) "/home/jam/mail-groups/" nnheader-directory-files-safe)
|   #<compiled-function (sym) "...(12)" [srv-ls srv-dir method groups sym nnmaildir--scan symbol-name t] 7>(dc-linux)
|   mapatoms(#<compiled-function (sym) "...(12)" [srv-ls srv-dir method groups sym nnmaildir--scan symbol-name t] 7> [gnupg-commits 0 root esf 0 acm 0 0 0 0 pbs 0 m53test mci 0 0 usc eilo-owner 0 ssh apl-l verizon 0 0 0 0 caldera 0 johnk maps-chatter 0 tct 0 0 inbox open-mag 0 0 u91718 0 debian-laptop 0 linux-journal 0 bastille rfci 0 forensics 0 bbdb ...])
|   nnmaildir-request-scan(nil "")
|   gnus-request-scan(nil (nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)))
|   gnus-read-active-file-1((nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)) nil)
|   gnus-read-active-file()
|   gnus-group-get-new-news(nil)
|   call-interactively(gnus-group-get-new-news)
`----

That is beyond my ken.

This is cvs Gnus of 5 Jan 2003

,----[ cvs-status in part ]
| PCL-CVS release v2_9_9
| 
| Repository       : :pserver:gnus@cvs.gnus.org:/usr/local/cvsroot
| Working directory: /home/jam/.xemacs/lisp/pgnus/lisp/
| 
| 
| 
| In directory .:
|               Up-To-Date  6.2         .cvsignore
| 6.1830        Need-Update 6.1804      ChangeLog
`----

running in xemacs-nomule

        XEmacs 21.4 (patch 10) "Military Intelligence" [Lucid]
          (i386-debian-linux) of Sun Nov 24 2002 on eeyore

From xemacs21-nomule_21.4.6-8_i386.deb.

Immediately after a clean cvs build

,----
| cd lisp && make EMACS="xemacs" lispdir="/usr/share/xemacs/site-packages/lisp/gnus" all
| ...
|  While compiling the end of the data in file /home/jam/.xemacs/lisp/pgnus/lisp/spam.el:
|    ** The following functions are not known to be defined: 
|      spam-BBDB-register-routine, spam-enter-ham-BBDB
`----[ no other "**" ]

I saw a similar backtrace

,----[ backtrace on M-x gnus ]
| Signaling: (wrong-type-argument number-char-or-marker-p nil)
|   nnmaildir--grp-add-art([cl-struct-nnmaildir--srv "" (nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)) "nnmaildir:" "/home/jam/mail-groups/" nnheader-directory-files-safe [people 0 0 esf 0 acm 0 0 0 0 pbs 0 m53test mci 0 0 usc eilo-owner 0 0 apl-l verizon 0 0 0 0 caldera 0 johnk maps-chatter 0 tct 0 0 inbox open-mag 0 0 u91718 0 0 0 linux-journal 0 bastille rfci 0 forensics 0 bbdb ...] nil "You must set \"directory\" in the select method" nil nil "../maildirs"] [cl-struct-nnmaildir--grp "m53test" (15895 15321) nil 2 1 ((2 . ...)) [0 0 0 0 0 0 0 0 0 0 0 0 1041284902\.17819_0\.athene 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 <mailman\.0\.1041284902\.11063\.m53test@lists\.jamux\.org> 0 0 0 0] [[cl-struct-nnmaildir--art "1041284902.17819_0.athene" ":2," 2 "<mailman.0.1041284902.11063.m53test@lists.jamux.org>" ...] nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1 [0]] [cl-struct-nnmaildir--art "1041284927.2923.athene.jamux.com" ":2," 1 "<mailman.0.1041283904.17536.m53test@lists.jamux.org>" nil])
|   #<compiled-function (file) "...(29)" [group nnmaildir--cur-server x file 5 vector cl-struct-nnmaildir--art nil nnmaildir--grp-add-art] 7>([104128 4927 2923 -1 ".athene.jamux.com" ("1041284927.2923.athene.jamux.com" . ":2,")])
|   mapcar(#<compiled-function (file) "...(29)" [group nnmaildir--cur-server x file 5 vector cl-struct-nnmaildir--art nil nnmaildir--grp-add-art] 7> ([104128 4927 2923 -1 ".athene.jamux.com" ("1041284927.2923.athene.jamux.com" . ":2,")] [104128 5454 17996 0 ".athene" ("1041285454.17996_0.athene" . ":2,")] [104128 5708 18169 0 ".athene" ("1041285708.18169_0.athene" . ":2,")] [104128 6301 18584 0 ".athene" ("1041286301.18584_0.athene" . ":2,")] [104128 6302 18585 0 ".athene" ("1041286302.18585_0.athene" . ":2,")] [104128 7286 18854 0 ".athene" ("1041287286.18854_0.athene" . ":2,")] [104128 7303 18857 0 ".athene" ("1041287303.18857_0.athene" . ":2,")] [104128 7631 18963 0 ".athene" ("1041287631.18963_0.athene" . ":2,")] [104128 7633 18964 0 ".athene" ("1041287633.18964_0.athene" . ":2,")] [104128 8473 19220 0 ".athene" ("1041288473.19220_0.athene" . ":2,")] [104135 2312 26799 0 ".athene" ("1041352312.26799_0.athene" . ":2,")] [104135 2569 26874 0 ".athene" ("1041352569.26874_0.athene" . ":2,")] [104152 5416 16719 0 ".athene" ("1041525416.16719_0.athene" . ":2,")] [104153 6402 21214 0 ".athene" ("1041536402.21214_0.athene" . ":2,")] [104153 9146 22441 0 ".athene" ("1041539146.22441_0.athene" . ":2,")] [104155 6589 29680 0 ".athene" ("1041556589.29680_0.athene" . ":2,")] [104161 958 3598 0 ".athene" ("1041610958.3598_0.athene" . ":2,")] [104161 1767 3830 0 ".athene" ("1041611767.3830_0.athene" . ":2,")] [104161 9198 6521 0 ".athene" ("1041619198.6521_0.athene" . ":2,")] [104161 9377 6592 0 ".athene" ("1041619377.6592_0.athene" . ":2,")] [104170 9589 28843 0 ".athene" ("1041709589.28843_0.athene" . ":2,")]))
|   byte-code("..." [cl-struct-nnmaildir--grp-tags nnmaildir--cur-server absdir nattr files group current-time 2 nil file-name-as-directory ".nnmaildir" file-exists-p 0 error "nnmaildir--srv-error storing a non-nnmaildir--srv" 8 "No such directory: " throw return "tmp" "new" "cur" file-attributes "Not a maildir: " nnmaildir--prepare nnmaildir--pgname t vector cl-struct-nnmaildir--grp 1 nnmaildir--mkdir "nov" "marks" write-region "" "markfile" no-message nnmaildir--param read-only directory-files 11 "Maildir spans filesystems: " mapcar #<compiled-function (file) "...(23)" [36h-ago x file file-attributes 1 4 delete-file] 3> full "\\`[^.]" nosort 5 "nnmaildir--grp-new accessing a non-nnmaildir--grp" #<compiled-function (file) "...(10)" [cdir ndir file rename-file ":2,"] 5> ...] 19)
|   nnmaildir--scan("m53test" t [people 0 0 esf 0 acm 0 0 0 0 pbs 0 m53test mci 0 0 usc eilo-owner 0 0 apl-l verizon 0 0 0 0 caldera 0 johnk maps-chatter 0 tct 0 0 inbox open-mag 0 0 u91718 0 0 0 linux-journal 0 bastille rfci 0 forensics 0 bbdb ...] (nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)) "/home/jam/mail-groups/" nnheader-directory-files-safe)
|   #<compiled-function (grp-dir) "...(17)" [srv-ls srv-dir method groups scan-group grp-dir nnmaildir--scan intern seen] 7>("m53test")
|   mapcar(#<compiled-function (grp-dir) "...(17)" [srv-ls srv-dir method groups scan-group grp-dir nnmaildir--scan intern seen] 7> ("mailman-developers" "mailman-users" "bogon-announce" "ma-linux" "drafts-old" "subs" "postfix-user" "xemacs-beta" "xemacs" "dc-linux" "xemacs-design" "xemacs-announce" "tomsrtbt" "spamcon-general" "secedu" "sa" "policy-post" "lwb" "lsm" "linux-announce" "inc" "iap" "greens" "gnupg-users" "gnupg-announce" "g10" "forensics" "fc" "dccp" "caldera" "blackbox" "bbdb" "bastille" "apl-l" "todo" "credit" "credit2" "debian-bugs" "debian-people" "ei-people" "greenpeace" "maps-chatter" "milne-people" "spamcon-general-asside" "eilo-owner" "inbox" "acm" "amd" "aya" "bgc" "cert-advisory" ...))
|   nnmaildir-request-scan(nil "")
|   gnus-request-scan(nil (nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)))
|   gnus-read-active-file-1((nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)) nil)
|   gnus-read-active-file(nil nil)
|   gnus-setup-news(nil nil nil)
|   byte-code("..." [gnus-slave gnus-current-startup-file gnus-startup-file did-connect level dont-connect gnus-group-quit gnus-run-hooks gnus-startup-hook gnus-make-newsrc-file gnus-dribble-read-file bbb-login add-hook gnus-summary-mode-hook gnus-grouplens-mode gnus-request-create-group "queue" (nndraft "") "drafts" (nndraft "") gnus-setup-news nil gnus-setup-news-hook gnus-start-draft-setup gnus-group-list-groups gnus-group-first-unread-group gnus-configure-windows group gnus-group-set-mode-line gnus-started-hook gnus-use-dribble-file gnus-use-grouplens gnus-agent] 4)
|   gnus-1(nil nil nil)
|   gnus(nil)
|   call-interactively(gnus)
|   command-execute(gnus t)
|   execute-extended-command(nil)
|   call-interactively(execute-extended-command)
`----

I got a similar backtrace on M-x gnus when reverting to my previous
gnus

,----[ cvs-status previous gnus ]
| PCL-CVS release v2_9_9
| 
| Repository       : :pserver:gnus@cvs.gnus.org:/usr/local/cvsroot
| Working directory: /home/jam/.xemacs/lisp/qgnus/lisp/
| 
| 
| 
| In directory .:
| 6.2           Need-Update 6.1         .cvsignore
| 6.1830        Need-Update 6.1723      ChangeLog
`----

Here is my .gnus

,----[ ~/.gnus ]
| ;; -*- Mode: Emacs-Lisp -*-
| 
| ;(defun gnus-byte-compile (gnus-compile))
| ;(defalias 'gnus-byte-compile 'identity)
| (require 'pgg)
| (mml-signencrypt-style "pgpmime" 'combined)
| (mml-signencrypt-style "pgp" 'combined)
| (setq message-signature nil)
| 
| (load-library "/home/jam/.xemacs/lisp/smiley")
| (load-library "/home/jam/.xemacs/lisp/boxquote")
| 
| (setq gnus-select-method '(nnnil ""))
| (add-to-list 'gnus-secondary-select-methods
|              '(nnmaildir ""
|                          (directory "~/mail-groups")
|                          (create-directory "../maildirs")
|                          (directory-files nnheader-directory-files-safe)
|                          (get-new-mail nil)))
| ;(setq gnus-message-archive-method
| ;             '(nnmaildir "arch"
| ;                         (directory "~/arch-groups")
| ;                         (create-directory "../arch-maildirs")
| ;                         (directory-files nnheader-directory-files-safe)
| ;                         (get-new-mail nil)))
| (setq gnus-message-archive-group "nnmaildir:outbox")
| 
| (setq gnus-cacheable-groups "^nntp")
| (setq gnus-use-cache t)
| 
| (setq message-ignored-mail-headers "^[GF]cc:\\|^Resent-Fcc:\\|^Xref:\\|\
| ^X-Draft-From:\\|^X-Gnus-Agent-Meta-Information:\\|^User-Agent:")
| (setq message-ignored-news-headers "^NNTP-Posting-Host:\\|^Xref:\\|^[BGF]cc:\\|\
| ^Resent-Fcc:\\|^X-Draft-From:\\|^X-Gnus-Agent-Meta-Information:\\|^User-Agent:")
| 
| (setq message-default-headers "\
| X-Attribution: jam\n\
| X-Request-PGP: http://www.tux.org/~jam/jam-gpg-keys.html\n\
| X-PGP-Fingerprint: 5F05 15CF 05D2 E8D3 E7FA  8C6A 504B EFD5 BFE2 5F2F\n")
| 
| ;; Customize/Hide Articles
| (setq gnus-treat-hide-signature t)
| (setq gnus-treat-strip-leading-blank-lines t)
| (setq gnus-treat-strip-multiple-blank-lines t)
| (setq gnus-treat-strip-trailing-blank-lines t)
| ;; (add-to-list 'gnus-article-address-banner-alist
| ;; 	     '("@yahoogroups\\.com" .
| ;; 	       "\nYour use of Yahoo! Groups is subject to http://docs\\.yahoo\\.com/info/terms/.*\n"))
| ;(add-to-list 'gnus-article-address-banner-alist
| ;	     '("@yahoogroups\\.com" .
| ;	       "^--.*-->\n.*\n.*\n-+>\n"))
| 
| 
| ;; `text/html' parts are very unwanted, `text/richtech' parts are
| ;; somewhat unwanted
| (setq mm-discouraged-alternatives
|       '("text/html" "text/richtext")
|       mm-automatic-display
|       (remove "text/html" mm-automatic-display))
| 
| 
| ;; use emacs-w3m instead of eamcs-w3 to browse contents of text/html
| ;; 
| (defvar gnus-w3m-minor-mode nil)
| (require 'w3m)
| (make-variable-buffer-local 'gnus-w3m-minor-mode)
| (add-to-list 'minor-mode-alist '(gnus-w3m-minor-mode " w3m"))
| (add-to-list 'minor-mode-map-alist (cons 'gnus-w3m-minor-mode w3m-mode-map))
| 
| (defadvice mm-inline-text (around use-w3m-instead (handle) activate)
|   (let ((type (mm-handle-media-subtype handle)))
|     (if (not (equal type "html"))
| 	ad-do-it
|       (let ((text (mm-get-part handle))
| 	    (b (point)))
| 	(save-excursion
| 	  (insert text)
| 	  (save-restriction
| 	    (narrow-to-region b (point))
| 	    (goto-char (point-min))
| 	    (w3m-region (point-min) (point-max))
| 	    (setq gnus-w3m-minor-mode t))
| 	  (mm-handle-set-undisplayer
| 	   handle
| 	   `(lambda ()
| 	      (let (buffer-read-only)
| 		(setq gnus-w3m-minor-mode nil)
| 		(if (functionp 'remove-specifier)
| 		    (mapcar (lambda (prop)
| 			      (remove-specifier
| 			       (face-property 'default prop)
| 			       (current-buffer)))
| 			    '(background background-pixmap foreground)))
| 		(delete-region ,(point-min-marker)
| 			       ,(point-max-marker))))))))))
| 
| ;; Browse image in multipart/related in koizumi mail-mag.
| 
| (eval-after-load "gnus-art"
|   '(or (assoc "multipart/related" gnus-mime-multipart-functions)
|        (setq gnus-mime-multipart-functions
| 	     (cons
| 	      (cons
| 	       "multipart/related"
| 	       (byte-compile
| 		(lambda (handle)
| 		  (gnus-mime-display-mixed (cdr handle)))))
| 	      gnus-mime-multipart-functions))))
| 
| (add-hook 'message-send-hook 'ispell-message)
`----

I tried to work around this problem by moving ~/maildirs away,
something like,

        cd ~; mv maildirs maildirs-foo; mkdir maildirs

my ~/.procmailrc then makes new maildirs as mail arrives and I seem
able to read those mails.

When I try copying individual maildirs into the active maildirs
directory, like 'cp -a maildirs-foo/x maildirs', I either get the
dreaded "wrong-type-argument number-char-or-marker-p nil" or an error
message from nnmaildir indicating corruption in the .nnmaildir/num
directory.  For example, sometimes when closing the nnmaildir server,
doing a copy, deleting the 'num' directory, opening the server, then
the Group-mode g (get) I could read just the mails that had arrived in
the group since emptying the group but none that were copied in and
eventually I would get another "wrong-type-argument
number-char-or-marker-p nil".  In short, I failed to find a way to
restore access to my old mails.

I have about 75,000 old mails in 135 apparently broken maildirs.

How can I recover these mails?  Can I recover these mails without
loosing everything under the .nnmaildir directories?

Is there any more information I can provide to help you'lls help me?

        jam


[-- Attachment #2: Type: application/pgp-signature, Size: 154 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Woe is me and maildirs
  2003-01-08 15:23 Woe is me and maildirs John A. Martin
@ 2003-01-08 20:56 ` Paul Jarc
  2003-01-08 22:08   ` John A. Martin
  0 siblings, 1 reply; 7+ messages in thread
From: Paul Jarc @ 2003-01-08 20:56 UTC (permalink / raw)
  Cc: ding

jam@jamux.com (John A. Martin) wrote:
> In Group mode g (get) gives the following backtrace.
>
> ,----[ backtrace on Group mode g (get) ]
> | Signaling: (wrong-type-argument number-char-or-marker-p nil)
> |   nnmaildir--grp-add-art([cl-struct-nnmaildir--srv ""
...
> |   byte-code("..." [cl-struct-nnmaildir--grp-tags

You can get a more informative backtrace by:
M-x load-library RET nnmaildir.el RET
Then trigger the error again.

> For example, sometimes when closing the nnmaildir server, doing a
> copy, deleting the 'num' directory, opening the server,

I'm not sure I completely understand what you did, but deleting the
num directory isn't a good idea if you don't know how it works.

If you delete both the num and nov directories (while Gnus is not
running, or while the maildir is not visible to any running Gnus) and
then start Gnus or make the maildir visible, then those directories
will be automatically reconstructed (this may take a while), you will
still have your marks, and the group's articles will be renumbered
starting from 1, with no holes.  But this means articles may have
different numbers than before, which could confuse the cache and
agent, if you use them.

I'm not saying you *should* do any of that yet, though.  Let's start
with the more informative backtrace by loading the source library.


paul



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Woe is me and maildirs
  2003-01-08 20:56 ` Paul Jarc
@ 2003-01-08 22:08   ` John A. Martin
  2003-01-08 23:01     ` Paul Jarc
  0 siblings, 1 reply; 7+ messages in thread
From: John A. Martin @ 2003-01-08 22:08 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 14697 bytes --]

>>>>> "Paul" == Paul Jarc
>>>>> "Re: Woe is me and maildirs"
>>>>>  Wed, 08 Jan 2003 15:56:40 -0500

    Paul> jam@jamux.com (John A. Martin) wrote:
    >> In Group mode g (get) gives the following backtrace.
    >>
    >> ,----[ backtrace on Group mode g (get) ] | Signaling:
    >> (wrong-type-argument number-char-or-marker-p nil) |
    >> nnmaildir--grp-add-art([cl-struct-nnmaildir--srv ""
    Paul> ...
    >> | byte-code("..." [cl-struct-nnmaildir--grp-tags

    Paul> You can get a more informative backtrace by: M-x
    Paul> load-library RET nnmaildir.el RET Then trigger the error
    Paul> again.

Signaling: (wrong-type-argument number-char-or-marker-p nil)
  <(1 nil)
  (while (< num (caar nlist-cdr)) (setq nlist nlist-cdr nlist-cdr (cdr nlist)))
  (if (or (null nlist) (> num ...)) (setq nlist (cons ... nlist)) (setq insert-nlist t nlist-cdr (cdr nlist)) (while (< num ...) (setq nlist nlist-cdr nlist-cdr ...)))
  (progn (setq count (1+ ...) num (nnmaildir--art-num article) min (if ... num ...) nlist (nnmaildir--grp-nlist group)) (if (or ... ...) (setq nlist ...) (setq insert-nlist t nlist-cdr ...) (while ... ...)) (let (...) (setf ... count) (setf ... min) (if insert-nlist ... ...) (set ... article) (set ... article) (set ... group)) (nnmaildir--cache-nov group article nov) t)
  (if nov (progn (setq count ... num ... min ... nlist ...) (if ... ... ... ...) (let ... ... ... ... ... ... ...) (nnmaildir--cache-nov group article nov) t))
  (when nov (setq count (1+ ...) num (nnmaildir--art-num article) min (if ... num ...) nlist (nnmaildir--grp-nlist group)) (if (or ... ...) (setq nlist ...) (setq insert-nlist t nlist-cdr ...) (while ... ...)) (let (...) (setf ... count) (setf ... min) (if insert-nlist ... ...) (set ... article) (set ... article) (set ... group)) (nnmaildir--cache-nov group article nov) t)
  (let ((nov ...) count num min nlist nlist-cdr insert-nlist) (when nov (setq count ... num ... min ... nlist ...) (if ... ... ... ...) (let ... ... ... ... ... ... ...) (nnmaildir--cache-nov group article nov) t))
  nnmaildir--grp-add-art([cl-struct-nnmaildir--srv "" (nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)) "nnmaildir:" "/home/jam/mail-groups/" nnheader-directory-files-safe [gnupg-commits 0 root 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 apl-l 0 0 0 0 0 0 0 0 0 0 0 0 0 inbox 0 0 0 u91718 0 0 0 0 0 0 rfci 0 0 0 0 ...] [cl-struct-nnmaildir--grp "inbox" (15900 38920) (15900 38920) 1 12 (... ... ... ... ... ... ... ... ... ... ... ...) [1042041055\.25162_0\.athene 1042048528\.28009_0\.athene 1042047939\.27826_0\.athene 0 0 1042049502\.28619_0\.athene 1042047940\.27828_0\.athene 0 1042059405\.32326_0\.athene 1042050936\.29017_0\.athene 1042043704\.26233_0\.athene 1042045831\.27188_0\.athene 0 1042050935\.29016_0\.athene 0] [0 0 0 <155\.19f97fa6\.2b4d9d6f@aol\.com> <1ba\.c061723\.2b4d9493@aol\.com> 0 <20030109030854\.XxyNG0160408091@empal\.com> <mailman\.23\.1042047864\.405\.foo@lists\.jamux\.org> 0 0 0 0 0 0 <m3adibicm9\.fsf@multivac\.cwru\.edu>] [... ... ... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil] 12 [0 read 0]] "No such group: yonathanh" (15889 5612) nil "../maildirs"] [cl-struct-nnmaildir--grp "secedu" (15899 2894) (15900 20293) 1 1 ((1 . ...)) [1042042164\.25791_0\.athene] [<3E1BDC1B\.18983\.55550B@localhost>] [[cl-struct-nnmaildir--art "1042042164.25791_0.athene" ":2," 1 "<3E1BDC1B.18983.55550B@localhost>" ...] nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1 [0]] [cl-struct-nnmaildir--art "1037918717.3053.athene.jamux.com" ":2," 1 "<200201061629.g06GTOg16795@red.all.net>" nil])
  (lambda (file) (setq file (if ... file ...) x (make-nnmaildir--art :prefix ... :suffix ...)) (nnmaildir--grp-add-art nnmaildir--cur-server group x))([103791 8717 3053 -1 ".athene.jamux.com" ("1037918717.3053.athene.jamux.com" . ":2,")])
  mapcar((lambda (file) (setq file (if ... file ...) x (make-nnmaildir--art :prefix ... :suffix ...)) (nnmaildir--grp-add-art nnmaildir--cur-server group x)) ([103791 8717 3053 -1 ".athene.jamux.com" ("1037918717.3053.athene.jamux.com" . ":2,")] [103791 8717 3053 1 ".athene.jamux.com" ("1037918717.3053_1.athene.jamux.com" . ":2,")] [103791 8717 3053 2 ".athene.jamux.com" ("1037918717.3053_2.athene.jamux.com" . ":2,")] [103791 8717 3053 3 ".athene.jamux.com" ("1037918717.3053_3.athene.jamux.com" . ":2,")] [103791 8717 3053 4 ".athene.jamux.com" ("1037918717.3053_4.athene.jamux.com" . ":2,")] [103791 8717 3053 5 ".athene.jamux.com" ("1037918717.3053_5.athene.jamux.com" . ":2,")] [103791 8717 3053 6 ".athene.jamux.com" ("1037918717.3053_6.athene.jamux.com" . ":2,")] [103791 8718 3053 -1 ".athene.jamux.com" ("1037918718.3053.athene.jamux.com" . ":2,")] [103791 8718 3053 1 ".athene.jamux.com" ("1037918718.3053_1.athene.jamux.com" . ":2,")] [103791 8718 3053 2 ".athene.jamux.com" ("1037918718.3053_2.athene.jamux.com" . ":2,")] [103791 8718 3053 3 ".athene.jamux.com" ("1037918718.3053_3.athene.jamux.com" . ":2,")] [103791 8718 3053 4 ".athene.jamux.com" ("1037918718.3053_4.athene.jamux.com" . ":2,")] [103791 8718 3053 5 ".athene.jamux.com" ("1037918718.3053_5.athene.jamux.com" . ":2,")] [103791 8718 3053 6 ".athene.jamux.com" ("1037918718.3053_6.athene.jamux.com" . ":2,")] [103791 8718 3053 7 ".athene.jamux.com" ("1037918718.3053_7.athene.jamux.com" . ":2,")] [103791 8719 3053 -1 ".athene.jamux.com" ("1037918719.3053.athene.jamux.com" . ":2,")] [103791 8719 3053 1 ".athene.jamux.com" ("1037918719.3053_1.athene.jamux.com" . ":2,")] [103791 8719 3053 2 ".athene.jamux.com" ("1037918719.3053_2.athene.jamux.com" . ":2,")] [103791 8719 3053 3 ".athene.jamux.com" ("1037918719.3053_3.athene.jamux.com" . ":2,")] [103791 8719 3053 4 ".athene.jamux.com" ("1037918719.3053_4.athene.jamux.com" . ":2,")] [103791 8719 3053 5 ".athene.jamux.com" ("1037918719.3053_5.athene.jamux.com" . ":2,")] [103791 8720 3053 -1 ".athene.jamux.com" ("1037918720.3053.athene.jamux.com" . ":2,")] [103791 8720 3053 1 ".athene.jamux.com" ("1037918720.3053_1.athene.jamux.com" . ":2,")] [103791 8720 3053 2 ".athene.jamux.com" ("1037918720.3053_2.athene.jamux.com" . ":2,")] [103791 8720 3053 3 ".athene.jamux.com" ("1037918720.3053_3.athene.jamux.com" . ":2,")] [103791 8720 3053 4 ".athene.jamux.com" ("1037918720.3053_4.athene.jamux.com" . ":2,")] [103791 8720 3053 5 ".athene.jamux.com" ("1037918720.3053_5.athene.jamux.com" . ":2,")] [103791 8720 3053 6 ".athene.jamux.com" ("1037918720.3053_6.athene.jamux.com" . ":2,")] [103791 8720 3053 7 ".athene.jamux.com" ("1037918720.3053_7.athene.jamux.com" . ":2,")] [103791 8720 3053 8 ".athene.jamux.com" ("1037918720.3053_8.athene.jamux.com" . ":2,")] [103791 8720 3053 9 ".athene.jamux.com" ("1037918720.3053_9.athene.jamux.com" . ":2,")] [103791 8720 3053 10 ".athene.jamux.com" ("1037918720.3053_10.athene.jamux.com" . ":2,")] [103791 8721 3053 -1 ".athene.jamux.com" ("1037918721.3053.athene.jamux.com" . ":2,")] [103791 8721 3053 1 ".athene.jamux.com" ("1037918721.3053_1.athene.jamux.com" . ":2,")] [103791 8721 3053 2 ".athene.jamux.com" ("1037918721.3053_2.athene.jamux.com" . ":2,")] [103791 8722 3053 -1 ".athene.jamux.com" ("1037918722.3053.athene.jamux.com" . ":2,")] [103791 8722 3053 1 ".athene.jamux.com" ("1037918722.3053_1.athene.jamux.com" . ":2,")] [103791 8722 3053 2 ".athene.jamux.com" ("1037918722.3053_2.athene.jamux.com" . ":2,")] [103791 8722 3053 3 ".athene.jamux.com" ("1037918722.3053_3.athene.jamux.com" . ":2,")] [103791 8722 3053 4 ".athene.jamux.com" ("1037918722.3053_4.athene.jamux.com" . ":2,")] [103791 8722 3053 5 ".athene.jamux.com" ("1037918722.3053_5.athene.jamux.com" . ":2,")] [103791 8722 3053 6 ".athene.jamux.com" ("1037918722.3053_6.athene.jamux.com" . ":2,")] [103791 8722 3053 7 ".athene.jamux.com" ("1037918722.3053_7.athene.jamux.com" . ":2,")] [103791 8722 3053 8 ".athene.jamux.com" ("1037918722.3053_8.athene.jamux.com" . ":2,")] [103791 8722 3053 9 ".athene.jamux.com" ("1037918722.3053_9.athene.jamux.com" . ":2,")] [103791 8722 3053 10 ".athene.jamux.com" ("1037918722.3053_10.athene.jamux.com" . ":2,")] [103791 8722 3053 11 ".athene.jamux.com" ("1037918722.3053_11.athene.jamux.com" . ":2,")] [103791 8722 3053 12 ".athene.jamux.com" ("1037918722.3053_12.athene.jamux.com" . ":2,")] [103791 8723 3053 -1 ".athene.jamux.com" ("1037918723.3053.athene.jamux.com" . ":2,")] [103791 8723 3053 1 ".athene.jamux.com" ("1037918723.3053_1.athene.jamux.com" . ":2,")] [103791 8724 3053 -1 ".athene.jamux.com" ("1037918724.3053.athene.jamux.com" . ":2,")] ...))
  (let ((36h-ago ...) absdir nndir tdir ndir cdir nattr cattr isnew pgname read-only ls files num dir flist group x) (setq absdir (nnmaildir--srvgrp-dir srv-dir gname) nndir (nnmaildir--nndir absdir)) (unless (file-exists-p absdir) (setf ... ...) (throw ... nil)) (setq tdir (nnmaildir--tmp absdir) ndir (nnmaildir--new absdir) cdir (nnmaildir--cur absdir) nattr (file-attributes ndir) cattr (file-attributes cdir)) (unless (and ... nattr cattr) (setf ... ...) (throw ... nil)) (setq group (nnmaildir--prepare nil gname) pgname (nnmaildir--pgname nnmaildir--cur-server gname)) (if group (setq isnew nil) (setq isnew t group ...) (nnmaildir--mkdir nndir) (nnmaildir--mkdir ...) (nnmaildir--mkdir ...) (write-region "" nil ... nil ...)) (setq read-only (nnmaildir--param pgname ...) ls (or ... srv-ls)) (unless read-only (setq x ...) (unless ... ... ...) (mapcar ... ...)) (or scan-msgs isnew (throw ... t)) (setq nattr (nth 5 nattr)) (if (equal nattr ...) (setq nattr nil)) (if read-only (setq dir ...) (when ... ... ...) (setq cattr ...) (if ... ...) (setq dir ...)) (unless dir (throw ... t)) (setq files (funcall ls dir nil "\\`[^.]" ...) files (save-match-data ...)) (when isnew (setq num ...) (setf ... ...) (setf ... ...) (setf ... ...) (setq num ...) (if ... ... ... ...) (setf ... ...) (let ... ...) (or scan-msgs ...)) (setq flist (nnmaildir--grp-flist group) files (mapcar ... files) files (delq nil files) files (mapcar ... files) files (sort files ...)) (mapcar (lambda ... ... ...) files) (if read-only (setf ... nattr) (setf ... cattr)))
  (catch (quote return) (let (... absdir nndir tdir ndir cdir nattr cattr isnew pgname read-only ls files num dir flist group x) (setq absdir ... nndir ...) (unless ... ... ...) (setq tdir ... ndir ... cdir ... nattr ... cattr ...) (unless ... ... ...) (setq group ... pgname ...) (if group ... ... ... ... ... ...) (setq read-only ... ls ...) (unless read-only ... ... ...) (or scan-msgs isnew ...) (setq nattr ...) (if ... ...) (if read-only ... ... ... ... ...) (unless dir ...) (setq files ... files ...) (when isnew ... ... ... ... ... ... ... ... ...) (setq flist ... files ... files ... files ... files ...) (mapcar ... files) (if read-only ... ...)) t)
  nnmaildir--scan("secedu" t [gnupg-commits 0 root 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 apl-l 0 0 0 0 0 0 0 0 0 0 0 0 0 inbox 0 0 0 u91718 0 0 0 0 0 0 rfci 0 0 0 0 ...] (nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)) "/home/jam/mail-groups/" nnheader-directory-files-safe)
  (lambda (sym) (nnmaildir--scan (symbol-name sym) t groups method srv-dir srv-ls))(secedu)
  mapatoms((lambda (sym) (nnmaildir--scan (symbol-name sym) t groups method srv-dir srv-ls)) [gnupg-commits 0 root 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 apl-l 0 0 0 0 0 0 0 0 0 0 0 0 0 inbox 0 0 0 u91718 0 0 0 0 0 0 rfci 0 0 0 0 ...])
  (if scan-group (mapatoms (lambda ... ...) groups))
  (if (equal x (nnmaildir--srv-mtime nnmaildir--cur-server)) (if scan-group (mapatoms ... groups)) (setq dirs (funcall srv-ls srv-dir nil "\\`[^.]" ...) seen (nnmaildir--up2-1 ...) seen (make-vector seen 0)) (mapcar (lambda ... ...) dirs) (setq x nil) (mapatoms (lambda ... ... ...) groups) (mapcar (lambda ... ...) x) (setf (nnmaildir--srv-mtime nnmaildir--cur-server) (nth 5 ...)))
  (if (stringp scan-group) (if (nnmaildir--scan scan-group t groups method srv-dir srv-ls) (if ... ...) (unintern scan-group groups)) (setq x (nth 5 ...) scan-group (null scan-group)) (if (equal x ...) (if scan-group ...) (setq dirs ... seen ... seen ...) (mapcar ... dirs) (setq x nil) (mapatoms ... groups) (mapcar ... x) (setf ... ...)) (and scan-group (nnmaildir--srv-gnm nnmaildir--cur-server) (nnmail-get-new-mail ... nil nil)))
  (progn (if (stringp scan-group) (if ... ... ...) (setq x ... scan-group ...) (if ... ... ... ... ... ... ... ...) (and scan-group ... ...)))
  (unwind-protect (progn (if ... ... ... ... ...)) (store-match-data match-data))
  (let ((match-data ...)) (unwind-protect (progn ...) (store-match-data match-data)))
  (save-match-data (if (stringp scan-group) (if ... ... ...) (setq x ... scan-group ...) (if ... ... ... ... ... ... ... ...) (and scan-group ... ...)))
  (save-excursion (set-buffer (get-buffer-create " *nnmaildir work*")) (save-match-data (if ... ... ... ... ...)))
  (nnmaildir--with-work-buffer (save-match-data (if ... ... ... ... ...)))
  (let ((coding-system-for-write nnheader-file-coding-system) (buffer-file-coding-system nil) (file-coding-system-alist nil) (nnmaildir-get-new-mail t) (nnmaildir-group-alist nil) (nnmaildir-active-file nil) x srv-ls srv-dir method groups group dirs grp-dir seen deactivate-mark) (nnmaildir--prepare server nil) (setq srv-ls (nnmaildir--srv-ls nnmaildir--cur-server) srv-dir (nnmaildir--srv-dir nnmaildir--cur-server) method (nnmaildir--srv-method nnmaildir--cur-server) groups (nnmaildir--srv-groups nnmaildir--cur-server)) (nnmaildir--with-work-buffer (save-match-data ...)))
  nnmaildir-request-scan(nil "")
  gnus-request-scan(nil (nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)))
  gnus-read-active-file-1((nnmaildir "" (directory "~/mail-groups") (create-directory "../maildirs") (directory-files nnheader-directory-files-safe) (get-new-mail nil)) nil)
  gnus-read-active-file()
  gnus-group-get-new-news(nil)
  call-interactively(gnus-group-get-new-news)
  read-minibuffer-internal("Insert file: ")
  byte-code("..." [standard-output standard-input prompt recursion-depth minibuffer-depth t read-minibuffer-internal] 2)
  read-from-minibuffer("Insert file: " "/slash/var/" #<keymap read-file-name-map size 2 0xdab> nil file-name-history nil nil)
  read-file-name-2(file-name-history "Insert file: " nil nil 0 nil read-file-name-internal)
  read-file-name-1(file file-name-history "Insert file: " nil nil 0 nil read-file-name-internal)
  read-file-name("Insert file: " nil nil 0)
  call-interactively(crypt-insert-file)


        jam


[-- Attachment #2: Type: application/pgp-signature, Size: 154 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Woe is me and maildirs
  2003-01-08 22:08   ` John A. Martin
@ 2003-01-08 23:01     ` Paul Jarc
  2003-01-10 17:05       ` John A. Martin
  0 siblings, 1 reply; 7+ messages in thread
From: Paul Jarc @ 2003-01-08 23:01 UTC (permalink / raw)
  Cc: ding

jam@jamux.com (John A. Martin) wrote:
> Signaling: (wrong-type-argument number-char-or-marker-p nil)
>   <(1 nil)

There was a bug here, which I've now fixed in CVS, but that isn't your
problem.  You have corrupt .nnmaildir data, probably as a result of
deleting your num directories.  If you don't use the cache/agent with
your nnmaildir servers, it probably won't hurt anything to exit Gnus
and delete all your num and nov directories, as I mentioned earlier.
The next time you start Gnus, it will take a while to regenerate that
data, but it won't be corrupt anymore, and you'll still have your
marks.


paul



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Woe is me and maildirs
  2003-01-08 23:01     ` Paul Jarc
@ 2003-01-10 17:05       ` John A. Martin
  2003-01-10 18:49         ` Paul Jarc
  0 siblings, 1 reply; 7+ messages in thread
From: John A. Martin @ 2003-01-10 17:05 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 2637 bytes --]

>>>>> "paul" == Paul Jarc
>>>>> "Re: Woe is me and maildirs"
>>>>>  Wed, 08 Jan 2003 18:01:33 -0500

    paul> jam@jamux.com (John A. Martin) wrote:
    >> Signaling: (wrong-type-argument number-char-or-marker-p nil)
    >> <(1 nil)

    paul> There was a bug here, which I've now fixed in CVS,

Thank you for the timely and helpful reply.  All seems well now.

    paul> but that isn't your problem.  You have corrupt .nnmaildir
    paul> data, probably as a result of deleting your num directories.

The problem arose initially before I had monkeyed with the maildirs.
FWIW, it first occurred when starting Gnus[1] after a cvs update and
the failure also occurred when reverting to the previous Gnus which
had been running something line 2-3 weeks IIRC.  I was able to work
around the startup problem by moving my maildirs away.  I only mucked
with the num directories in response to nnmaildir errors.

    paul> If you don't use the cache/agent with your nnmaildir
    paul> servers, it probably won't hurt anything to exit Gnus and
    paul> delete all your num and nov directories, as I mentioned
    paul> earlier.

I merged the old and new maildirs[2] after deleting both the nov and
num directories in both the source and target[3].

    paul> The next time you start Gnus, it will take a while to
    paul> regenerate that data,

Yes. :) Quite a while while stopping every time it found corresponding
files in both new and cur directories.  After a bit I resorted to this
silly one liner (edited for readability with '\' :))

        $ cd ~/maildirs;find . -path '*/new' ! -empty| \
        (while read foo;do cd $foo;find . -type f| \
        (while read boo;do if [ -e "../cur${boo#.}:2," ]; \
        then rm ${boo#./};fi;done);cd -;done)

Maybe that will save someone a few minutes sometime.  Will it work in
the general case?

I suppose that was needed because procmail had been delivering mail
into the maildirs all the time I was having fits and starts moving
maildirs out of the way.

    paul> but it won't be corrupt anymore,

Better than before.  For the first time in my 2-3 months using Gnus
the nnmaildir group counts seem OK in groups where `B m' or `B DEL'
have been done.

    paul> and you'll still have your marks.

Yup.  I think this resurrection of a lot of abused maildirs
illustrates the robustness of maildirs in general and of nnmaildir in
particular.  Good show.

What would someone using cache/agent be faced with?

        jam

Footnotes: 
[1]  In a new XEmacs after the cvs build.

[2]  Using 'rsync -aH'.

[3]  Using 'find'.


[-- Attachment #2: Type: application/pgp-signature, Size: 154 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Woe is me and maildirs
  2003-01-10 17:05       ` John A. Martin
@ 2003-01-10 18:49         ` Paul Jarc
       [not found]           ` <87znq8psyt.fsf@athene.jamux.com>
  0 siblings, 1 reply; 7+ messages in thread
From: Paul Jarc @ 2003-01-10 18:49 UTC (permalink / raw)
  Cc: ding

jam@jamux.com (John A. Martin) wrote:
> I merged the old and new maildirs[2] after deleting both the nov and
> num directories in both the source and target[3].
>
>     paul> The next time you start Gnus, it will take a while to
>     paul> regenerate that data,
>
> Yes. :) Quite a while while stopping every time it found corresponding
> files in both new and cur directories.

That's due to rsync, I guess.

> After a bit I resorted to this silly one liner (edited for
> readability with '\' :))
>
>         $ cd ~/maildirs;find . -path '*/new' ! -empty| \
>         (while read foo;do cd $foo;find . -type f| \
>         (while read boo;do if [ -e "../cur${boo#.}:2," ]; \
>         then rm ${boo#./};fi;done);cd -;done)
>
> Maybe that will save someone a few minutes sometime.  Will it work in
> the general case?

If nnmaildir is the only maildir reader you use, that's fine.
If not, cur/ files might have arbitrary suffixes starting with ":".
Some of those shell programming constructs won't work on all
platforms, but that's not a maildir issue.

> Better than before.  For the first time in my 2-3 months using Gnus
> the nnmaildir group counts seem OK in groups where `B m' or `B DEL'
> have been done.

That's because of article renumbering.  Feel free to do
"rm -rf .../.nnmaildir/{num,nov}" again later (while Gnus is not
running, of course) if you want to fix the counts again.

> What would someone using cache/agent be faced with?

Option 1: get rid of the cache/agent entries for the relevant groups,
and then proceed as you did.  Option 2: do a *lot* of work to fix the
num and nov data by hand.


paul



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Woe is me and maildirs
       [not found]           ` <87znq8psyt.fsf@athene.jamux.com>
@ 2003-01-10 22:36             ` Paul Jarc
  0 siblings, 0 replies; 7+ messages in thread
From: Paul Jarc @ 2003-01-10 22:36 UTC (permalink / raw)
  Cc: ding

jam@jamux.com (John A. Martin) wrote:
> I'm responding to you directly because I'm not sure it is appropriate
> to string this out more on the newsgroup.  Please feel free to put
> this, or parts of this, there if it would serve your purpose.

I think it's appropriate.

>     paul> That's due to rsync, I guess.
>
> I don't see how.  I'd suspect it was because of merging partially
> gotten (as in Group-Mode `g' (get)) maildirs with others that had
> gotten further along before they failed.  Maybe that is what you mean
> because I don't think rsync invented any files. :)

Yes, that's what I meant.

> What is the significance of the file named num/: ?

Initially, num/ contains only the ":" file.  When nnmaildir sees a new
article, it has to assign a number to it, because Gnus identifies
articles by number.  So nnmaildir stats num/: and gets the hard link
count - 1.  Then it tries link("num/:", "num/1").  If that succeeds,
the number 1 has now been allocated, and nnmaildir uses it for the new
article it just found.  (And the next time nnmaildir has to allocate
an article number, the hard link count of num/: will be 2.)  But if
the link() fails, that means there's another nnmaildir running right
now that just allocated the same number: there was a race between
reading the hard link count and making the new link, and we lost the
race.  So we try again with the new link count of num/:.  But if the
link count hasn't changed, that means the num/ directory is corrupted.

> So the second match should be something like maybe
>
>         "../cur${boo#.}:*"

That won't work, because the "*" won't be interpreted as a wildcard.
#!/bin/sh -e
cd ~/maildirs
for maildir in *; do (
  cd "$maildir"/new
  for message in *; do
    set -- ../cur/"$message":*
    if test -f "$1"; then rm -f "$message"; fi
  done
); done

> A repair tool might be a good idea, no?

"rm -r ~/maildirs/*/.nnmaildir/{nov,num}" is it.  You had to do some
extra cleanup only because you split and merged your maildirs.  I
think what's called for here is a more intelligent merging tool, if
anything.

> I have been wondering if the Debian procmail should get a bug for
> having only, for example
>
>         1042225628.7191_0.athene:
>
> rather than using the FQDN something like
>
>         1042225628.7191_0.athene.jamux.com:
>
> otherwise how can it be guaranteed unique?

The FQDN should indeed be used, but the bug is not necessarily in
procmail.  If gethostname() returns "athene", then it's not procmail's
fault.

>     paul> Feel free to do "rm -rf .../.nnmaildir/{num,nov}" again
>     paul> later (while Gnus is not running, of course) if you want to
>     paul> fix the counts again.
>
> So Gnus needs to be stopped.  It is not enough just to close the
> server, right?

I'm not sure.  When Gnus first starts, it will trust the backend to
say which article numbers have which marks.  But after simply closing
and opening the server, Gnus might still remember the old mark
information.  This could be dangerous, for example, if you do
gnus-group-expire-all-groups immediately after reopening.  To be safe,
exit Gnus.

Note that since article numbers are reset, 'seen marks will also be
distorted, since they're not stored in the backend.  (I still think
they ought to be.)  But 'seen marks are already broken with nnmaildir
for some reason.

> Does every file in cur/ need a corresponding nov/ (one for one and
> onto)?

Yes - whenever a new article is seen, nnmaildir parses it for NOV data
and then stores that in nov/.  Whenever the article is edited (i.e.,
its mtime changes) or nnmail-extra-headers changes, the article is
parsed again and the new NOV data is stored in place of the old.


paul



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2003-01-10 22:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-08 15:23 Woe is me and maildirs John A. Martin
2003-01-08 20:56 ` Paul Jarc
2003-01-08 22:08   ` John A. Martin
2003-01-08 23:01     ` Paul Jarc
2003-01-10 17:05       ` John A. Martin
2003-01-10 18:49         ` Paul Jarc
     [not found]           ` <87znq8psyt.fsf@athene.jamux.com>
2003-01-10 22:36             ` Paul Jarc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).