Bug 474256

Summary: java-1.6.0-openjdk-plugin and home banking: almost there!
Product: [Fedora] Fedora Reporter: Marcos Martins da Silva <marcosmds>
Component: java-1.6.0-openjdkAssignee: Deepak Bhole <dbhole>
Status: CLOSED CANTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: low    
Version: 10CC: dbhole, ehabkost, fcdanilo, langel, lkundrak, marioitalo, mjw, peter.senna
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-01-22 19:07:28 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
the debug log generated a you requested
none
/tmp/java.stdout
none
/tmp/java.stderr
none
/tmp/tcx/vxarsf1132704686.phx none

Description Marcos Martins da Silva 2008-12-03 00:18:57 UTC
Description of problem: Until Fedora 9 I had to use Sun's Java for home banking. As I use x86_64 version. I also had to install firefox.i386. Fedora 10 was quantum leap, since now I can use home banking almost perfectly. My bank is Banco do Brasil and its home banking site is https://www2.bancobrasil.com.br/aapf/login.jsp?aapf.IDH=sim . As you can see the java applet is a virtual keyboard where I type my password. As additional protection they restrict access to specific computers. I think it is MAC address based, as Fedora upgrade or even change the disk does not demand a new enrollment as changing my network card does. After typing my password on virtual keyboard I get access to the home banking web service, but the site alerts it can not identify my computer. I can see my account but my financial transactions are restricted to a lower value (money) than when my computer is correctly identified by the site. The site yield some diagnostic information that may be useful. It follows the original text and a translation to English:
Versão do Java: 1.6.0_0 (Sun Microsystems Inc.)
Sistema Operacional: Linux
Recuperando parâmetros da applet: PASSOU
Criando diretório: PASSOU
Gravando: PASSOU
Identificando computador: NÃO PASSOU > UnsatisfiedLinkError >a.a(Ljava/lang/String;)Ljava/lang/String;

Java Version: 1.6.0_0 (Sun Microsystems Inc.)
Operational System: Linux
Recovering parameters from applet: OK
Creating directory: OK
Recording: OK
Identifying computer: FAILED > UnsatisfiedLinkError >a.a(Ljava/lang/String;)Ljava/lang/String;

If I correctly understood, they get some parameters from applet, create a folder (under /tmp, as I could verify), try to write in this folder and when trying to identify my computer it fails.


Version-Release number of selected component (if applicable):

firefox-3.0.4-1.fc10.x86_64
java-1.6.0-openjdk-plugin-1.6.0.0-6.b12.fc10.x86_64
java-1.6.0-openjdk-1.6.0.0-6.b12.fc10.x86_64
uname -a: Linux griffyndor 2.6.27.5-117.fc10.x86_64 #1 SMP Tue Nov 18 11:58:53 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
How reproducible:
Always

Steps to Reproduce:
1.Run Firefox
2.Access Banco do Brasil's website
3. Type my password on virtual keyboard
  
Actual results:
I can navigate on home banking site and make several financial transactions but with restricted financial value limit.

Expected results:
I can navigate on home banking site and make all financial transactions with normal limits


Additional info:
Fedora is a great work that grows better each release. I hope this report can help you to help me and others in similar situation.

Comment 1 Deepak Bhole 2008-12-12 20:08:18 UTC
Can you try it again. This time, start firefox from a terminal as follows:

ICEDTEAPLUGIN_DEBUG=true firefox

and then attach the resulting log, and /tmp/java.stderr and /tmp/java.stdout files to the bug?

Please also scan the files before attaching to make sure there is no personal info in the logs. The logs might shows the root cause the error.

Comment 2 Marcos Martins da Silva 2008-12-13 19:04:59 UTC
Created attachment 326833 [details]
the debug log generated a you requested

Comment 3 Marcos Martins da Silva 2008-12-13 19:06:44 UTC
Thanks for your answer. The log you have requested is attached as java.log.
Just for your information, I installed a standalone firefox 32bit and Sun's
Java both on /opt folder that I use just for home banking and that's OK, so I
can assure you there is no other serious problem with my setup (firewall,
router, etc). Alternative -- config java remains pointing to defaul (openjdk).
I'm not a java programmer but, reading the logs attached, this part
(java.stderr) seems interesting:

