Re: [HACKERS] Re: SIGBUS in AllocSetAlloc & jdbc

From: Tatsuo Ishii <t-ishii(at)sra(dot)co(dot)jp>
To: Peter T Mount <peter(at)retep(dot)org(dot)uk>
Cc: Brian P Millett <bpm(at)ec-group(dot)com>, postgres <hackers(at)postgreSQL(dot)org>
Subject: Re: [HACKERS] Re: SIGBUS in AllocSetAlloc & jdbc
Date: 1999-05-02 12:51:20
Message-ID: 199905021251.VAA00445@ext16.sra.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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.Connection
at postgresql.Driver.connect(Compiled Code)
at java.sql.DriverManager.getConnection(Compiled Code)
at java.sql.DriverManager.getConnection(Compiled Code)
at example.ImageViewer.<init>(Compiled Code)
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

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Chris Bitmead 1999-05-02 13:35:08 Re: [HACKERS] It would be nice if this could be fixed...
Previous Message Tom Lane 1999-05-02 05:42:31 Re: [HACKERS] query dumping core