From: stephen.crowley at gmail.com (Stephen Crowley) Date: Thu, 10 Mar 2005 15:47:15 -0600 Subject: [Pljava-dev] JVM crash in latest cvs on 7.4.7 implementating ResultSetProvider In-Reply-To: <42303A12.6030201@mailblocks.com> References: <3f71fdf10503100050360ea179@mail.gmail.com> <42303A12.6030201@mailblocks.com> Message-ID: <3f71fdf1050310134768d22fab@mail.gmail.com> Go it. I'll see if I can track down what's happening. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1077993600 (LWP 1501)] 0x081f7dac in pfree () (gdb) bt #0 0x081f7dac in pfree () #1 0x4169c0bb in Function_invoke (self=0x6b02fa18, env=0x8319cec, fcinfo=0xbfffe790) at /home/crow/cvs/org.postgresql.pljava/src/C/pljava/Function.c:605 #2 0x41699b2e in internalCallHandler (trusted=1 '\001', fcinfo=0xbfffe790) at /home/crow/cvs/org.postgresql.pljava/src/C/pljava/Backend.c:909 #3 0x41699989 in java_call_handler (fcinfo=0xbfffe790) at /home/crow/cvs/org.postgresql.pljava/src/C/pljava/Backend.c:860 #4 0x0810c1d8 in ExecMakeFunctionResult () #5 0x0810df1a in ExecEvalExpr () #6 0x0810ec64 in ExecCleanTargetListLength () #7 0x0810eeca in ExecProject () #8 0x08116d65 in ExecResult () #9 0x0810add5 in ExecProcNode () #10 0x0810975c in ExecEndPlan () #11 0x08108b38 in ExecutorRun () #12 0x08180553 in PortalRun () #13 0x0818030f in PortalRun () #14 0x0817cb54 in pg_plan_queries () #15 0x0817f0c0 in PostgresMain () #16 0x08158c5b in ClosePostmasterPorts () #17 0x08158643 in ClosePostmasterPorts () #18 0x08156b48 in PostmasterMain () #19 0x081561d9 in PostmasterMain () #20 0x08126176 in main () On Thu, 10 Mar 2005 13:14:10 +0100, Thomas Hallgren wrote: > 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 > >