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