bug-gnu-emacs
[Top][All Lists]
Advanced

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

max buffer size problem


From: joseph
Subject: max buffer size problem
Date: Tue, 7 Nov 2000 17:24:29 -0500 (EST)

I recently experienced a maximum buffer size problem while reading email in 
gnu emacs.  Subsequently, I could not read any mail even after purging all
of the system mail file contents and sending one test mail message.

A straightforward change to the appropriate src/fileio.c error message
could have informed me of the need to purge the intermediate file created
for reading mail but not removed upon the error occurance.  A suggested 
change is given in the diff -c below.  The paragraph labeled solution gives
a sample helpful message while the paragraph labeled problem gives the
current not so helpful message.

Changing the error message to help me recover from the problem quicker does
not entirely fix the problem.  I work on a system with huge amounts of
resources (24 cpu's with 2GB RAM per cpu).  It is a real defect for the
maximum buffer size to be less than a GB.  I ought to have a convenient
means (e.g., a variable) to increase the default.  I resorted to using
ed to view the mail file for potential problems.  Trying to find the C-code
that controls this maximum lead me down a dark alley with no exit.  Please
consider making this aspect more convenient.

Appropriate bug report data also follows below.

Joseph Patterson, josephpatterson@lucent.com


PS:  It is much to hard to figure out how to save text messages that only 
appear in
     the minibuffer.


problem:

minibuffer displays message "Maximum buffer size exceeded"

solution:

minibuffer displays message "Maximum buffer size exceeded 
/h18/mvvul/joseph/.newmail-joseph 225333183"

configure operands: 

GNU=/usr1/gnu
EXEEMACSREV=emacs-20.7
SUNOS=sun56
JTPLIBX=/usr/openwin/lib
./configure sparc-sun-solaris2.6 --with-pop 
--x-libraries=:/usr/openwin/lib:/lib:/usr/lib --prefix=/ --exec-prefix=//sun56


Gnu Emacs Version: Gnu Emacs 20.7.7 sparc-sun-solaris2.6, X toolkit

source code modifications: none for observing problem

text of files needed to reproduce problem:

{These are omitted b/c of outrageous size (>260MB).
Any mail inbox file exceeding maximum buffer size and a read mail file should 
do.}

commands needed to reproduce problem:

^x^f ~/rmail 

     where ~/rmail is a file that has had the "set-rmail-inbox-list ~/rmail"
     previously executed upon it while being visited in rmail mode

g

dribble file:

 0x2000018 0x2000006rm <return>g 0x2000018 0x2000003


recommended source code revision:

*** src/fileio.c.old    Tue Nov  7 15:33:51 2000
--- src/fileio.c.new    Tue Nov  7 15:32:42 2000
***************
*** 3399,3405 ****
    Lisp_Object p;
    int total;
    int not_regular = 0;
!   unsigned char read_buf[READ_BUF_SIZE];
    struct coding_system coding;
    unsigned char buffer[1 << 14];
    int replace_handled = 0;
--- 3399,3405 ----
    Lisp_Object p;
    int total;
    int not_regular = 0;
!   unsigned char read_buf[READ_BUF_SIZE],buff[1024];
    struct coding_system coding;
    unsigned char buffer[1 << 14];
    int replace_handled = 0;
***************
*** 3517,3523 ****
        {
          XSETINT (end, st.st_size);
          if (XINT (end) != st.st_size)
!           error ("Maximum buffer size exceeded");
        }
      }
  
--- 3517,3523 ----
        {
          XSETINT (end, st.st_size);
          if (XINT (end) != st.st_size)
!                 { sprintf(buff,"Maximum buffer size exceeded %s %d",XSTRING 
(filename)->data, end); error(buff); }
        }
      }
  
***************
*** 3910,3916 ****
            error ("IO error reading %s: %s",
                   XSTRING (orig_filename)->data, strerror (errno));
          else if (how_much == -2)
!           error ("maximum buffer size exceeded");
        }
  
        /* Compare the beginning of the converted file
--- 3910,3916 ----
            error ("IO error reading %s: %s",
                   XSTRING (orig_filename)->data, strerror (errno));
          else if (how_much == -2)
!           { sprintf(buff,"Maximum buffer size exceeded %s %d",XSTRING 
(filename)->data, end); error(buff); }
        }
  
        /* Compare the beginning of the converted file
***************
*** 4007,4013 ****
        /* Make sure point-max won't overflow after this insertion.  */
        XSETINT (temp, total);
        if (total != XINT (temp))
!       error ("Maximum buffer size exceeded");
      }
    else
      /* For a special file, all we can do is guess.  */
--- 4007,4013 ----
        /* Make sure point-max won't overflow after this insertion.  */
        XSETINT (temp, total);
        if (total != XINT (temp))
!       { sprintf(buff,"Maximum buffer size exceeded %s %d",XSTRING 
(filename)->data, end); error(buff); }
      }
    else
      /* For a special file, all we can do is guess.  */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]