Date: Mon, 4 Oct 2004 13:14:22 -0400 From: Brian Reichert <reichert@numachi.com> To: freebsd-current@freebsd.org Subject: awk leaking memory during arithmetic? Message-ID: <20041004171422.GK262@numachi.com>
next in thread | raw e-mail | index | archive | help
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@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 Abort (core dumped) # ls -l awk.core -rw------- 1 root wheel 537698304 Oct 4 12:58 awk.core Changing the awk program thusly: cat test_list | awk '{ t += "$1" } END {print $t }' Stops the malloc errors, but now prints nothing. This same test on 4.10-RELEASE also doesn't do what I expect: % cat test_list | awk '{ t += $1 } END {print $t}' % Just prints a blank line, with a zero exit status. Adding the quotes as above, yeilds some bad math, which I presume is some overflow error: % cat test_list | awk '{ t += "$1" } END {print $t}' 35815424 I note that 5.2.1 and 4.10 are using different versions of awk. Are these awk bugs, or am I misusing awk? The memory consumption under 5.2.1 is what concerns me the most. I'll open a PR, if that's the concensus. This sypmtom doesn't seem to correspond to any of the (closed) PRs about awk... -- Brian Reichert <reichert@numachi.com> 37 Crystal Ave. #303 Daytime number: (603) 434-6842 Derry NH 03038-1713 USA BSD admin/developer at large
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041004171422.GK262>