Opened 8 years ago

Closed 8 years ago

#528 closed defect (fixed)

wrong libjbigi loaded (pentiumm instead of pentium3) -> crash

Reported by: killyourtv Owned by: hottuna
Priority: major Milestone: 0.8.10
Component: api/general Version: 0.8.8
Keywords: jbigi, pentium3, freebsd Cc:
Parent Tickets: Sensitive: no

Description

$ ./i2prouter console
Running I2P Service...
wrapper  | --> Wrapper Started as Console
wrapper  | Java Service Wrapper Community Edition 32-bit 3.5.11
wrapper  |   Copyright (C) 1999-2011 Tanuki Software, Ltd. All Rights Reserved.
wrapper  |     http://wrapper.tanukisoftware.com
wrapper  | 
wrapper  | Launching a JVM...
jvm 1    | WrapperManager: Initializing...
jvm 1    | Starting I2P 0.8.8-19
jvm 1    | INFO: Native CPUID library jcpuid-x86-freebsd loaded from file
jvm 1    | INFO: Native BigInteger library libjbigi-freebsd-pentiumm.so loaded from resource
jvm 1    | #
jvm 1    | # A fatal error has been detected by the Java Runtime Environment:
jvm 1    | #
jvm 1    | #  SIGILL (0x4) at pc=0x35488cee, pid=2303, tid=905387328
jvm 1    | #
jvm 1    | # JRE version: 7.0
jvm 1    | # Java VM: OpenJDK Client VM (20.0-b03 mixed mode bsd-x86 )
jvm 1    | # Problematic frame:
jvm 1    | # C  [libjbigi.so+0x5cee]  __gmpn_mul_basecase+0x19e
jvm 1    | #
jvm 1    | # An error report file with more information is saved as:
jvm 1    | # /usr/home/USER/i2p/hs_err_pid2303.log
jvm 1    | [thread 905387648 also had an error]
jvm 1    | #
jvm 1    | # If you would like to submit a bug report, please visit:
jvm 1    | #   http://java.sun.com/webapps/bugreport/crash.jsp
jvm 1    | # The crash happened outside the Java Virtual Machine in native code.
jvm 1    | # See problematic frame for where to report the bug.
jvm 1    | #
^Cwrapper  | INT trapped.  Shutting down.
wrapper  | JVM received a signal UNKNOWN (6).
wrapper  | JVM process is gone.
wrapper  | JVM exited unexpectedly while stopping the application.
wrapper  | <-- Wrapper Stopped

The processor is a semi-ancient Pentium III.

$ dmesg |grep ^CPU
CPU: Intel(R) Pentium(R) III Mobile CPU       933MHz (930.24-MHz 686-class CPU)
$ cd lib
$ unzip jbigi.jar libjbigi-freebsd-pentium3.so
Archive:  jbigi.jar
  inflating: libjbigi-freebsd-pentium3.so  
$ cp libjbigi-freebsd-pentium3.so ../libjbigi.so

After putting the pentium3 flavoured jbigi in place, I2P started fine.

$ ./i2prouter console
Running I2P Service...
wrapper  | --> Wrapper Started as Console
wrapper  | Java Service Wrapper Community Edition 32-bit 3.5.11
wrapper  |   Copyright (C) 1999-2011 Tanuki Software, Ltd. All Rights Reserved.
wrapper  |     http://wrapper.tanukisoftware.com
wrapper  | 
wrapper  | Launching a JVM...
jvm 1    | WrapperManager: Initializing...
jvm 1    | Starting I2P 0.8.8-19
jvm 1    | INFO: Native CPUID library jcpuid-x86-freebsd loaded from file
jvm 1    | INFO: Locally optimized native BigInteger library loaded from file
jvm 1    | Sep 20, 2011 8:42:51 PM org.mortbay.http.HttpServer doStart
jvm 1    | INFO: Version Jetty/5.1.15
jvm 1    | Sep 20, 2011 8:42:51 PM org.mortbay.util.FileResource <clinit>
jvm 1    | INFO: Checking Resource aliases
jvm 1    | Adding /home/USER/i2p/lib/i2psnark.jar to classpath for i2psnark
jvm 1    | Sep 20, 2011 8:42:53 PM org.mortbay.util.Container start

Now that it's working:

I2P version: 0.8.8-19
Java version: Oracle Corporation 1.7.0 (OpenJDK Runtime Environment 1.7.0-root_2011_01_14_19_13-b00)
Platform: FreeBSD i386 8.2-RELEASE
Processor: Pentium III (130 nm) (pentiumm)
Jbigi: Locally optimized native BigInteger library loaded from file
Encoding: US-ASCII

Subtickets

Change History (6)

comment:1 Changed 8 years ago by zzz

Owner: set to hottuna
Status: newassigned

Let's see if we can get hottuna to look at this. In the meantime, attaching or pasting the output of cat /proc/cpuinfo may help him identify what flags got detected incorrectly.

comment:2 Changed 8 years ago by killyourtv

Hopefully these will suffice (apparently there's no /proc/cpuinfo in *BSD).

In dmesg:

CPU: Intel(R) Pentium(R) III Mobile CPU       933MHz (930.24-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x6b1  Family = 6  Model = b  Stepping = 1
  Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>

Using the Linux compatibility layer:

# kldload linux
# mount  -t linprocfs linprocfs /compat/linux/proc
# cat /compat/linux/proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Pentium(R) III Mobile CPU       933MHz
stepping        : 1
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr xmm
cpu MHz         : 930.24
bogomips        : 930.24

comment:3 Changed 8 years ago by killyourtv

For completeness, when removing */*jbigi*

jvm 2    | Starting I2P 0.8.8-19
jvm 2    | INFO: Native CPUID library jcpuid-x86-freebsd loaded from file
jvm 2    | INFO: Resource name [libjbigi-freebsd-pentiumm.so] was not found
jvm 2    | INFO: Resource name [libjbigi-freebsd-pentium3.so] was not found
jvm 2    | INFO: Resource name [libjbigi-freebsd-none.so] was not found
jvm 2    | WARNING: Native BigInteger library jbigi not loaded - using pure Java - poor performance may result - see http://www.i2p2.i2p/jbigi for help

comment:4 Changed 8 years ago by zzz

Component: unspecifiedapi/general

output of this please:

java -cp $I2P/lib/i2p.jar -Djava.library.path=/path/to/dir/containing/libjcpuid.so freenet.support.CPUInformation.CPUID

comment:5 Changed 8 years ago by killyourtv

**CPUInfo**
CPU Vendor: GenuineIntel
CPU Family: 6
CPU Model: 11
CPU Stepping: 1
CPU Flags: 0x383f9ff
 **More CPUInfo**
 CPU model string: Pentium III (130 nm)
 CPU has MMX: true
 CPU has SSE: true
 CPU has SSE2: false
 CPU has SSE3: true
 CPU has SSE4.1: false
 CPU has SSE4.2: false
 CPU has SSE4A: false
  **Intel-info**
  Is pII-compatible: true
  Is pIII-compatible: true
  Is pIV-compatible: false
  Is atom-compatible: false
  Is core2-compatible: false
  Is corei-compatible: false

comment:6 Changed 8 years ago by killyourtv

Resolution: fixed
Status: assignedclosed

Fixed by hottuna in 88c3cbe3cadf07b99da67461a5fcd70af29cdad8

/me is happy

Closing.

Note: See TracTickets for help on using tickets.