Sorry - here is the full trace....

# PREPARE:  insert into dbd_ix_udts values (?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ? )
ok 8
signal ABRT (Abort) in _libc_kill at 0xff21fba0
0xff21fba0: _libc_kill+0x0008:  bgeu    _libc_kill+0x30
(/workshop/6.2/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where           
=>[1] _libc_kill(0x0, 0x6, 0x34f9f8, 0xff24284c, 0x20df4, 0x2ad70), at
0xff21fba0
  [2] Perl_my_unexec(0x0, 0x34f9f0, 0xff23c008, 0x50, 0x2234c,
0x144488), at 0x2ad70
  [3] Perl_pp_goto(0x0, 0x127400, 0x127400, 0x15cfc8, 0x164b20, 0x2), at 0xba924
  [4] Perl_pp_dump(0xb99a8, 0x164aa0, 0x0, 0x15cfc8, 0xf8, 0x31f5f8), at 0xb99ac
  [5] Perl_runops_standard(0x127800, 0x127400, 0x127c00, 0x15cfc8,
0x248, 0x93), at 0x84354
  [6] S_call_body(0xffbee520, 0x0, 0x127400, 0x15cfc8, 0x2,
0xffbeee08), at 0x292bc
  [7] Perl_call_sv(0x137984, 0x164a9c, 0x127800, 0x127c00, 0x164a98,
0x12c8ec), at 0x28d24
  [8] Perl_vwarn(0x137984, 0x164a9c, 0x0, 0x124400, 0x0, 0x0), at 0x7519c
  [9] Perl_vwarner(0x29, 0x108d38, 0xffbee6ac, 0xfef97388, 0x7000,
0xa34), at 0x75580
  [10] Perl_warner(0x29, 0x108d38, 0x105b78, 0x10ab08, 0x0, 0x298), at 0x7531c
  [11] Perl_report_uninit(0xff24315c, 0xff24315c, 0x0, 0x42, 0x3700,
0x124400), at 0x8eb0c
  [12] Perl_sv_2pv_flags(0x31f544, 0xffbee8e0, 0x2, 0xff23c008,
0xffbee86c, 0x303a00), at 0x92b64
  [13] Perl_sv_2pv(0x31f544, 0xffbee8e0, 0x0, 0x34f4ae, 0x34f4ac,
0x0), at 0x92118
  [14] dbd_ix_st_bind_ph(0x1, 0x34d328, 0x2, 0x31f544, 0xff0a5b48,
0x127870), at 0xff08dcb8
  [15] dbdxst_bind_params(0x2a1760, 0x34d328, 0xe, 0x10, 0xff0a5b3c,
0xff116a78), at 0xff084b38
  [16] XS_DBD__Informix__st_execute(0x3014bc, 0x272268, 0x0, 0x2e9bf8,
0x400, 0x1272e0), at 0xff0870bc
  [17] XS_DBI_dispatch(0x2e9c30, 0xffbeecac, 0x272268, 0x2a1760,
0x28e004, 0x274e80), at 0xff11dadc
  [18] Perl_pp_entersub(0x125000, 0x80, 0x127800, 0x0, 0x2e9c30,
0x2e9bfc), at 0x8d104
  [19] Perl_runops_standard(0x127800, 0x0, 0xffbeee0c, 0x12e6cc,
0x127800, 0x2a9c78), at 0x84354
  [20] S_run_body(0x1, 0x0, 0x127464, 0x3b, 0x0, 0x127e1c), at 0x287c4
  [21] perl_run(0x127f28, 0xfffffffc, 0x4, 0xffbeef44, 0x1, 0x2), at 0x283cc
  [22] main(0x4, 0xffbeef44, 0xffbeef58, 0x127278, 0x0, 0x0), at 0x24fa4
(/workshop/6.2/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) 

This was obtained with Sun's dbx, run using:

dbx $(which perl)

then

run -I./blib/arch -I./blib/lib t/t91udts.t

The PREPARE statement is test output (previous statement, I think -
this one is an execute).  This has the full stack up to main which the
previous stack traceback was missing.


On Wed, 15 Dec 2004 01:00:38 +0000, Tim Bunce <[EMAIL PROTECTED]> wrote:
> On Tue, Dec 14, 2004 at 02:13:17PM -0800, Jonathan Leffler wrote:
> > On Fri, 3 Dec 2004 20:54:00 +0000, Tim Bunce <[EMAIL PROTECTED]> wrote:
> > > On Fri, Dec 03, 2004 at 12:15:06PM -0800, Jonathan Leffler wrote:
> > > >
> > > > Use of uninitialized value in subroutine entry at t/t91udts.t line 97.
> > > >
> > > > $sth->execute(2, undef, undef, ..., undef) or stmt_fail;
> > >
> > > That part is fine. It's something 'deeper' that triggering the
> > > warning.  Probably in the driver. Perl says "in subroutine entry"
> > > only because that's the last "op" that perl executed (before it
> > > entered the DBI C-code).
> > >
> > > Here's a trick to nail it:
> > >     $SIG{__WARN__} = sub { dump() }; # core dump on warning
> >
> > OK, the core dump winds through a number of functions (recognizably
> > Perl or C library functions), but ends up going through:
> >
> > ...more...
> 
> I need to see more of the "...more..." - everything up to the point
> where you can see the warn being triggered.
> 
> > Perl_magic_set()
> > Perl_newHVhv()
> > dbd_ix_st_bind_ph() -- DBD::Informix code.
> > dbdxst_bind_params() -- DBI code?
> > XS_DBD__Informix__st_execute() -- Interface C code for $sth->execute()?
> > XS_DBI_dispatch() -- DBI code
> > Perl_magic_nextpack()
> > Perl_fbm_instr()
> > ...more...
> 
> That's an odd looking stack trace. magic_nextpack is involved in
> iterating through tied hashes, calling "FIRSTKEY" or "NEXTKEY".
> But there's no way Perl_magic_nextpack should trigger a direct
> DBI dispatch into execute().
> 
> Perhaps you've "helpfully" limited the detail here. If so, please
> don't.  Give me the whole stack trace.
> 
> (And using a perl configured with -DDEBUGGING and a DBI and
> DBD::Informix built with that perl will give more detail,
> like params to functions, in the stack trace.)
> 
> > Has anything changed significantly in the binding of parameters since,
> > say, DBI 1.14?  Short guidance appreciated - I'll be investigating
> > anyway, but help on where to look might make things easier.
> 
> Er, DBI 1.14 is over 4 years old. It would be fair to say that much
> has changed. Feel free to binary-chop your way through the versions
> to isolate the first that displays the warning.

OK - let's take DBI 1.00 instead then :-)

I'll try and isolate the problem better too.


-- 
Jonathan Leffler <[EMAIL PROTECTED]>  #include <disclaimer.h>
Guardian of DBD::Informix - v2003.04 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."

Reply via email to