It's fixed, thank you. Sean
________________________________ From: Chet Ramey <chet.ra...@case.edu> Sent: Wednesday, October 5, 2016 9:16 PM To: Sean Zha; bug-bash@gnu.org; b...@packages.debian.org Cc: chet.ra...@case.edu Subject: Re: "HISTSIZE=999999999" cause bash failure after lastest upgrade On 9/25/16 6:59 PM, Chet Ramey wrote: > On 9/25/16 3:51 PM, Sean Zha wrote: > >> Bash Version: 4.4 >> Patch Level: 0 >> Release Status: release >> >> Description: >> I use a huge value for HISTSIZE (=999999999) to enable infinite >> history items. The actural size of ~/.bash_history is only 4MB now. >> Everything worked fine before the lastest upgrade. Now bash refuse >> me to login due to memory allocation failure. After choosing >> a smaller HISTSIZE, bash still eatup too much unnesssary memory. >> >> Repeat-By: >> open a workable terminal with small HISTSIZE setting, >> $ echo HISTSIZE=999999999 > ~/test.rc >> $ bash --rcfile ~/test.rc >> bash: xmalloc: cannot allocate 8000000008 bytes (114688 bytes >> allocated) > > Since you've specified the desired history size, bash tries to allocate > enough entries to hold all of the entries. The assumption is that this > will reduce the number of allocations/reallocations and the number of > times the history list has to be copied as it's reallocated. I suppose > I should cap the maximum value for which that occurs instead of trusting > the supplied max number of entries. Try the attached patch and see whether or not it improves things. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/