unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#4358: 23.1.50; Arithmetic overflow errors break imap
@ 2009-09-06 13:47 James Cloos
  2009-09-08 20:31 ` Stefan Monnier
  0 siblings, 1 reply; 6+ messages in thread
From: James Cloos @ 2009-09-06 13:47 UTC (permalink / raw)
  To: emacs-pretest-bug


Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your bug report will be posted to the emacs-pretest-bug@gnu.org mailing list.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

Since the change on August 27 in how integer literals are parsed I've
been seeing frequent aritmetic overflow errors from the imap process
filter when reading mail in gnus.  (To be precise, my last working
compile was done on August 7 and the first broken one on September 2.
I can only presume that the August 27 change is the relevant one.)

The overflow messages do not get written to the *Messages* buffer,
so I cannot quote one exactly.

All of the reported overflows speficy integers which are close to 2^32,
ie they would be small negative integers were they interpreted as 32 bit
signed rather than 32 bit unsigned.  Which suggests that they perhaps
may be meant to be negative and are getting mis-converted to unsigned
ints at some point.



If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
If you would like to further debug the crash, please read the file
/usr/share/emacs/23.1.50/etc/DEBUG for instructions.


In GNU Emacs 23.1.50.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2009-09-05 on lugabout
Windowing system distributor `The X.Org Foundation', version 11.0.10699001
configured using `configure  '--prefix=/usr' '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--program-suffix=-emacs-23-cvs' '--infodir=/usr/share/info/emacs-23-cvs' '--with-sound' '--with-x' '--with-toolkit-scroll-bars' '--with-gif' '--with-jpeg' '--with-png' '--with-rsvg' '--with-tiff' '--with-xpm' '--with-xft' '--with-libotf' '--with-m17n-flt' '--with-x-toolkit=athena' '--without-hesiod' '--with-kerberos' '--with-kerberos5' '--with-gpm' '--with-dbus' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' 'CC=i686-pc-linux-gnu-gcc' 'CFLAGS=-march=pentium3 -O2 -Wno-error' 'LDFLAGS=-Wl,-O1''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: C
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: C
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Group

Minor modes in effect:
  gnus-undo-mode: t
  show-paren-mode: t
  display-time-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t

Recent input:
C-n C-n SPC n = C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-v C-v c SPC SPC k k SPC c 
SPC C-v n n n n n n n n n n n n n n n n n n n n n n 
n n n n p p p p p p p p p p p p p p SPC n q p SPC q 
p p SPC 8 8 d SPC c SPC n n n n n n n n n n n n n n 
n n n n n n n n n n n n n n n n n n n SPC SPC q n SPC 
r C-c C-c * * d q C-p M-g p SPC SPC r C-c C-c * q p 
p M-g n p SPC C-c C-s C-n M-> C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p SPC * SPC * SPC W c SPC SPC SPC 
b b SPC C-z n C-x 1 C-x C-f . u r <M-backspace> <M-backspace> 
<M-backspace> <M-backspace> . u r l s . o r g <return> 
y M-> C-z C-a h C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-p C-SPC C-n M-w C-z C-a C-y C-p C-e <backspace> <backspace> 
<backspace> <backspace> M-b M-f C-k C-n <return> C-x 
C-s C-z C-a h * SPC * SPC * SPC * SPC C-x C-g C-c d 
SPC C-c d SPC C-c d SPC C-c d SPC C-c d q M-< C-x k 
<return> C-x 1 C-x b * G <tab> <return> n n C-v s M-x 
r e p o r <tab> <return> b <tab> <return>

Recent messages:
Quit
Mark set
Saving file /home/cloos/.newsrc...
Wrote /home/cloos/.newsrc
Saving /home/cloos/.newsrc.eld...
Adding whitespace to .newsrc.eld
Saving file /home/cloos/.newsrc.eld...
Wrote /home/cloos/.newsrc.eld
Saving /home/cloos/.newsrc.eld...done
Making completion list...

Load-path shadows:
/home/cloos/elisp/context hides /usr/share/emacs/site-lisp/auctex/context
/home/cloos/elisp/dircolors hides /usr/share/emacs/site-lisp/dircolors/dircolors
/usr/share/emacs/site-lisp/ddskk/queue-m hides /usr/share/emacs/site-lisp/elib/queue-m
/usr/share/emacs/site-lisp/dictionary/lpath hides /usr/share/emacs/site-lisp/emacs-wget/lpath
/home/cloos/elisp/git hides /usr/share/emacs/site-lisp/git/git
/home/cloos/elisp/git-blame hides /usr/share/emacs/site-lisp/git/git-blame
/home/cloos/elisp/graphviz-dot-mode hides /usr/share/emacs/site-lisp/graphviz-dot-mode/graphviz-dot-mode
/usr/share/emacs/site-lisp/gcl/sshell hides /usr/share/emacs/site-lisp/maxima/sshell
/usr/share/emacs/site-lisp/gcl/smart-complete hides /usr/share/emacs/site-lisp/maxima/smart-complete
/usr/share/emacs/site-lisp/gcl/dbl hides /usr/share/emacs/site-lisp/maxima/dbl
/usr/share/emacs/site-lisp/flim/sha1 hides /usr/share/emacs/site-lisp/ngnus/sha1
/usr/share/emacs/site-lisp/flim/sasl hides /usr/share/emacs/site-lisp/ngnus/sasl
/usr/share/emacs/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/site-lisp/ngnus/sasl-ntlm
/usr/share/emacs/site-lisp/flim/sasl-digest hides /usr/share/emacs/site-lisp/ngnus/sasl-digest
/usr/share/emacs/site-lisp/flim/sasl-cram hides /usr/share/emacs/site-lisp/ngnus/sasl-cram
/usr/share/emacs/site-lisp/flim/ntlm hides /usr/share/emacs/site-lisp/ngnus/ntlm
/usr/share/emacs/site-lisp/flim/md4 hides /usr/share/emacs/site-lisp/ngnus/md4
/usr/share/emacs/site-lisp/flim/hmac-md5 hides /usr/share/emacs/site-lisp/ngnus/hmac-md5
/usr/share/emacs/site-lisp/flim/hmac-def hides /usr/share/emacs/site-lisp/ngnus/hmac-def
/usr/share/emacs/site-lisp/flim/hex-util hides /usr/share/emacs/site-lisp/ngnus/hex-util
/usr/share/emacs/site-lisp/ess/noweb-mode hides /usr/share/emacs/site-lisp/noweb/noweb-mode
/home/cloos/elisp/php-mode hides /usr/share/emacs/site-lisp/php-mode/php-mode
/usr/share/emacs/site-lisp/ngnus/smime hides /usr/share/emacs/site-lisp/semi/smime
/usr/share/emacs/site-lisp/ngnus/pgg hides /usr/share/emacs/site-lisp/semi/pgg
/usr/share/emacs/site-lisp/ngnus/pgg-pgp5 hides /usr/share/emacs/site-lisp/semi/pgg-pgp5
/usr/share/emacs/site-lisp/ngnus/pgg-pgp hides /usr/share/emacs/site-lisp/semi/pgg-pgp
/usr/share/emacs/site-lisp/ngnus/pgg-parse hides /usr/share/emacs/site-lisp/semi/pgg-parse
/usr/share/emacs/site-lisp/ngnus/pgg-gpg hides /usr/share/emacs/site-lisp/semi/pgg-gpg
/usr/share/emacs/site-lisp/ngnus/pgg-def hides /usr/share/emacs/site-lisp/semi/pgg-def
/usr/share/emacs/site-lisp/else-mode/setnu hides /usr/share/emacs/site-lisp/setnu/setnu
/home/cloos/elisp/psvn hides /usr/share/emacs/site-lisp/subversion/psvn
/usr/share/emacs/site-lisp/ess/make-regexp hides /usr/share/emacs/site-lisp/tdtd/make-regexp
/usr/share/emacs/site-lisp/ocaml-mode/camldebug hides /usr/share/emacs/site-lisp/tuareg-mode/camldebug
/home/cloos/elisp/vcard hides /usr/share/emacs/site-lisp/vm/vcard
/home/cloos/elisp/wikipedia-mode hides /usr/share/emacs/site-lisp/wikipedia-mode/wikipedia-mode
/usr/share/emacs/site-lisp/ngnus/utf7 hides /usr/share/emacs/site-lisp/wl/utf7
/usr/share/emacs/site-lisp/speedbar/dframe hides /usr/share/emacs/site-lisp/cedet/speedbar/dframe
/usr/share/emacs/site-lisp/else-mode/setnu hides /usr/share/emacs/site-lisp/jde/lisp/setnu
/usr/share/emacs/site-lisp/thumbs/thumbs hides /usr/share/emacs/23.1.50/lisp/thumbs
/usr/share/emacs/site-lisp/cedet/speedbar/speedbar hides /usr/share/emacs/23.1.50/lisp/speedbar
/usr/share/emacs/site-lisp/flim/sha1 hides /usr/share/emacs/23.1.50/lisp/sha1
/usr/share/emacs/site-lisp/ses/ses hides /usr/share/emacs/23.1.50/lisp/ses
/usr/share/emacs/site-lisp/cedet/speedbar/sb-image hides /usr/share/emacs/23.1.50/lisp/sb-image
/usr/share/emacs/site-lisp/ngnus/pgg hides /usr/share/emacs/23.1.50/lisp/pgg
/usr/share/emacs/site-lisp/ngnus/pgg-pgp5 hides /usr/share/emacs/23.1.50/lisp/pgg-pgp5
/usr/share/emacs/site-lisp/ngnus/pgg-pgp hides /usr/share/emacs/23.1.50/lisp/pgg-pgp
/usr/share/emacs/site-lisp/ngnus/pgg-parse hides /usr/share/emacs/23.1.50/lisp/pgg-parse
/usr/share/emacs/site-lisp/ngnus/pgg-gpg hides /usr/share/emacs/23.1.50/lisp/pgg-gpg
/usr/share/emacs/site-lisp/ngnus/pgg-def hides /usr/share/emacs/23.1.50/lisp/pgg-def
/usr/share/emacs/site-lisp/ngnus/password-cache hides /usr/share/emacs/23.1.50/lisp/password-cache
/usr/share/emacs/site-lisp/flim/md4 hides /usr/share/emacs/23.1.50/lisp/md4
/home/cloos/elisp/json hides /usr/share/emacs/23.1.50/lisp/json
/usr/share/emacs/site-lisp/info-look hides /usr/share/emacs/23.1.50/lisp/info-look
/usr/share/emacs/site-lisp/flim/hex-util hides /usr/share/emacs/23.1.50/lisp/hex-util
/usr/share/emacs/site-lisp/ngnus/format-spec hides /usr/share/emacs/23.1.50/lisp/format-spec
/usr/share/emacs/site-lisp/cedet/common/ezimage hides /usr/share/emacs/23.1.50/lisp/ezimage
/usr/share/emacs/site-lisp/epg/epg hides /usr/share/emacs/23.1.50/lisp/epg
/usr/share/emacs/site-lisp/epg/epg-config hides /usr/share/emacs/23.1.50/lisp/epg-config
/usr/share/emacs/site-lisp/epg/epa hides /usr/share/emacs/23.1.50/lisp/epa
/usr/share/emacs/site-lisp/epg/epa-mail hides /usr/share/emacs/23.1.50/lisp/epa-mail
/usr/share/emacs/site-lisp/epg/epa-file hides /usr/share/emacs/23.1.50/lisp/epa-file
/usr/share/emacs/site-lisp/epg/epa-dired hides /usr/share/emacs/23.1.50/lisp/epa-dired
/home/cloos/elisp/doc-view hides /usr/share/emacs/23.1.50/lisp/doc-view
/usr/share/emacs/site-lisp/speedbar/dframe hides /usr/share/emacs/23.1.50/lisp/dframe
/usr/share/emacs/site-lisp/rst/rst hides /usr/share/emacs/23.1.50/lisp/textmodes/rst
/usr/share/emacs/site-lisp/remember/remember hides /usr/share/emacs/23.1.50/lisp/textmodes/remember
/usr/share/emacs/site-lisp/ngnus/dns-mode hides /usr/share/emacs/23.1.50/lisp/textmodes/dns-mode
/usr/share/emacs/site-lisp/css-mode/css-mode hides /usr/share/emacs/23.1.50/lisp/textmodes/css-mode
/usr/share/emacs/site-lisp/vhdl-mode/vhdl-mode hides /usr/share/emacs/23.1.50/lisp/progmodes/vhdl-mode
/usr/share/emacs/site-lisp/ruby-mode/ruby-mode hides /usr/share/emacs/23.1.50/lisp/progmodes/ruby-mode
/usr/share/emacs/site-lisp/nxml-mode/xsd-regexp hides /usr/share/emacs/23.1.50/lisp/nxml/xsd-regexp
/usr/share/emacs/site-lisp/nxml-mode/xmltok hides /usr/share/emacs/23.1.50/lisp/nxml/xmltok
/usr/share/emacs/site-lisp/nxml-mode/rng-xsd hides /usr/share/emacs/23.1.50/lisp/nxml/rng-xsd
/usr/share/emacs/site-lisp/nxml-mode/rng-valid hides /usr/share/emacs/23.1.50/lisp/nxml/rng-valid
/usr/share/emacs/site-lisp/nxml-mode/rng-util hides /usr/share/emacs/23.1.50/lisp/nxml/rng-util
/usr/share/emacs/site-lisp/nxml-mode/rng-uri hides /usr/share/emacs/23.1.50/lisp/nxml/rng-uri
/usr/share/emacs/site-lisp/nxml-mode/rng-pttrn hides /usr/share/emacs/23.1.50/lisp/nxml/rng-pttrn
/usr/share/emacs/site-lisp/nxml-mode/rng-parse hides /usr/share/emacs/23.1.50/lisp/nxml/rng-parse
/usr/share/emacs/site-lisp/nxml-mode/rng-nxml hides /usr/share/emacs/23.1.50/lisp/nxml/rng-nxml
/usr/share/emacs/site-lisp/nxml-mode/rng-match hides /usr/share/emacs/23.1.50/lisp/nxml/rng-match
/usr/share/emacs/site-lisp/nxml-mode/rng-maint hides /usr/share/emacs/23.1.50/lisp/nxml/rng-maint
/usr/share/emacs/site-lisp/nxml-mode/rng-loc hides /usr/share/emacs/23.1.50/lisp/nxml/rng-loc
/usr/share/emacs/site-lisp/nxml-mode/rng-dt hides /usr/share/emacs/23.1.50/lisp/nxml/rng-dt
/usr/share/emacs/site-lisp/nxml-mode/rng-cmpct hides /usr/share/emacs/23.1.50/lisp/nxml/rng-cmpct
/usr/share/emacs/site-lisp/nxml-mode/nxml-util hides /usr/share/emacs/23.1.50/lisp/nxml/nxml-util
/usr/share/emacs/site-lisp/nxml-mode/nxml-uchnm hides /usr/share/emacs/23.1.50/lisp/nxml/nxml-uchnm
/usr/share/emacs/site-lisp/nxml-mode/nxml-rap hides /usr/share/emacs/23.1.50/lisp/nxml/nxml-rap
/usr/share/emacs/site-lisp/nxml-mode/nxml-parse hides /usr/share/emacs/23.1.50/lisp/nxml/nxml-parse
/usr/share/emacs/site-lisp/nxml-mode/nxml-outln hides /usr/share/emacs/23.1.50/lisp/nxml/nxml-outln
/usr/share/emacs/site-lisp/nxml-mode/nxml-ns hides /usr/share/emacs/23.1.50/lisp/nxml/nxml-ns
/usr/share/emacs/site-lisp/nxml-mode/nxml-mode hides /usr/share/emacs/23.1.50/lisp/nxml/nxml-mode
/usr/share/emacs/site-lisp/nxml-mode/nxml-maint hides /usr/share/emacs/23.1.50/lisp/nxml/nxml-maint
/usr/share/emacs/site-lisp/nxml-mode/nxml-glyph hides /usr/share/emacs/23.1.50/lisp/nxml/nxml-glyph
/usr/share/emacs/site-lisp/nxml-mode/nxml-enc hides /usr/share/emacs/23.1.50/lisp/nxml/nxml-enc
/usr/share/emacs/site-lisp/tramp/trampver hides /usr/share/emacs/23.1.50/lisp/net/trampver
/usr/share/emacs/site-lisp/tramp/tramp hides /usr/share/emacs/23.1.50/lisp/net/tramp
/usr/share/emacs/site-lisp/tramp/tramp-uu hides /usr/share/emacs/23.1.50/lisp/net/tramp-uu
/usr/share/emacs/site-lisp/tramp/tramp-smb hides /usr/share/emacs/23.1.50/lisp/net/tramp-smb
/usr/share/emacs/site-lisp/tramp/tramp-gw hides /usr/share/emacs/23.1.50/lisp/net/tramp-gw
/usr/share/emacs/site-lisp/tramp/tramp-ftp hides /usr/share/emacs/23.1.50/lisp/net/tramp-ftp
/usr/share/emacs/site-lisp/tramp/tramp-fish hides /usr/share/emacs/23.1.50/lisp/net/tramp-fish
/usr/share/emacs/site-lisp/tramp/tramp-compat hides /usr/share/emacs/23.1.50/lisp/net/tramp-compat
/usr/share/emacs/site-lisp/tramp/tramp-cmds hides /usr/share/emacs/23.1.50/lisp/net/tramp-cmds
/usr/share/emacs/site-lisp/tramp/tramp-cache hides /usr/share/emacs/23.1.50/lisp/net/tramp-cache
/usr/share/emacs/site-lisp/ngnus/tls hides /usr/share/emacs/23.1.50/lisp/net/tls
/usr/share/emacs/site-lisp/flim/sasl hides /usr/share/emacs/23.1.50/lisp/net/sasl
/usr/share/emacs/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/23.1.50/lisp/net/sasl-ntlm
/usr/share/emacs/site-lisp/flim/sasl-digest hides /usr/share/emacs/23.1.50/lisp/net/sasl-digest
/usr/share/emacs/site-lisp/flim/sasl-cram hides /usr/share/emacs/23.1.50/lisp/net/sasl-cram
/usr/share/emacs/site-lisp/flim/ntlm hides /usr/share/emacs/23.1.50/lisp/net/ntlm
/usr/share/emacs/site-lisp/ngnus/netrc hides /usr/share/emacs/23.1.50/lisp/net/netrc
/usr/share/emacs/site-lisp/ngnus/imap hides /usr/share/emacs/23.1.50/lisp/net/imap
/usr/share/emacs/site-lisp/flim/hmac-md5 hides /usr/share/emacs/23.1.50/lisp/net/hmac-md5
/usr/share/emacs/site-lisp/flim/hmac-def hides /usr/share/emacs/23.1.50/lisp/net/hmac-def
/usr/share/emacs/site-lisp/ngnus/dns hides /usr/share/emacs/23.1.50/lisp/net/dns
/usr/share/emacs/site-lisp/ngnus/dig hides /usr/share/emacs/23.1.50/lisp/net/dig
/usr/share/emacs/site-lisp/ngnus/uudecode hides /usr/share/emacs/23.1.50/lisp/mail/uudecode
/usr/share/emacs/site-lisp/wl/rfc2368 hides /usr/share/emacs/23.1.50/lisp/mail/rfc2368
/usr/share/emacs/site-lisp/ngnus/hashcash hides /usr/share/emacs/23.1.50/lisp/mail/hashcash
/usr/share/emacs/site-lisp/ngnus/binhex hides /usr/share/emacs/23.1.50/lisp/mail/binhex
/usr/share/emacs/site-lisp/cjk-latex/thai-word hides /usr/share/emacs/23.1.50/lisp/language/thai-word
/usr/share/emacs/site-lisp/ngnus/yenc hides /usr/share/emacs/23.1.50/lisp/gnus/yenc
/usr/share/emacs/site-lisp/ngnus/utf7 hides /usr/share/emacs/23.1.50/lisp/gnus/utf7
/usr/share/emacs/site-lisp/ngnus/starttls hides /usr/share/emacs/23.1.50/lisp/gnus/starttls
/usr/share/emacs/site-lisp/ngnus/spam hides /usr/share/emacs/23.1.50/lisp/gnus/spam
/usr/share/emacs/site-lisp/ngnus/spam-wash hides /usr/share/emacs/23.1.50/lisp/gnus/spam-wash
/usr/share/emacs/site-lisp/ngnus/spam-stat hides /usr/share/emacs/23.1.50/lisp/gnus/spam-stat
/usr/share/emacs/site-lisp/ngnus/spam-report hides /usr/share/emacs/23.1.50/lisp/gnus/spam-report
/usr/share/emacs/site-lisp/ngnus/smime hides /usr/share/emacs/23.1.50/lisp/gnus/smime
/usr/share/emacs/site-lisp/ngnus/smiley hides /usr/share/emacs/23.1.50/lisp/gnus/smiley
/usr/share/emacs/site-lisp/ngnus/sieve hides /usr/share/emacs/23.1.50/lisp/gnus/sieve
/usr/share/emacs/site-lisp/ngnus/sieve-mode hides /usr/share/emacs/23.1.50/lisp/gnus/sieve-mode
/usr/share/emacs/site-lisp/ngnus/sieve-manage hides /usr/share/emacs/23.1.50/lisp/gnus/sieve-manage
/usr/share/emacs/site-lisp/ngnus/score-mode hides /usr/share/emacs/23.1.50/lisp/gnus/score-mode
/usr/share/emacs/site-lisp/ngnus/rfc2231 hides /usr/share/emacs/23.1.50/lisp/gnus/rfc2231
/usr/share/emacs/site-lisp/ngnus/rfc2104 hides /usr/share/emacs/23.1.50/lisp/gnus/rfc2104
/usr/share/emacs/site-lisp/ngnus/rfc2047 hides /usr/share/emacs/23.1.50/lisp/gnus/rfc2047
/usr/share/emacs/site-lisp/ngnus/rfc2045 hides /usr/share/emacs/23.1.50/lisp/gnus/rfc2045
/usr/share/emacs/site-lisp/ngnus/rfc1843 hides /usr/share/emacs/23.1.50/lisp/gnus/rfc1843
/usr/share/emacs/site-lisp/ngnus/qp hides /usr/share/emacs/23.1.50/lisp/gnus/qp
/usr/share/emacs/site-lisp/ngnus/pop3 hides /usr/share/emacs/23.1.50/lisp/gnus/pop3
/usr/share/emacs/site-lisp/ngnus/nnweb hides /usr/share/emacs/23.1.50/lisp/gnus/nnweb
/usr/share/emacs/site-lisp/ngnus/nnwarchive hides /usr/share/emacs/23.1.50/lisp/gnus/nnwarchive
/usr/share/emacs/site-lisp/ngnus/nnvirtual hides /usr/share/emacs/23.1.50/lisp/gnus/nnvirtual
/usr/share/emacs/site-lisp/ngnus/nntp hides /usr/share/emacs/23.1.50/lisp/gnus/nntp
/usr/share/emacs/site-lisp/ngnus/nnspool hides /usr/share/emacs/23.1.50/lisp/gnus/nnspool
/usr/share/emacs/site-lisp/ngnus/nnsoup hides /usr/share/emacs/23.1.50/lisp/gnus/nnsoup
/usr/share/emacs/site-lisp/ngnus/nnslashdot hides /usr/share/emacs/23.1.50/lisp/gnus/nnslashdot
/usr/share/emacs/site-lisp/ngnus/nnrss hides /usr/share/emacs/23.1.50/lisp/gnus/nnrss
/usr/share/emacs/site-lisp/ngnus/nnoo hides /usr/share/emacs/23.1.50/lisp/gnus/nnoo
/usr/share/emacs/site-lisp/ngnus/nnnil hides /usr/share/emacs/23.1.50/lisp/gnus/nnnil
/usr/share/emacs/site-lisp/ngnus/nnml hides /usr/share/emacs/23.1.50/lisp/gnus/nnml
/usr/share/emacs/site-lisp/ngnus/nnmh hides /usr/share/emacs/23.1.50/lisp/gnus/nnmh
/usr/share/emacs/site-lisp/ngnus/nnmbox hides /usr/share/emacs/23.1.50/lisp/gnus/nnmbox
/usr/share/emacs/site-lisp/ngnus/nnmairix hides /usr/share/emacs/23.1.50/lisp/gnus/nnmairix
/usr/share/emacs/site-lisp/ngnus/nnmaildir hides /usr/share/emacs/23.1.50/lisp/gnus/nnmaildir
/usr/share/emacs/site-lisp/ngnus/nnmail hides /usr/share/emacs/23.1.50/lisp/gnus/nnmail
/usr/share/emacs/site-lisp/ngnus/nnlistserv hides /usr/share/emacs/23.1.50/lisp/gnus/nnlistserv
/usr/share/emacs/site-lisp/ngnus/nnkiboze hides /usr/share/emacs/23.1.50/lisp/gnus/nnkiboze
/usr/share/emacs/site-lisp/ngnus/nnir hides /usr/share/emacs/23.1.50/lisp/gnus/nnir
/usr/share/emacs/site-lisp/ngnus/nnimap hides /usr/share/emacs/23.1.50/lisp/gnus/nnimap
/usr/share/emacs/site-lisp/ngnus/nnheader hides /usr/share/emacs/23.1.50/lisp/gnus/nnheader
/usr/share/emacs/site-lisp/ngnus/nngateway hides /usr/share/emacs/23.1.50/lisp/gnus/nngateway
/usr/share/emacs/site-lisp/ngnus/nnfolder hides /usr/share/emacs/23.1.50/lisp/gnus/nnfolder
/usr/share/emacs/site-lisp/ngnus/nneething hides /usr/share/emacs/23.1.50/lisp/gnus/nneething
/usr/share/emacs/site-lisp/ngnus/nndraft hides /usr/share/emacs/23.1.50/lisp/gnus/nndraft
/usr/share/emacs/site-lisp/ngnus/nndoc hides /usr/share/emacs/23.1.50/lisp/gnus/nndoc
/usr/share/emacs/site-lisp/ngnus/nndir hides /usr/share/emacs/23.1.50/lisp/gnus/nndir
/usr/share/emacs/site-lisp/ngnus/nndiary hides /usr/share/emacs/23.1.50/lisp/gnus/nndiary
/usr/share/emacs/site-lisp/ngnus/nndb hides /usr/share/emacs/23.1.50/lisp/gnus/nndb
/usr/share/emacs/site-lisp/ngnus/nnbabyl hides /usr/share/emacs/23.1.50/lisp/gnus/nnbabyl
/usr/share/emacs/site-lisp/ngnus/nnagent hides /usr/share/emacs/23.1.50/lisp/gnus/nnagent
/usr/share/emacs/site-lisp/ngnus/mml2015 hides /usr/share/emacs/23.1.50/lisp/gnus/mml2015
/usr/share/emacs/site-lisp/ngnus/mml1991 hides /usr/share/emacs/23.1.50/lisp/gnus/mml1991
/usr/share/emacs/site-lisp/ngnus/mml hides /usr/share/emacs/23.1.50/lisp/gnus/mml
/usr/share/emacs/site-lisp/ngnus/mml-smime hides /usr/share/emacs/23.1.50/lisp/gnus/mml-smime
/usr/share/emacs/site-lisp/ngnus/mml-sec hides /usr/share/emacs/23.1.50/lisp/gnus/mml-sec
/usr/share/emacs/site-lisp/ngnus/mm-view hides /usr/share/emacs/23.1.50/lisp/gnus/mm-view
/usr/share/emacs/site-lisp/ngnus/mm-uu hides /usr/share/emacs/23.1.50/lisp/gnus/mm-uu
/usr/share/emacs/site-lisp/ngnus/mm-util hides /usr/share/emacs/23.1.50/lisp/gnus/mm-util
/usr/share/emacs/site-lisp/ngnus/mm-url hides /usr/share/emacs/23.1.50/lisp/gnus/mm-url
/usr/share/emacs/site-lisp/ngnus/mm-partial hides /usr/share/emacs/23.1.50/lisp/gnus/mm-partial
/usr/share/emacs/site-lisp/ngnus/mm-extern hides /usr/share/emacs/23.1.50/lisp/gnus/mm-extern
/usr/share/emacs/site-lisp/ngnus/mm-encode hides /usr/share/emacs/23.1.50/lisp/gnus/mm-encode
/usr/share/emacs/site-lisp/ngnus/mm-decode hides /usr/share/emacs/23.1.50/lisp/gnus/mm-decode
/usr/share/emacs/site-lisp/ngnus/mm-bodies hides /usr/share/emacs/23.1.50/lisp/gnus/mm-bodies
/usr/share/emacs/site-lisp/ngnus/messcompat hides /usr/share/emacs/23.1.50/lisp/gnus/messcompat
/usr/share/emacs/site-lisp/ngnus/message hides /usr/share/emacs/23.1.50/lisp/gnus/message
/usr/share/emacs/site-lisp/ngnus/mailcap hides /usr/share/emacs/23.1.50/lisp/gnus/mailcap
/usr/share/emacs/site-lisp/ngnus/mail-source hides /usr/share/emacs/23.1.50/lisp/gnus/mail-source
/usr/share/emacs/site-lisp/ngnus/mail-prsvr hides /usr/share/emacs/23.1.50/lisp/gnus/mail-prsvr
/usr/share/emacs/site-lisp/ngnus/mail-parse hides /usr/share/emacs/23.1.50/lisp/gnus/mail-parse
/usr/share/emacs/site-lisp/ngnus/legacy-gnus-agent hides /usr/share/emacs/23.1.50/lisp/gnus/legacy-gnus-agent
/usr/share/emacs/site-lisp/ngnus/ietf-drums hides /usr/share/emacs/23.1.50/lisp/gnus/ietf-drums
/usr/share/emacs/site-lisp/ngnus/html2text hides /usr/share/emacs/23.1.50/lisp/gnus/html2text
/usr/share/emacs/site-lisp/ngnus/gnus hides /usr/share/emacs/23.1.50/lisp/gnus/gnus
/usr/share/emacs/site-lisp/ngnus/gnus-win hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-win
/usr/share/emacs/site-lisp/ngnus/gnus-vm hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-vm
/usr/share/emacs/site-lisp/ngnus/gnus-uu hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-uu
/usr/share/emacs/site-lisp/ngnus/gnus-util hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-util
/usr/share/emacs/site-lisp/ngnus/gnus-undo hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-undo
/usr/share/emacs/site-lisp/ngnus/gnus-topic hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-topic
/usr/share/emacs/site-lisp/ngnus/gnus-sum hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-sum
/usr/share/emacs/site-lisp/ngnus/gnus-start hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-start
/usr/share/emacs/site-lisp/ngnus/gnus-srvr hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-srvr
/usr/share/emacs/site-lisp/ngnus/gnus-spec hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-spec
/usr/share/emacs/site-lisp/ngnus/gnus-soup hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-soup
/usr/share/emacs/site-lisp/ngnus/gnus-sieve hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-sieve
/usr/share/emacs/site-lisp/ngnus/gnus-setup hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-setup
/usr/share/emacs/site-lisp/ngnus/gnus-score hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-score
/usr/share/emacs/site-lisp/ngnus/gnus-salt hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-salt
/usr/share/emacs/site-lisp/ngnus/gnus-registry hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-registry
/usr/share/emacs/site-lisp/ngnus/gnus-range hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-range
/usr/share/emacs/site-lisp/ngnus/gnus-picon hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-picon
/usr/share/emacs/site-lisp/ngnus/gnus-nocem hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-nocem
/usr/share/emacs/site-lisp/ngnus/gnus-msg hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-msg
/usr/share/emacs/site-lisp/ngnus/gnus-move hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-move
/usr/share/emacs/site-lisp/ngnus/gnus-mlspl hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-mlspl
/usr/share/emacs/site-lisp/ngnus/gnus-ml hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-ml
/usr/share/emacs/site-lisp/ngnus/gnus-mh hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-mh
/usr/share/emacs/site-lisp/ngnus/gnus-logic hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-logic
/usr/share/emacs/site-lisp/ngnus/gnus-kill hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-kill
/usr/share/emacs/site-lisp/ngnus/gnus-int hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-int
/usr/share/emacs/site-lisp/ngnus/gnus-group hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-group
/usr/share/emacs/site-lisp/ngnus/gnus-fun hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-fun
/usr/share/emacs/site-lisp/ngnus/gnus-ems hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-ems
/usr/share/emacs/site-lisp/ngnus/gnus-eform hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-eform
/usr/share/emacs/site-lisp/ngnus/gnus-dup hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-dup
/usr/share/emacs/site-lisp/ngnus/gnus-draft hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-draft
/usr/share/emacs/site-lisp/ngnus/gnus-dired hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-dired
/usr/share/emacs/site-lisp/ngnus/gnus-diary hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-diary
/usr/share/emacs/site-lisp/ngnus/gnus-demon hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-demon
/usr/share/emacs/site-lisp/ngnus/gnus-delay hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-delay
/usr/share/emacs/site-lisp/ngnus/gnus-cus hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-cus
/usr/share/emacs/site-lisp/ngnus/gnus-cite hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-cite
/usr/share/emacs/site-lisp/ngnus/gnus-cache hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-cache
/usr/share/emacs/site-lisp/ngnus/gnus-bookmark hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-bookmark
/usr/share/emacs/site-lisp/ngnus/gnus-bcklg hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-bcklg
/usr/share/emacs/site-lisp/ngnus/gnus-audio hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-audio
/usr/share/emacs/site-lisp/ngnus/gnus-async hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-async
/usr/share/emacs/site-lisp/ngnus/gnus-art hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-art
/usr/share/emacs/site-lisp/ngnus/gnus-agent hides /usr/share/emacs/23.1.50/lisp/gnus/gnus-agent
/usr/share/emacs/site-lisp/ngnus/gmm-utils hides /usr/share/emacs/23.1.50/lisp/gnus/gmm-utils
/usr/share/emacs/site-lisp/ngnus/flow-fill hides /usr/share/emacs/23.1.50/lisp/gnus/flow-fill
/usr/share/emacs/site-lisp/ngnus/ecomplete hides /usr/share/emacs/23.1.50/lisp/gnus/ecomplete
/usr/share/emacs/site-lisp/ngnus/earcon hides /usr/share/emacs/23.1.50/lisp/gnus/earcon
/usr/share/emacs/site-lisp/ngnus/deuglify hides /usr/share/emacs/23.1.50/lisp/gnus/deuglify
/usr/share/emacs/site-lisp/ngnus/compface hides /usr/share/emacs/23.1.50/lisp/gnus/compface
/usr/share/emacs/site-lisp/ngnus/canlock hides /usr/share/emacs/23.1.50/lisp/gnus/canlock
/usr/share/emacs/site-lisp/ngnus/auth-source hides /usr/share/emacs/23.1.50/lisp/gnus/auth-source
/usr/share/emacs/site-lisp/ddskk/vip hides /usr/share/emacs/23.1.50/lisp/emulation/vip
/usr/share/emacs/site-lisp/ses/unsafep hides /usr/share/emacs/23.1.50/lisp/emacs-lisp/unsafep
/usr/share/emacs/site-lisp/ses/testcover hides /usr/share/emacs/23.1.50/lisp/emacs-lisp/testcover
/usr/share/emacs/site-lisp/ngnus/time-date hides /usr/share/emacs/23.1.50/lisp/calendar/time-date
/usr/share/emacs/site-lisp/ngnus/parse-time hides /usr/share/emacs/23.1.50/lisp/calendar/parse-time
/usr/share/emacs/site-lisp/anthy/leim-list hides /usr/share/emacs/23.1.50/leim/leim-list





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

* bug#4358: 23.1.50; Arithmetic overflow errors break imap
  2009-09-06 13:47 bug#4358: 23.1.50; Arithmetic overflow errors break imap James Cloos
@ 2009-09-08 20:31 ` Stefan Monnier
  2009-09-08 21:19   ` James Cloos
  0 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2009-09-08 20:31 UTC (permalink / raw)
  To: James Cloos; +Cc: 4358

> The overflow messages do not get written to the *Messages* buffer,
> so I cannot quote one exactly.

Just the message wouldn't be enough anyway.  Try setting debug-on-error
to t, and if that doesn't cut it, try setting debug-on-signal to t.
This latter one sadly makes Emacs sometimes inconvenient to use, so if
the error is non-deterministic and only happens occasionally, it may be
painful.  But without a backtrace or some way to reproduce the problem,
it'll be difficult to track it down.  You may also want to try to set
imap-log and/or imap-debug to get more data.


        Stefan





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

* bug#4358: 23.1.50; Arithmetic overflow errors break imap
  2009-09-08 20:31 ` Stefan Monnier
