Java Runtime Fatal Error

Hello! I am getting an error at step 3 of snap2stamps “Coregistration and Interferogram computation”:

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGILL (0x4) at pc=0x00007f359dcbd020, pid=12162, tid=0x00007f36783a3700
#
# JRE version: OpenJDK Runtime Environment (Zulu 8.44.0.13-CA-linux64) (8.0_242-b20) (build 1.8.0_242-b20)
# Java VM: OpenJDK 64-Bit Server VM (25.242-b20 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libjblas.so+0x64f020]  dgemm_otcopy_OPTERON_SSE3+0x20

This is on SNAP 8 with all latest updates and it occurs on Ubuntu 16.04, 18.04, 20.04, Debian 10 and 11. Funny thing is, I can run all four steps of snap2stamps on a Mac without any errors.

I have tried every suggestion I could find online to no avail. Any help would be greatly appreciated. Thanks!

Most of the problems with libjblas.so in SNAP involve mismatched gfortran runtime libraries, so may not be relevant here. SIGILL means the CPU doesn’t support an instruction in the dgemm_otcopy_OPTERON_SSE3 code. Are all those linux version running on the same hardware? What does cat /proc/cpuinfo | grep sse3 give?

Very old hardware (or a VM that doesn’t provide the full instruction set of the host) could explain the unsupported instruction. Wikipedia SSE3 lists older CPU’s with SSE3. I think “OPTERON_SSE3” refers to AMD’s partial implementation of SSE3, used so the code will run on both Intel and AMD processors.

Interesting, thank you. It did not occur to me that it could be CPU related. I have a custom AMD 5950x workstation running Proxmox which I then use to spin up VMs as needed. SNAP is installed on one of those VMs.

cat /proc/cpuinfo | grep sse3 does not return anything but cat /proc/cpuinfo | grep sse returns multiple instances of this:

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl cpuid extd_apicid tsc_known_freq pni cx16 x2apic hypervisor cmp_legacy 3dnowprefetch vmmcall

Here are the options I have on Proxmox for the CPU:



Reading more into this… the default “kvm64” CPU type in promox emulates a Pentium 4 look alike in order to simplify things. I will try a new VM with “host” CPU flags.

Thank you, @gnwiii, for pointing me in the right direction. I did get another error after fixing the problem with the CPU that i was able to solve by installing libgfortran5 on Ubuntu 18.04. Thanks again!

Having two issues (CPU and gfortran versions) at once is rare bad luck! Did this start last Friday (the 13th?).

I’m glad you were able to sort out the problem. For the benefit of the next unlucky user, please describe how you fixed the problem with the CPU (different computer, changes to VM settings, or something else).

Yep, some bad luck but I am grateful for this forum.

On Proxmox, when creating a new VM, under CPU type I chose “host” which allowed the OS to see the AMD 5950x I have. The downside of doing so is that might not be able to migrate the VM to another host if I wanted to but I do not intend to do that anytime soon.

Thanks again!

Hi everyone.

I have been experiencing the issue described above for the first time this week. I have been working with SNAP and snappy for 2 years now and I have never seen this error before, which I will share again for clarity:

$ libEGL warning: DRI3: failed to query the version
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGILL (0x4) at pc=0x00007f7b087d2020, pid=11929, tid=0x00007f7bc02d0700
#
# JRE version: OpenJDK Runtime Environment (Zulu 8.44.0.13-CA-linux64) (8.0_242-b20) (build 1.8.0_242-b20)
# Java VM: OpenJDK 64-Bit Server VM (25.242-b20 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libjblas.so+0x64f020]  dgemm_otcopy_OPTERON_SSE3+0x20
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

I have tried your suggestions above but with no success. I reinstalled openjdk and snap but it’s still not working.

I have tried both SNAP 8 and 9.
I am using Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-164-generic x86_64), on a VM with 32 GB and 4 CPU.
And this is my java version:

openjdk version "11.0.20.1" 2023-08-24
OpenJDK Runtime Environment (build 11.0.20.1+1-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.20.1+1-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)

Some context:

I am doing interferometry in order to retrieve a DEM from a couple of images.
Below is the list of steps I have tried so far, and whether or not they work (it’s the same with either GUI or snappy):

  • topsar split - works

  • apply orbit file - works

  • back geocoding - DOES NOT WORK

  • interferogram generationg - DOES NOT WORK

  • deburst - works

  • goldstein filter - works

  • subset - works

(I didn’t test the topsar merge function because i do not need it in the specific case I am working on)

The back-eocoding and the interferogram operators, as stated above, are the operators that don’t work, and the error message is the one shared at the beginning.

I should probably add that thiss issue has started after the cloning of the VM I am working on and the decreasing the RAM from 64 to 32 GB. Not sure how this can cause such problem.

This is my snappy.conf

# ${HOME} will be replaced by user home directory according to platform
default_userdir="${HOME}/.snap/system"

# Options used by the launcher by default, can be overridden by explicit command line switches
default_options="--branding snap --locale en_GB -J-XX:+AggressiveOpts -J-Xverify:none -J-Xms256M -J-Xmx21G -J-Dnetbeans.mainclass=org.esa.snap.main.Main -J-Dsun.java2d.noddraw=true -J-Dsun.awt.nopixfmt=true -J-Dsun.java2d.dpiaware=false"
# for development purposes you may wish to append: -J-Dnetbeans.logger.console=true -J-ea

# Default location of JRE
jdkhome="./jre"

# Extra cluster paths separated by colon ':'
#extra_clusters=""

Moreover, for the system and processing performance parameters I am using
Cache Size = 15728
Tile Size = 256
Number of Threads = 4.

If yo have any further suggestions please share!
Thank you in advance.

Sabrina

The tile-cache is in memory, so you’ve reserved half of your RAM for it. That is excessive and could lead to issues.

Thank you for the quick reply!

That was the value obtained from the “compute” button. I tried the default 1024 as well but SNAP still crashes and I still get the same error message.