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. 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/