Waiting for data...
Consumer thread 0 woken...
Consumer thread 0 consuming context 0 reference 2 src
https://www2.bancobrasil.c
om.br CallMethod 1640 33 
Breakdown -- type: context identifier: 0 reference: 2 src:
https://www2.bancobra
sil.com.br privileges: null rest: "CallMethod 1640 33"
Sending to PASC: 0/2 and CallMethod 1640 33
0 -- https://www2.bancobrasil.com.br -- 2 -- CallMethod 1640 33 CONTEXT=
sun.app
let.PluginAppletSecurityContext@21743ff4
Calling method public int java.lang.reflect.Field.getModifiers() on object
publi
c static final int java.awt.image.ImageObserver.ERROR with
[Ljava.lang.Object;@6
7291479
Calling public int java.lang.reflect.Field.getModifiers() on public static
final
 int java.awt.image.ImageObserver.ERROR with  CallMethod 1640 33 and that
return
ed: 25 of type class java.lang.Integer

Comment 4 Marcos Martins da Silva 2008-12-13 19:08:32 UTC
Created attachment 326834 [details]
/tmp/java.stdout

Comment 5 Marcos Martins da Silva 2008-12-13 19:12:11 UTC
Created attachment 326835 [details]
/tmp/java.stderr

Comment 6 Marcos Martins da Silva 2008-12-13 19:17:53 UTC
Created attachment 326837 [details]
/tmp/tcx/vxarsf1132704686.phx

I don't know if that's useful but that is a little file that is generated when I use the homebanking.

Comment 7 Marcos Martins da Silva 2008-12-16 00:24:55 UTC
Hi all! I think I got a clue. I have just installed Sun's Java 64 bit since this last version has a native 64 bit plugin: http://www.java.net/download/jdk6/6u12/promoted/b02/binaries/jre-6u12-ea-bin-b02-linux-amd64-08_dec_2008.bin .
The new plugin is not jre/plugin/i386/ns7/libjavaplugin_oji.so it is jre/lib/amd64/libnpjp2.so. So after make the symbolic link to this last one, firefox runs Sun's java with no problem just as openjdk, except my home banking site. Sun's java return's the same problem I reported earlier about openjdk: 
Identifying computer: FAILED > UnsatisfiedLinkError>a.a(Ljava/lang/String;)Ljava/lang/String;

So I think the problem is more related to 64 bit java itself than the java provider (Sun or openjdk). I will try to setup another computer with fedora 10, firefox and openjdk (all 32 bit), test and report back.
Thanks for your attention!

Comment 8 Deepak Bhole 2008-12-16 16:43:18 UTC
Doh! I suspected that, but I was hoping it wasn't the cause here. 

There is a similar issue with WebEX and some other applets. The problem is that some applets rely on a .so file to do part of the work. Since Sun only provided 32-bit plugins until now, the .so is in ELF32 format. And since the IcedTea plugin is native 64-bit, the .so cannot be loaded by the vm, and the applet fails.

Let me know how the 32-bit VM test turns out. If it works fine with 32-bit, then that is almost certainly the issue, and nothing can be done on the VM side.

Comment 9 Marcos Martins da Silva 2008-12-16 22:49:06 UTC
Openjdk 32-bit runs my home banking applet with no problem. The problem appears only with 64-bit version. What puzzles me is that even Sun's 64 bit plugin presents the same problem! Could that line I reported (UnsatisfiedLinkError>a.a(Ljava/lang/String;)Ljava/lang/String;) be a clue to the .so you have mentioned?

Comment 10 Deepak Bhole 2009-01-22 19:07:28 UTC
Went through all of the logs again, you're right, it is that unsatisfied link error that is the problem. STDOUT also shows this:

Aviso: UnsatisfiedLinkError ao executar

An UnsatisfiedLinkError implies that Java was unable to find the definition of a native method -- which would be the cause if it tried to load an ELF32 library. Unfortunately, there is no solution to this on the JDK side. The website in question needs to send a 64-bit .so for it to work... I am going to close this as CANTFIX. Feel free to re-open if you encounter another error on 32-bit!

Comment 11 peter.senna 2009-05-05 19:49:41 UTC
Lets push Banco do Brasil to fix this. Send a message to them. The path to send message is: "Log in" -> "Minhas Mensagens" -> "Solicitação" -> 

Solicito que o sistema de cadastramento e identificação de computadores do Banco do Brasil seja atualizado para ser compatível com o sistema operacional Linux na arquitetura 64 bits. Hoje o teclado virtual funciona nesta configuração mas a identificação de computadores não. Veja: https://bugzilla.redhat.com/show_bug.cgi?id=474256. Este bug foi fechado porque não há nada de errado com o navegador, nada de errado com o JRE nem com o Linux. O problema é que não há previsão do aplicativo do Banco do Brasil para ser usado por jre de 64 bits.

-> Fill with your E-mail -> "Enviar"