agora inbox for pljava-dev@postgresql.org  
help / color / mirror / Atom feed
[Pljava-dev] JVM crash in latest cvs on 7.4.7 implementating ResultSetProvider
4+ messages / 0 participants
[nested] [flat]

* [Pljava-dev] JVM crash in latest cvs on 7.4.7 implementating ResultSetProvider
@ 2005-03-10 08:50  
  0 siblings, 1 reply; 4+ messages in thread

From:  @ 2005-03-10 08:50 UTC (permalink / raw)

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?

Thanks,
Stephen

#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  SIGSEGV (0xb) at pc=0x081f7dac, pid=29055, tid=1077993600
#
# Java VM: Java HotSpot(TM) Server VM (1.5.0_01-b08 mixed mode)
# Problematic frame:
# C  [postgres: crow elab [local] SELECT+0x1afdac]  pfree+0xc
#
# An error report file with more information is saved as hs_err_pid29055.log
#

Log attached.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hs_err_pid29055.log
Type: application/octet-stream
Size: 13638 bytes
Desc: not available
URL: <http://lists.pgfoundry.org/pipermail/pljava-dev/attachments/20050310/bec767e7/attachment.obj;



^ permalink  raw  reply  [nested|flat] 4+ messages in thread

* [Pljava-dev] JVM crash in latest cvs on 7.4.7 implementating ResultSetProvider
@ 2005-03-10 12:14  
  parent: 
  0 siblings, 1 reply; 4+ messages in thread

From:  @ 2005-03-10 12:14 UTC (permalink / raw)

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 <the pid>

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





^ permalink  raw  reply  [nested|flat] 4+ messages in thread

* [Pljava-dev] JVM crash in latest cvs on 7.4.7 implementating ResultSetProvider
@ 2005-03-10 21:47  
  parent: 
  0 siblings, 1 reply; 4+ messages in thread

From:  @ 2005-03-10 21:47 UTC (permalink / raw)

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
<thhal at mailblocks.com> 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 <the pid>
> 
> 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
> 
>




^ permalink  raw  reply  [nested|flat] 4+ messages in thread

* [Pljava-dev] JVM crash in latest cvs on 7.4.7 implementating ResultSetProvider
@ 2005-03-11 00:54  
  parent: 
  0 siblings, 0 replies; 4+ messages in thread

From:  @ 2005-03-11 00:54 UTC (permalink / raw)

I 'fixed' the bug by commenting out the pfree(args) call in Function.c line 605.

Is this call supposed to be here? I'm not sure if I am leaking memory
now or not.

--Stephen


On Thu, 10 Mar 2005 15:47:15 -0600, Stephen Crowley
<stephen.crowley at gmail.com> wrote:
> 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
> <thhal at mailblocks.com> 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 <the pid>
> >
> > 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
> >
> >
>




^ permalink  raw  reply  [nested|flat] 4+ messages in thread


end of thread, other threads:[~2005-03-11 00:54 UTC | newest]

Thread overview: 4+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2005-03-10 08:50 [Pljava-dev] JVM crash in latest cvs on 7.4.7 implementating ResultSetProvider 
2005-03-10 12:14 ` 
2005-03-10 21:47   ` 
2005-03-11 00:54     ` 

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox