[Biopython-dev] curious error from HMM unit test

Peter biopython at maubp.freeserve.co.uk
Thu Jan 27 15:43:16 UTC 2011


2011/1/24 Peter <biopython at maubp.freeserve.co.uk>:
> 2011/1/24 Tiago Antão <tiagoantao at gmail.com>:
>> Sorry, I am drenched in work (writing up my PhD thesis) and had no
>> time to attend to this. Maybe it is the Jython version? It is still a
>> release candidate. I think the one installed is RC2, I am going to
>> upgrade to the new RC3 and try again.
>
> Not to worry Tiago - it's not your machine - its one of mine (with
> Jython 2.5.2 RC3). You've got more important things right now ;)
>
> It looks like we may have found a bug worth reporting to the
> Jython guys. I'll try and work out if I can reproduce it "by hand"
> rather than just via buildbot.

That turned out to be easy enough, logged in as the buildslave,
got the latest Biopython code with git, did "jython setup.py install",
switched to the test directory and:

$ jython test_HMMCasino.py
Training with the Standard Trainer...
Training with Baum-Welch...
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00002aaaab550400, pid=16570, tid=1106139456
#
# JRE version: 6.0_17-b17
# Java VM: OpenJDK 64-Bit Server VM (14.0-b16 mixed mode linux-amd64 )
# Derivative: IcedTea6 1.7.5
# Distribution: Custom build (Wed Oct 13 13:04:40 EDT 2010)
# Problematic frame:
# j  Bio.HMM.Trainer$py.update_emissions$12(Lorg/python/core/PyFrame;Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;+555
#
# An error report file with more information is saved as:
# /home/buildslave/repositories/biopython/Tests/hs_err_pid16570.log
#
# If you would like to submit a bug report, please include
# instructions how to reproduce the bug and visit:
#   http://icedtea.classpath.org/bugzilla
#
/home/buildslave/bin/jython: line 271: 16570 Aborted
"${JAVA_CMD[@]}" $JAVA_OPTS "${java_args[@]}"
-Dpython.home="$JYTHON_HOME" -Dpython.executable="$PRG"
org.python.util.jython $JYTHON_OPTS "$@"


So, we've had several outcomes (note the build number doesn't increase
with git changes, some of these are rebuilds of older code):

Build - git revision - outcome
0 - ? - success
1 - ? - success
2 - ? - success
3 - ? - success
4 - ? - success
5 - ? - success
6 - ? - UnboundLocalError
7 - ? - success
8 - ? - success
9 - ? - success
10 - ? - success
11 - ? - success
12 - ? - UnboundLocalError
13 - ? - success
14 - 5c729927d79a9f22b89d8a6f794865c8e1209ed5 - success

(At this point Java was updated on this machine.)

15 - cc6842e0f79178af6bf9f32ad6ac3025685f55d1 - timeout
16 - cc6842e0f79178af6bf9f32ad6ac3025685f55d1 - fatal error detect by Java
17 - 215d8a37e20b50491613cc153bdf366d875cf251 - fatal error detect by Java
18 - 215d8a37e20b50491613cc153bdf366d875cf251 - fatal error detect by Java
19 - cc6842e0f79178af6bf9f32ad6ac3025685f55d1 - fatal error detect by Java
20 - 215d8a37e20b50491613cc153bdf366d875cf251 - fatal error detect by Java
21 - f36daaf7dada756822c1040cdb1a74ae0794469d - fatal error detect by Java
22 - 9ec46f981a1fb7f97eaee4a2a01ad8bb3297234b - fatal error detect by Java

(At this point I removed Biopython from jython's site-packages, just
in case that
was conflicting with the un-installed builds being tested. No change...)

23 - 9ec46f981a1fb7f97eaee4a2a01ad8bb3297234b - fatal error detect by Java

(for the next builds, I went back to revision for last success, build
14, and build 0)

24 - 5c729927d79a9f22b89d8a6f794865c8e1209ed5 - fatal error detect by Java
25 - 5c729927d79a9f22b89d8a6f794865c8e1209ed5 - fatal error detect by Java
26 - b61cb9d34b24a2e24b0b95453b2707f040d44d89 - fatal error detect by Java

I'm pretty convinced that the switch from an occasional UnboundLocalError
to a repeatable fatal error is down to the change in Java (although why build
15 timed out rather than triggered the fatal error is curious).

$ sudo grep java /var/log/yum.log
Jan 21 14:18:29 Installed: tzdata-java-2010l-1.el5.x86_64
Jan 21 14:20:31 Updated: 1:java-1.6.0-openjdk-1.6.0.0-1.16.b17.el5.x86_64
Jan 21 14:20:46 Updated: 1:java-1.6.0-openjdk-devel-1.6.0.0-1.16.b17.el5.x86_64

$ jython
Jython 2.5.2rc3 (Release_2_5_2rc3:7184, Jan 10 2011, 22:54:57)
[OpenJDK 64-Bit Server VM (Sun Microsystems Inc.)] on java1.6.0_17
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.version_info
(2, 5, 2, 'candidate', 3)
>>> print sys.version
2.5.2rc3 (Release_2_5_2rc3:7184, Jan 10 2011, 22:54:57)
[OpenJDK 64-Bit Server VM (Sun Microsystems Inc.)]

So this looks like a bug in either Jython 2.5.2 RC3 and/or Java under CentOS.

Peter




More information about the Biopython-dev mailing list