@ 2009-09-08 21:19   ` James Cloos
  2009-09-09 14:34     ` James Cloos
  2009-09-09 15:06     ` Stefan Monnier
  0 siblings, 2 replies; 6+ messages in thread
From: James Cloos @ 2009-09-08 21:19 UTC (permalink / raw)
  To: 4358; +Cc: Stefan Monnier

>>>>> "Stefan" == Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

Stefan> Try setting debug-on-error to t, and if that doesn't cut it, try
Stefan> setting debug-on-signal to t.

I thought I had tried that, but apparently not.  (Perhaps I fell asleep
planning to do it and woke thinking I had???)

The backtrace I get from trying to exit the *Summary* buffer for my
INBOX folder looks like:

Debugger entered--Lisp error: (overflow-error "4294967287")
  read(#<buffer  *nnimap* lugabout>)
  imap-parse-status()
  imap-parse-response()
  imap-arrival-filter(#<process imap> "* STATUS \"INBOX\" (UNSEEN 4294967287)
\n1577 OK STATUS completed
\n")
  accept-process-output(#<process imap> 0 100)
  imap-wait-for-tag(1577 nil)
  imap-send-command-wait(("STATUS \"" "INBOX" "\" " "(UNSEEN)"))
  imap-mailbox-status("INBOX" unseen " *nnimap* lugabout")
  nnimap-update-unseen("INBOX" "lugabout")
  nnimap-close-group("INBOX" "lugabout")
  gnus-close-group("nnimap+lugabout:INBOX")
  gnus-summary-exit()
  call-interactively(gnus-summary-exit nil nil)

which (of course) shows that the imapd is sending the large value.

Which quite simply does not make sense, as there are certainly not
that many unseen messages in INBOX.  A quick check via telnet shows
that the imapd does indeed reply to a STATUS INBOX (UNSEEN) command
with that string, so I'll have to debug that.

But it would still be nice if gnus didn't crap out when that occurs.

What can be done to deal with that w/o raising an exception?

-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 1024D/ED7DAEA6





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

* bug#4358: 23.1.50; Arithmetic overflow errors break imap
  2009-09-08 21:19   ` James Cloos
