Обсуждение: ERROR: Can't use an undefined value as an ARRAY reference at /usr/lib/perl5/site_perl/5.8.8/Test/Parser/Dbt2.pm line 521.

Поиск
Список
Период
Сортировка
Hi All,
 
I am getting following error while conducting DBT2 tests on PostgreSQL.There is no error on driver side as such. After completion of test it is giving problem in generating reports scripts:
Please find the error below:

waiting for server to shut down.... done
server stopped
server starting
DBT-2 test for pgsql started...

DATABASE SYSTEM: localhost
DATABASE NAME: dbt2
DATABASE CONNECTIONS: 1
TERMINAL THREADS: 10
TERMINALS PER WAREHOUSE: 10
WAREHOUSES PER THREAD/CLIENT PAIR: 500
SCALE FACTOR (WAREHOUSES): 1
DURATION OF TEST (in sec): 60
1 client stared every 1000 millisecond(s)

Stage 1. Starting up client...
Sleeping 501 seconds
collecting database statistics...

Stage 2. Starting up driver...
1000 threads started per millisecond
estimated rampup time: Sleeping 5010 seconds
estimated rampup time has elapsed
estimated steady state time: Sleeping 60 seconds

Stage 3. Processing of results...
Killing client...
./dbt2-run-workload: line 514: 23758 Terminated              dbt2-client ${CLIENT_COMMAND_ARGS} -p ${PORT} -o ${CDIR} >${CLIENT_OUTPUT_DIR}/`hostname`/client-${SEG}.out 2>&1
waiting for server to shut down.... done
server stopped
Can't use an undefined value as an ARRAY reference at /usr/lib/perl5/site_perl/5.8.8/Test/Parser/Dbt2.pm line 521.

Can someone please give inputs to resolve this issue? Any help on this will be appreciated.

Thanks in advance.

Thanks,
Rohan
> Can't use an undefined value as an ARRAY reference at
> /usr/lib/perl5/site_perl/5.8.8/Test/Parser/Dbt2.pm line 521.
>
> Can someone please give inputs to resolve this issue? Any help on this will
> be appreciated.

519 sub transactions {
520     my $self = shift;
521     return @{$self->{data}->{transactions}->{transaction}};
522 }

the stuff in $self->{data}->{transactions}->{transaction} is not defined
so it cannot be dereferenced. If you want to just escape this error you
may modify the code as:

if ($self->{data}->{transactions}->{transaction}) {
return @{$self->{data}->{transactions}->{transaction}};
} else {
   return ();
}

however understanding the root cause is recommended.

>
> Thanks in advance.
>
> Thanks,
> Rohan
>