From: thhal at mailblocks.com (Thomas Hallgren) Date: Thu, 10 Mar 2005 13:14:10 +0100 Subject: [Pljava-dev] JVM crash in latest cvs on 7.4.7 implementating ResultSetProvider In-Reply-To: <3f71fdf10503100050360ea179@mail.gmail.com> References: <3f71fdf10503100050360ea179@mail.gmail.com> Message-ID: <42303A12.6030201@mailblocks.com> Stephen Crowley wrote: >I'm getting a JVM crash in the latest cvs. > >My function def: > >CREATE FUNCTION elab.getDailyReport(date) > RETURNS SETOF island_daily > AS 'elab.DailyReport.getDailyReport' > LANGUAGE java; > >DailyReport implements ResultSetProvider > >assignRowValues() isn't doing anything out of the ordinary. > >Any ideas? The crash happens after about 50 rows returned. Any tips >on debugging? How can I turn these frame pointers into something >useful? > > Try a make clean and then recompiling PL/Java with -g option, i.e. make PGSQLDIR=<...> CFLAGS=-g or, if you care to debug the binary: make PGSQLDIR=<...> CPPFLAGS=-DPLJAVA_DEBUG=1 CFLAGS=-g The result of the latter compilation will be a binary that goes into a loop the first time PL/Java is initialized. It prints out the pid of the process and asks you to attach a gdb. So you do: gdb /usr/local/pgsql/bin/postgres Then, inside of gdb you set the breakpoints you need and then issue: set pljavaDebug=0 continue this breaks the loop. Hope this helps, Regards Thomas Hallgren