@ 2009-09-09 14:34     ` James Cloos
  2009-09-09 15:06     ` Stefan Monnier
  1 sibling, 0 replies; 6+ messages in thread
From: James Cloos @ 2009-09-09 14:34 UTC (permalink / raw)
  To: 4358

Having patched the bug in the imapd¹ is use, imap.el no longer errors
out for me.

As such, fixing the imap.el bug is no longer critical for me.

I hope, however, that the bug can remain open, unless there is already
a big integer bug open for gnus with which this can merge.


1] The imapd uses a sql db to store the mail; it implements the imap
   status command by doing a union query to get the number of messages
   in the specified folder, how many are seen, etc.  It then does an
   unseen = exists - seen, using unsigned integers, to get the unseen
   count.  It also made an invalid assumption about how the query
   result set would be ordered; it assumed that, in the absence of an
   explicit order by clause, the results would be implicitly ordered
   by the first column, as if order by 1 had been specified.

   That happened to work with mysql and earlier version of postgres,
   but does not happen with postgresql 8.4.  Adding an explicit
   order by 1 to the query fixed that imapd bug.

-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 1024D/ED7DAEA6





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

* bug#4358: 23.1.50; Arithmetic overflow errors break imap
  2009-09-08 21:19   ` James Cloos
  2009-09-09 14:34     ` James Cloos
