Subject: | Sybase::BLK reports success when no space available in DB |
Using Sybase::BLK module to perform BCP in, received the following error(s) on stderr:
Message String: Can't allocate space for object 'PORT_GDW' in database 'krm_nzl' because 'default' segment is full/has no free extents. If you ran out of space in syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase size of the segment.
Sybase::BLK reports the row(s) which triggered this error message as being successfully BCP'ed (i.e. they are included in $total_commit). However they weren't committed to the database, and there is no apparent mechanism to detect the error condition.
Apologies for not providing a test case, it's difficult to do so as you need a database with insufficient space to reproduce the problem.
OS details (uname -a):
SunOS tdevs183 5.8 Generic_117350-05 sun4u sparc SUNW,Netra-T12
Perl details (perl -V):
Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
Platform:
osname=solaris, osvers=2.8, archname=sun4-solaris
uname='sunos tdevs183 5.8 generic_117350-05 sun4u sparc sunw,netra-t12 '
config_args='-f /vobs/kalm/thirdparty/perl/5.8.6/config.sh -d -e'
hint=previous, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-I/usr/local/include -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccversion='WorkShop Compilers 4.2 30 Oct 1996 C 4.2', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/lib -L/usr/ccs/lib -L/opt2/SUNWspro/SC4.2/lib -L/usr/local/lib '
libpth=/usr/lib /usr/ccs/lib /opt2/SUNWspro/SC4.2/lib /usr/local/lib
libs=-lsocket -lnsl -ldl -lm -lc
perllibs=-lsocket -lnsl -ldl -lm -lc
libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -R /opt/kalm/perl/5.8.6/lib/5.8.6/sun4-solaris/CORE'
cccdlflags='-KPIC', lddlflags='-G -L/usr/lib -L/usr/ccs/lib -L/opt2/SUNWspro/SC4.2/lib -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Built under solaris
Compiled at May 25 2005 13:55:21
%ENV:
PERL5LIB="/opt/kalm/lib:/home/dpitt/perl5/lib/site_perl:/home/dpitt/perl5/lib/perl5/site_perl"
@INC:
/opt/kalm/lib
/home/dpitt/perl5/lib/site_perl/5.8.6/sun4-solaris
/home/dpitt/perl5/lib/site_perl/5.8.6
/home/dpitt/perl5/lib/site_perl
/home/dpitt/perl5/lib/perl5/site_perl
/opt/kalm/perl/5.8.6/lib/5.8.6/sun4-solaris
/opt/kalm/perl/5.8.6/lib/5.8.6
/opt/kalm/perl/5.8.6/lib/site_perl/5.8.6/sun4-solaris
/opt/kalm/perl/5.8.6/lib/site_perl/5.8.6
/opt/kalm/perl/5.8.6/lib/site_perl
.
Sybase details (client, I believe server is 12.5.0):
SYBASE=/sybase/products/oc11.1.1
SYBASE_OCS=