Re: Occasional SIGSEGV passing lists of ints to Java int[] - not JCC's fault

2009-02-16 Thread Andi Vajda
On Feb 16, 2009, at 11:13, Aaron Lav wrote: On Fri, Feb 06, 2009 at 07:58:31PM -0500, Aaron Lav wrote: I've also tried modifying the output testjcc.c so it doesn't contain the lines from INSTALL_TYPE(JObject,module) ... to '__install__(module);', and it still seems to crash. At this poin

Re: Occasional SIGSEGV passing lists of ints to Java int[] - not JCC's fault

2009-02-16 Thread Aaron Lav
On Fri, Feb 06, 2009 at 07:58:31PM -0500, Aaron Lav wrote: > I've also tried modifying the output testjcc.c so it doesn't > contain the lines from INSTALL_TYPE(JObject,module) ... to > '__install__(module);', and it still seems to crash. At this point, the > amount of JCC > code running is reall

Re: Occasional SIGSEGV passing lists of ints to Java int[]

2009-02-06 Thread Bill Janssen
I've seen crashes like this, where the Java heap has taken all of the space. Python tries to get a bit for its own objects, and fails, and crashes. Bill

Re: Occasional SIGSEGV passing lists of ints to Java int[]

2009-02-06 Thread Aaron Lav
On Fri, Feb 06, 2009 at 01:44:52PM -0800, Andi Vajda wrote: > > It might be time to fiddle with vm args then. > Have you tried -Xrs ? increasing the Java stack (-Xms) ? > Maybe Java is garbage collecting something it shouldn't ? It still crashes with "vmargs="-Xms2G,-Xrs,-Xss2M"" (-Xms increases

Re: Occasional SIGSEGV passing lists of ints to Java int[]

2009-02-06 Thread Andi Vajda
On Fri, 6 Feb 2009, Aaron Lav wrote: On Fri, Feb 06, 2009 at 11:50:14AM -0800, Andi Vajda wrote: Ok, so keeping these commented out, how much can you comment out of the actual initVM() defined in jcc.cpp until it no longer crashes ? Unfortunately, if I add Py_INCREF(Py_None); return P

Re: Occasional SIGSEGV passing lists of ints to Java int[]

2009-02-06 Thread Aaron Lav
On Fri, Feb 06, 2009 at 11:50:14AM -0800, Andi Vajda wrote: > > Ok, so keeping these commented out, how much can you comment out of the > actual initVM() defined in jcc.cpp until it no longer crashes ? Unfortunately, if I add Py_INCREF(Py_None); return Py_None; just before if (JNI_C

Re: Occasional SIGSEGV passing lists of ints to Java int[]

2009-02-06 Thread Andi Vajda
On Feb 6, 2009, at 11:19, Aaron Lav wrote: On Fri, Feb 06, 2009 at 11:07:24AM -0800, Andi Vajda wrote: On Fri, 6 Feb 2009, Aaron Lav wrote: Does it crash if you don't call initVM() ? No, the call to _testjcc.initVM(...) seems to be required to make it crash. There are two pieces to ini

Re: Occasional SIGSEGV passing lists of ints to Java int[]

2009-02-06 Thread Aaron Lav
On Fri, Feb 06, 2009 at 11:07:24AM -0800, Andi Vajda wrote: > > On Fri, 6 Feb 2009, Aaron Lav wrote: > >>> Does it crash if you don't call initVM() ? >> >> No, the call to _testjcc.initVM(...) seems to be required to >> make it crash. > > There are two pieces to initVM(): > - initVM() proper (def

Re: Occasional SIGSEGV passing lists of ints to Java int[]

2009-02-06 Thread Andi Vajda
On Fri, 6 Feb 2009, Aaron Lav wrote: Does it crash if you don't call initVM() ? No, the call to _testjcc.initVM(...) seems to be required to make it crash. There are two pieces to initVM(): - initVM() proper (defined in jcc.cpp) - initializing your classes The initVM() that is called f

Re: Occasional SIGSEGV passing lists of ints to Java int[]

2009-02-06 Thread Aaron Lav
On Fri, Feb 06, 2009 at 10:44:56AM -0800, Andi Vajda wrote: > > On Feb 6, 2009, at 10:07, Aaron Lav wrote: > >> On Thu, Feb 05, 2009 at 02:45:21PM -0500, Aaron Lav wrote: >>> >>> >> (apologies for the broken threading. I don't seem to be >> getting email from this list: I've tried resubscribing.)

Re: Occasional SIGSEGV passing lists of ints to Java int[]s

2009-02-06 Thread Andi Vajda
On Feb 6, 2009, at 10:07, Aaron Lav wrote: On Thu, Feb 05, 2009 at 02:45:21PM -0500, Aaron Lav wrote: (apologies for the broken threading. I don't seem to be getting email from this list: I've tried resubscribing.) Have you tried moving things around, like creating the arrays differen

Re: Occasional SIGSEGV passing lists of ints to Java int[]s

2009-02-06 Thread Aaron Lav
On Thu, Feb 05, 2009 at 02:45:21PM -0500, Aaron Lav wrote: > > (apologies for the broken threading. I don't seem to be getting email from this list: I've tried resubscribing.) > Have you tried moving things around, like creating the arrays differently ? For example: a = list(xrange(count)) ins

Re: Occasional SIGSEGV passing lists of ints to Java int[]s

2009-02-05 Thread Andi Vajda
On Thu, 5 Feb 2009, Aaron Lav wrote: On Thu, Feb 05, 2009 at 02:45:21PM -0500, Aaron Lav wrote: It seems like there's a bug which sometimes causes passing lists of ints to Java int[]s to generate a SIGSEGV. ... I've noticed that a call to the wrapped functions doesn't seem to be necessary to

Re: Occasional SIGSEGV passing lists of ints to Java int[]s

2009-02-05 Thread Aaron Lav
On Thu, Feb 05, 2009 at 02:45:21PM -0500, Aaron Lav wrote: > It seems like there's a bug which sometimes causes passing lists of > ints to Java int[]s to generate a SIGSEGV. > ... I've noticed that a call to the wrapped functions doesn't seem to be necessary to generate the exception: all that's r

Occasional SIGSEGV passing lists of ints to Java int[]s

2009-02-05 Thread Aaron Lav
It seems like there's a bug which sometimes causes passing lists of ints to Java int[]s to generate a SIGSEGV. The crash occurs in Python's listitem.c while iterating over a list (verified by comparing the RIP reported in the hs_err_pid file against a disassembly). It tries to access a->ob_item[i