I have a desktop with a Core i5 3rd gen and 4 GB of RAM. I am using the machine to test building some free software projects I contribute to. The machine serves no other purpose.
I allocated 4 GB swap space. It looks like I'm still running out of memory.
$ make -j 4
...
/opt/developerstudio12.6/bin/CC -DHAVE_CONFIG_H -I. -O2 -template=no%extdef -DCRYPTOPP_DISABLE_SHANI -D__SSE2__=1 -D__SSSE3__=1 -D__SSE4_1__=1 -D__SSE4_2__=1 -D__AES__=1 -DCRYPTOPP_DATA_DIR='"/usr/local/share/cryptopp/"' -g -c -o cryptest-validat3.o `test -f 'validat3.cpp' || echo './'`validat3.cpp
DBG_GEN FATAL ERROR: dbg_tables.c:171 - fwrite() failed to write required bytes [DBG_GEN 5.7.6]
CC: ube failed for validat3.cpp
The error also moves around:
$ make -j 4
...
/opt/developerstudio12.6/bin/CC -DHAVE_CONFIG_H -I. -O2 -template=no%extdef -DCRYPTOPP_DISABLE_SHANI -D__SSE2__=1 -D__SSSE3__=1 -D__SSE4_1__=1 -D__SSE4_2__=1 -D__AES__=1 -DCRYPTOPP_DATA_DIR='"/usr/local/share/cryptopp/"' -g -c -o cryptest-validat0.o `test -f 'validat0.cpp' || echo './'`validat0.cpp
source='validat1.cpp' object='cryptest-validat1.o' libtool=no \
DEPDIR=.deps depmode=none /bin/sh ./depcomp \
/opt/developerstudio12.6/bin/CC -DHAVE_CONFIG_H -I. -O2 -template=no%extdef -DCRYPTOPP_DISABLE_SHANI -D__SSE2__=1 -D__SSSE3__=1 -D__SSE4_1__=1 -D__SSE4_2__=1 -D__AES__=1 -DCRYPTOPP_DATA_DIR='"/usr/local/share/cryptopp/"' -g -c -o cryptest-validat1.o `test -f 'validat1.cpp' || echo './'`validat1.cpp
...
libsunir aborting on error
Assertion failed: IR_FALSE, file ../src/IrLib.c, line 204, function ir_err_report
...
CC: Fatal error in /opt/developerstudio12.6/lib/compilers/bin/ube
CC: Status 134
make[1]: *** [Makefile:1477: cryptest-validat1.o] Error 134
I'm not running any other programs. Only the compiler through the makefile.
When I examine dmesg
I see WARNING: /tmp: File system full, swap space limit exceeded
. According to the Oracle doc WARNING: /tmp: File system full, swap space limit exceeded:
Cause
The system swap area (virtual memory) has filled up. You need to reduce swap space consumption by killing some processes or possibly by rebooting the system.
Action
For information about increasing swap space, refer to "Not enough space".
I'm baffled 4 GB or RAM and 4 GB of swap is not enough to run a compiler. I don't know how much more memory I need to allocate to run the compiler.
How much virtual memory should I allocate so the compiler can run without crashing?
$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 21.3G 207G 4.85M /rpool
rpool/ROOT 13.6G 207G 31K legacy
rpool/ROOT/solaris 13.6G 207G 12.9G /
rpool/ROOT/solaris/var 526M 207G 367M /var
rpool/VARSHARE 164K 207G 69.5K /var/share
rpool/VARSHARE/pkg 63K 207G 32K /var/share/pkg
rpool/VARSHARE/pkg/repositories 31K 207G 31K /var/share/pkg/repositories
rpool/VARSHARE/zones 31K 207G 31K /system/zones
rpool/dump 1.96G 207G 1.90G -
rpool/export 1.62G 207G 33.5K /export
rpool/export/home 1.62G 207G 33K /export/home
rpool/export/home/apolyakov 38K 207G 38K /export/home/apolyakov
rpool/export/home/jwalton 1.62G 207G 1.62G /export/home/jwalton
rpool/swap 4.13G 207G 4.00G -
And it reports healthy even in the throws of the memory or storage failures:
$ zpool status -x
all pools are healthy
And some accounting:
$ zpool status -v
pool: rpool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
c1t0d0 ONLINE 0 0 0
errors: No known data errors
This machine's name is solaris3
. It is the third machine to experience these troubles. The first was a used used DL380 G5 server on Sun's HCL. The second was an Intel Utlra-24 from Sun. The third is the low-end Core i5.
I don't do anything special when laying an OS on the hardware. I downloaded the Solaris x86 ISO from Sun (twice now). I run the installer and I take the defaults. When prompted I select the "use entire disk" option.
After the OS install I enable the Solaris Studio publisher. I then install Autoconf, Automake, Libtool, Git, Subversion, GDB, Sun Studio 12.2 through 12.6, and some other dev tools. There are hundreds of gigabytes of free space available on all three machines after the extra software is installed.
All the machines are headless. I remove the monitor once the OS is installed. Though the machines are in my basement I work remotely over SSH.
I am not a Solaris admin and I don't arbitrarily change settings. I change settings in response to problems like this. After changing a setting like swap size I reboot the machine with reboot -p
.
fwrite
writes to disk meaning you are either running out of disk space on/tmp
or in the current directory, or you have a bad disk causing the write to fail.authorized_keys
file at noloader, gmail account. I will make you an admin on the box and you can inspect and adjust settings.