Thread: Fastpath error on solaris 2.8 pgsql 7.1.3
Anyone seen this error before? It doesn't happen every time I insert a blob so I assume the code is correct. Only happens occasionaly. I have no idea how to troubleshoot this problem. Any help would be appreciated. FastPath call returned ERROR: lo_write: invalid large obj descriptor (0) I don't know if this is related to JDBC or not but the code I am using to insert the blob is JDBC. t.r. missner level 3 communications
I have exactly the same problem...it happens randomly, it seems. maybe 5% of the time. also happens on selects (lo_read though). the only advice that i've seen on the topic is to make sure that autocommit is set to false, which i've done, but i still see the problem. unfortunately, my next attempt at a fix was going to be to upgrade to 7.1 (i'm currently on 7.0.3 on linux)...but i see that you already use 7.1... sorry i can't help... chris -----Original Message----- From: pgsql-jdbc-owner@postgresql.org [mailto:pgsql-jdbc-owner@postgresql.org]On Behalf Of T.R.Missner@level3.com Sent: Monday, August 27, 2001 11:51 AM To: pgsql-jdbc@postgresql.org Subject: [JDBC] Fastpath error on solaris 2.8 pgsql 7.1.3 Anyone seen this error before? It doesn't happen every time I insert a blob so I assume the code is correct. Only happens occasionaly. I have no idea how to troubleshoot this problem. Any help would be appreciated. FastPath call returned ERROR: lo_write: invalid large obj descriptor (0) I don't know if this is related to JDBC or not but the code I am using to insert the blob is JDBC. t.r. missner level 3 communications ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/users-lounge/docs/faq.html
T.R.Missner@Level3.com writes: > FastPath call returned ERROR: lo_write: invalid large obj descriptor (0) Usually this indicates that you didn't have the lo_open ... lo_write ... lo_close sequence wrapped in a transaction block (BEGIN/COMMIT SQL commands). Since it's erratic for you, I'd bet that some of your application control paths have the BEGIN and some don't. regards, tom lane
Tom, When I say that this problem is erratic, I mean that sometimes a given piece of code works and sometimes it doesn't - not that some pieces work and some don't (don't know if that helps). How is a BEGIN indicated? I get a Connection, grab a Statement from it, and run my query. Do I have to do anything special to tell Fastpath that I am BEGINning a transaction? Thanks chris -----Original Message----- From: pgsql-jdbc-owner@postgresql.org [mailto:pgsql-jdbc-owner@postgresql.org]On Behalf Of Tom Lane Sent: Monday, August 27, 2001 4:43 PM To: T.R.Missner@level3.com Cc: pgsql-jdbc@postgresql.org Subject: Re: [JDBC] Fastpath error on solaris 2.8 pgsql 7.1.3 T.R.Missner@Level3.com writes: > FastPath call returned ERROR: lo_write: invalid large obj descriptor (0) Usually this indicates that you didn't have the lo_open ... lo_write ... lo_close sequence wrapped in a transaction block (BEGIN/COMMIT SQL commands). Since it's erratic for you, I'd bet that some of your application control paths have the BEGIN and some don't. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
So I wanted to thank you. Indeed I did have a thread problem in my application that caused the same connection to be used by more than one thread at time. Thus the occassional problem due to transactions being out of sync. t.r. missner level(3) communications Chris -- you can explicity call myStatement.execute("BEGIN"); and myStatement.execute("COMMIT"); or you can simply use myConnection.setAutoCommit(true); or false when finished. This accomplishes the same thing as BEGIN/COMMIT. -----Original Message----- From: Tom Lane [mailto:tgl@sss.pgh.pa.us] Sent: Monday, August 27, 2001 2:43 PM To: Missner, T. R. Cc: pgsql-jdbc@postgresql.org Subject: Re: [JDBC] Fastpath error on solaris 2.8 pgsql 7.1.3 T.R.Missner@Level3.com writes: > FastPath call returned ERROR: lo_write: invalid large obj descriptor (0) Usually this indicates that you didn't have the lo_open ... lo_write ... lo_close sequence wrapped in a transaction block (BEGIN/COMMIT SQL commands). Since it's erratic for you, I'd bet that some of your application control paths have the BEGIN and some don't. regards, tom lane