Java SIGBUS - an unclear way of saying /tmp is full

I had the following happen for every new java process on one of my servers the other day:

server:~$ java
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0x00007f3e0c5aad9b, pid=17280, tid=139904457242368
#
# JRE version: 6.0_24-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (19.1-b02 mixed mode linux-amd64 compressed oops) 
# Problematic frame:
# C  [libc.so.6+0x7ed9b]  memset+0xa5b
#
# An error report file with more information is saved as:
# /home/user/hs_err_pid17280.log
Segmentation fault

Turns out this is Java’s way of telling you that the /tmp directory is full. It’s trying to mmap some performance/hotspot-related file in /tmp which succeeds, but when it’s trying to access this area, it will get the SIGBUS signal.

More info here

Written on May 2, 2011