@ 2009-09-09 15:06     ` Stefan Monnier
  2009-09-09 17:42       ` James Cloos
  1 sibling, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2009-09-09 15:06 UTC (permalink / raw)
  To: James Cloos; +Cc: bugs, 4358

> which (of course) shows that the imapd is sending the large value.
> Which quite simply does not make sense, as there are certainly not
> that many unseen messages in INBOX.  A quick check via telnet shows
> that the imapd does indeed reply to a STATUS INBOX (UNSEEN) command
> with that string, so I'll have to debug that.

Yes, please investigate, to try and seen if it's likely to be a common
problem, or rather a "local error".

> But it would still be nice if gnus didn't crap out when that occurs.

Yes, clearly.

> What can be done to deal with that w/o raising an exception?

Catch the exception and use another number?  In this case, I'd guess
that most-positive-fixnum would do the trick.  Tho, maybe in the general
case, our error signal could/should carry a bit more info so you'd know
whether to use most-positive-fixnum or most-negative-fixnum.

I'd suggest the patch below, tho if you could provide some more info
about your IMAP server (like name and version number), it'd be good to
add it to the comment.


        Stefan


=== modified file 'lisp/net/imap.el'
--- lisp/net/imap.el	2009-09-09 14:17:42 +0000
+++ lisp/net/imap.el	2009-09-09 15:04:06 +0000
@@ -2699,7 +2699,17 @@
 		      (imap-mailbox-put 'uidvalidity (match-string 0) mailbox)
 		      (goto-char (match-end 0))))
 		((string= token "UNSEEN")
-		 (imap-mailbox-put 'unseen (read (current-buffer)) mailbox))
+		 (imap-mailbox-put 'unseen
+                                   (condition-case err
+                                       (read (current-buffer))
+                                     ;; It seems that some IMAP servers can
+                                     ;; return very large unseen numbers,
+                                     ;; like 4294967287 (see bug#4358).
+                                     (overflow-error
+                                      ;; Don't go down without a fight.
+                                      (message "Insanely large number of unseen messages (%s) !!" (cadr err))
+                                      most-positive-fixnum))
+                                   mailbox))
 		(t
 		 (message "Unknown status data %s in mailbox %s ignored"
 			  token mailbox)






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

* bug#4358: 23.1.50; Arithmetic overflow errors break imap
  2009-09-09 15:06     ` Stefan Monnier
@ 2009-09-09 17:42       ` James Cloos
  0 siblings, 0 replies; 6+ messages in thread
From: James Cloos @ 2009-09-09 17:42 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: bugs, 4358

>>>>> "Stefan" == Stefan Monnier <monnier@iro.umontreal.ca> writes:

Stefan> tho if you could provide some more info about your IMAP server
Stefan> (like name and version number), it'd be good to add it to the
Stefan> comment.

The imapd status bug exists in all released and, as of this morning, git
versions of dbmail.  It will only show up with certain sql dbs, though,
and even then it depends on a number of site-specific factors.

For me, upgrading pgsql from 8.3 to 8.4 made the issue noticable and
repeatable.

(I have reported the bug upstream.)

-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 1024D/ED7DAEA6





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

end of thread, other threads:[~2009-09-09 17:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-06 13:47 bug#4358: 23.1.50; Arithmetic overflow errors break imap James Cloos
2009-09-08 20:31 ` Stefan Monnier
2009-09-08 21:19   ` James Cloos
2009-09-09 14:34     ` James Cloos
2009-09-09 15:06     ` Stefan Monnier
2009-09-09 17:42       ` James Cloos

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).