Re: [HACKERS] Re: SIGBUS in AllocSetAlloc & jdbc - Mailing list pgsql-hackers
| From | Tatsuo Ishii | 
|---|---|
| Subject | Re: [HACKERS] Re: SIGBUS in AllocSetAlloc & jdbc | 
| Date | |
| Msg-id | 199905021251.VAA00445@ext16.sra.co.jp Whole thread Raw  | 
		
| In response to | Re: SIGBUS in AllocSetAlloc & jdbc (Peter T Mount <peter@retep.org.uk>) | 
| Responses | 
                	
            		Re: [HACKERS] Re: SIGBUS in AllocSetAlloc & jdbc
            		
            		 Re: [HACKERS] Re: SIGBUS in AllocSetAlloc & jdbc  | 
		
| List | pgsql-hackers | 
> On Thu, 29 Apr 1999, Brian P Millett wrote:
> 
> > Peter, I hope this long and boring message can shed some light on my
> > difficulties getting jdbc & postgres6.5b1(current snapshot) to work
> > with blobs.  I have NO problem with text, numeric, etc.  Just blobs &
> > the LO interface.
> > 
> > I feel that it is a 64 vs 32 bit memory management problem.
> 
> At first glance, the JDBC code looks ok. In fact it is similar to the
> ImageViewer example that's included with the source.
> 
> Do you get the same problem when using ImageViewer?
> 
> >      // Getting the value of the item_picture column and
> >      // displaying it
> >      System.err.println("Got oid "+queryResults.getInt(2));
> >      byte itemPictureArray [] = queryResults.getBytes(2);
> >      if (itemPictureArray != null) {
> >       Image img =
> > Toolkit.getDefaultToolkit().createImage(itemPictureArray);
> >       itemPictureCanvas.setImage(img);
> >       itemPictureCanvas.repaint();
> >      }
> 
> Using an array is perfectly valid, and the driver does support this method
> of getting an Image from a BLOB.
This morning I started to look into this. First, JDBC driver coming
with 6.5b did not compile. The reason was my JDK (JDK 1.1.7 v1 on
LinuxPPC) returns version string as "root:10/14/98-13:50" and
makeVersion expected it started with "1.1". This was easy to fix. So I
went on and tried the ImageViewer sample. It gave me SQL an exception:
java example.ImageViewer jdbc:postgresql:test t-ishii ""
Connecting to Database URL = jdbc:postgresql:test
Exception caught.
java.sql.SQLException: The postgresql.jar file does not contain the correct JDBC classes for this JVM. Try rebuilding.
Exception thrown was java.lang.ClassNotFoundException: postgresql.jdbc2.Connection
java.sql.SQLException: The postgresql.jar file does not contain the correct JDBC classes for this JVM. Try rebuilding.
Exception thrown was java.lang.ClassNotFoundException: postgresql.jdbc2.Connectionat postgresql.Driver.connect(Compiled
Code)atjava.sql.DriverManager.getConnection(Compiled Code)at java.sql.DriverManager.getConnection(Compiled Code)at
example.ImageViewer.<init>(CompiledCode)at example.ImageViewer.main(Compiled Code)
 
I had no idea how to fix this. I gave up to use the 6.5 JDBC driver. I
had to get back to the 6.4 JDBC driver.  This time ImageViewer seemed
to work. I imported 3 images. Worked fine. Then I tried to take a
glance at the first image. I got SIGSEGV on the backend! It happened in
AllocSetAlloc () and seems in the same place as Brian P Millett
mentioned. Next I switched the backend to 6.4.2(+ large object fixes
basically same as 6.5). Worked great!
In summary:
(1) 6.5 ImageViewer + 6.4.2 JDBC driver + 6.5 backend failed
(2) 6.5 ImageViewer + 6.4.2 JDBC driver + 6.4.2 backend worked
So I suspect there is something wrong with the 6.5 backend. I'll look
into this more.
P.S.  Peter, do you have any suggestion to make JDBC driver under JDK
1.1.7?
---
Tatsuo Ishii
		
	pgsql-hackers by date: