> >> I had to fix my patch because I didn't take care the backend id. Right
> >> now, it only looks at backend 0. Not sure this is a sensible thing to
> >> do, but it would be easy to fix if it's not.
> >
> > Can you be more specific?
> >
>
> Sure. In the function processes_reporting() (file
> pool_process_reporting.c), there is this code:
>
> for (pool = 0; pool < pool_config->max_pool; pool++)
> {
> poolBE = pool*MAX_NUM_BACKENDS;
>
> pool is multiplied by MAX_NUM_BACKENDS to get the right pool id for the
> backend 0. If I didn't use this operation, I would access pool of
> inexisting backends.
poolBE = pool*MAX_NUM_BACKENDS points to info for backend 0.
poolBE+1 points to info for backend 1. So you would want to have inner
loop something like:
for (i = 0; i< NUM_BACKENDS;i++)
poolBE = pool*MAX_NUM_BACKENDS + i;
Or you could use pool_coninfo_pid(proc_id, pool, i) to get the pointer
to ConnectionInfo structure. See around line 474 in pcp_child.c for
example.
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp
_______________________________________________
Pgpool-hackers mailing list
[email protected]
http://pgfoundry.org/mailman/listinfo/pgpool-hackers