awk leaking memory during arithmetic?

Dan Nelson dnelson at allantgroup.com
Mon Oct 4 10:22:27 PDT 2004


In the last episode (Oct 04), Brian Reichert said:
> I may be misremembering some awk lore, but this still seems like
> undesired behavior.  Essentially, I'm trying to sum up some numbers,
> but awk spin, chewing up memory, until it drops a huge core file.
> 
>   # uname -a
>   FreeBSD backup.internal 5.2.1-RELEASE FreeBSD 5.2.1-RELEASE #1: Mon Sep 27
>   19:27:46 EDT 200	 root at backup2.internal:/usr/src/sys/i386/compile/FILESERVER  i386
>   
>   # cat test_list | awk '{print $1}'
>   53999616
>   53999616
>   53311488
>   102475776
>   257134592
>   858624
>   512909312
>   1147392
>   39385174
>   35815424
> 
>   # cat test_list | awk '{ t += $1 } END {print $t}'
>   awk in malloc(): error: allocation failed

I think "print t" is what you want here.  $t would refer to the t'th
field in the line, and it looks like awk tried to resize the array out
to 1111037014 entries and failed.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-current mailing list