Project

Profile

Help

Support #2670

closed

JET RUNTIME HAS DETECTED UNRECOVERABLE ERROR: system exception at 0x009165e9

Added by Duygu Colak over 8 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
High
Category:
PHP API
Start date:
2016-03-10
Due date:
% Done:

100%

Estimated time:
Applies to branch:
Fix Committed on Branch:
Fixed in Maintenance Release:
Found in version:
1.0.0
SaxonC Languages:
SaxonC Platforms:
SaxonC Architecture:

Description

I get this error from my php application and when the error occures, at the same time user sees "No data received Unable to load the web page because the server sent no data." error on Google Chrome. What does the error mean, and how can I fix it?

Full Error Line in apache log file: JET RUNTIME HAS DETECTED UNRECOVERABLE ERROR: system exception at 0x009165e9

Please, contact the vendor of the application.

Extra information about error is saved in the "/tmp/jet_err_28301.txt" file.

Fatal Error: Crash during termination.

Related jet_err_28301.txt file is in the attachment.


Files

jet_err_28301.txt (44.4 KB) jet_err_28301.txt Duygu Colak, 2016-03-10 10:43
jet_err_2493.txt (37.5 KB) jet_err_2493.txt Duygu Colak, 2016-03-15 14:04
Actions #1

Updated by Michael Kay over 8 years ago

Thanks for letting us know about this. We will work with the Jet developers to diagnose the problem and find a workaround or resolution. I suspect we will need a repro (that is, a complete and runnable application that demonstrates the problem, ideally as small as possible.)

Actions #2

Updated by O'Neil Delpratt over 8 years ago

Please check that you have added the reference of the saxon extension module in the php.ini file. See the instructions below:

Create a module conf file: nano /etc/php.d/saxon.ini and add contents:

configuration for php Saxon HE/PE/EE module extension=saxon.so save the file.

Enable the module for PHP: php5enmod saxon

Alternatively, You can update the php.ini file (using Centos it is usually in the location ‘/etc/') to contain the PHP extension.

Insert the following in the Dynamic Extensions section: extension=saxon.so, then run the command:

sudo service httpd restart

I hope this helps. Kind regards,

Actions #3

Updated by O'Neil Delpratt over 8 years ago

  • Status changed from New to AwaitingInfo
Actions #4

Updated by O'Neil Delpratt over 8 years ago

  • Found in version set to 1.0.0
Actions #5

Updated by Duygu Colak over 8 years ago

The line in the php.ini file about saxon extension is:

extension=/usr/lib/Saxonica/Saxon.C.API/modules/saxon.so

And not always but most of the time I see the error, which means saxon module is working I guess?

Actions #6

Updated by Duygu Colak over 8 years ago

I have been testing the code, and I have noticed that even when I comment out the whole code except this line:

$saxonProc = new Saxon\SaxonProcessor();

İt gives the same error.

Actions #7

Updated by O'Neil Delpratt over 8 years ago

  • Status changed from AwaitingInfo to In Progress

I have managed to reproduce the error you are getting on my centos machine when I run the php script in a browser. It works fine when I run on the commandline.

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/saxon.so' - libsaxonhec.so: cannot enable executable stack as shared object requires: Permission denied in Unknown on line 0

[Tue Mar 15 01:24:36 2016] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.4.45 configured -- resuming normal operations
[Tue Mar 15 01:24:40 2016] [error] [client ::1] PHP Fatal error:  Class 'Saxon\\SaxonProcessor' not found in /var/www/html/saxon.php on line 18

I will investigate the issue and report back shortly.

Actions #8

Updated by O'Neil Delpratt over 8 years ago

  • Status changed from In Progress to AwaitingInfo

The root cause of the error you received is because of SELinux is enforced/enabled on your machine.

One solution is to disable the SELinux by opening the file /etc/selinux/config and changing “SELINUX=enforcing” to “SELINUX=disabled”. A reboot is required.

However, in terms of security on your system this might be a bad option. See manual on SELinux: https://wiki.centos.org/HowTos/SELinux

A better solution is to change the security context of the Saxon libraries using the command chcon.

On my system I had to do the following:

Ran:

ls -alZ /usr/lib

What was of interest was for most of the libraries it states "system_u:object_r:lib_t" wheras for libsaxonhec.so it was "unconfined_u:object_r:lib_t:s0". I changed this to the following:

chcon system_u:object_r:lib_t:s0 /usr/lib/libsaxonhec.so

Similar change required for the php saxon module:

chcon system_u:object_r:lib_t:s0 /usr/lib/php/modules/saxon.so

Also please ensure the environment variable LD_LIBRARY_PATH has been set in /etc/sysconfig/httpd (for Centos). For a 32-bit machine add the following at the end of the file:

export LD_LIBRARY_PATH=/usr/lib/rt/lib/i386:/usr/lib/rt/lib/i386/jetvm:$LD_LIBRARY_PATH
Actions #9

Updated by O'Neil Delpratt over 8 years ago

I will add details of this in the troubleshooting section on our website.

Actions #10

Updated by Duygu Colak over 8 years ago

When I run chcon commands, error changed to

JET RUNTIME HAS DETECTED UNRECOVERABLE ERROR: system exception at 0x00b105d5

Please, contact the vendor of the application.

Extra information about error is saved in the "/tmp/jet_err_2493.txt" file.

Fatal Error: Crash during termination.

Actions #11

Updated by O'Neil Delpratt over 8 years ago

  • Status changed from AwaitingInfo to In Progress

Update:

There still seems to be an underlying problem here. The page seems to load as normal. But if we inspect the apache error log file it shows up the same Jet message mentioned in comment #0. I have reproduced it on my ubuntu machine so will be investigating what is happening.

Actions #12

Updated by O'Neil Delpratt over 8 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 0 to 100

Bug fixed and committed to subversion.

The problem was because of the multiple HTTP PHP requests in Saxon/C we get more than one call of the methods JNI_CreateJavaVM and finalizeJavaRT. We should only call these methods ones in the same process.

The fix was to prevent multiple calls to these JVM methods by using static variables, similar to what was done in Saxon/C 0.3.1.

Fix will be available in the next maintenance release.

Actions #13

Updated by O'Neil Delpratt over 8 years ago

  • Status changed from Resolved to In Progress

When the PHP MSHUTDOWN is called a seg error is thrown. The SaxonProcessor release method seems not to be in a clean state. Investigating the issue now.

Actions #14

Updated by O'Neil Delpratt over 8 years ago

  • Status changed from In Progress to Resolved

The MSHUTDOWN problem is in related. We have removed the release method call as it is not needed.

Actions #15

Updated by O'Neil Delpratt over 8 years ago

  • Status changed from Resolved to Closed

Bug fix applied in the Saxon/C 1.0.1 maintenance release.

Please register to edit this issue

Also available in: Atom PDF