Christopher Browne cbbrowne at ca.afilias.info
Fri Jun 5 14:36:48 PDT 2009
Melvin Davidson <melvin6925 at yahoo.com> writes:
>  CentOS-5.3
>  PostgreSQL 8.3.7                
>  Slony 2.0.2                     
>  It appears that the cleanup_interval parameter is not being read from the slon.conf.            
>  It is my understanding that if a parameter is not specified in the slon command line, it takes it from the slon.conf.   
>  In my slon.conf I have:                 
>  =======================================================                 
>  Title = "slon"                  
>  # Which logfile group...                
>  Logfile = /var/lib/pgsql/slony/slon.log                 
>  cleanup_interval="60 minutes"                   
>  # Only give lines pertaining to the sshd service...             
>  *OnlyService = slon                     
>  *RemoveHeaders                  
>  =======================================================                 
>  My startup command is:                  
>  source $HOME/.bash_profile              
>  slon -d1 -c0 -pslon_mas_1.pid $MAS_CLUSTER "dbname=$REPDB user=$REPLICATIONUSER host=$MASTERHOST port=$PGPORT" > slon.log &     
>  Yet, when I check the slon.log, I see                   
>  2009-05-26 09:32:41 EDT CONFIG main: String option cleanup_interval = 10 minutes        

>  So either the cleanup_interval parameter is not being accepted, or
>  I have misread the documentation. Also, the documentation does not
>  specify the intervals accepted. Ideally, I would like to set this
>  to "24 hours" or "1 day" but I am not sure if that is permissible.

That seems curious.

I'm seeing the values being taken.

chris at dba2:Slony-I/CMD/slony1-2.0/tests> cat /tmp/slony-regress.LXlyM3/slon-conf.1
log_level=2
vac_frequency=2
cleanup_interval="30 seconds"
sync_interval=2010
sync_interval_timeout=15000
sync_group_maxsize=8
sync_max_rowsize=4096
sync_max_largemem=1048576
syslog=1
log_timestamp=true
log_timestamp_format='%Y-%m-%d %H:%M:%S %Z'
pid_file='/tmp/slony-regress.LXlyM3/slon-pid.1'
syslog_facility=LOCAL0
syslog_ident=slon-slony_regress1-1
cluster_name='slony_regress1'
conn_info='dbname=slonyregress1 host=localhost user=chris port=7083'
desired_sync_time=60000
sql_on_connection="SET log_min_duration_statement to '1000';"
lag_interval="2 seconds"

When I run slon against that:

chris at dba2:Slony-I/CMD/slony1-2.0/tests> slon -d1 -c0  -f  /tmp/slony-regress.LXlyM3/slon-conf.1
CONFIG main: slon version 2.0.2 starting up
INFO   slon: watchdog process started
CONFIG slon: watchdog ready - pid = 3950
CONFIG main: Integer option vac_frequency = 2
CONFIG main: Integer option log_level = 2
CONFIG main: Integer option sync_interval = 2010
CONFIG main: Integer option sync_interval_timeout = 15000
CONFIG slon: worker process created - pid = 3951
CONFIG main: Integer option sync_group_maxsize = 8
CONFIG main: Integer option desired_sync_time = 60000
CONFIG main: Integer option syslog = 1
CONFIG main: Integer option quit_sync_provider = 0
CONFIG main: Integer option quit_sync_finalsync = 0
CONFIG main: Integer option sync_max_rowsize = 4096
CONFIG main: Integer option sync_max_largemem = 1048576
CONFIG main: Integer option remote_listen_timeout = 300
CONFIG main: Boolean option log_pid = 0
CONFIG main: Boolean option log_timestamp = 1
CONFIG main: Boolean option cleanup_deletelogs = 0
CONFIG main: Real option real_placeholder = 0.000000
CONFIG main: String option cluster_name = slony_regress1
CONFIG main: String option conn_info = dbname=slonyregress1 host=localhost user=chris port=7083
CONFIG main: String option pid_file = /tmp/slony-regress.LXlyM3/slon-pid.1
CONFIG main: String option log_timestamp_format = %Y-%m-%d %H:%M:%S %Z
CONFIG main: String option archive_dir = [NULL]
CONFIG main: String option sql_on_connection = SET log_min_duration_statement to '1000';
CONFIG main: String option lag_interval = 2 seconds
CONFIG main: String option command_on_logarchive = [NULL]
CONFIG main: String option syslog_facility = LOCAL0
CONFIG main: String option syslog_ident = slon-slony_regress1-1
CONFIG main: String option cleanup_interval = 30 seconds
CONFIG main: local node id = 1
INFO   main: main process started
CONFIG main: launching sched_start_mainloop
CONFIG main: loading current cluster configuration

So I'll not say you didn't see what you did :-), but I'm definitely
not duplicating that.

And while I have some differences in the code tree, none of them are
in the src/slon area so as to be relevant to this.

I would suggest fiddling a bit, making variations in that parameter as
well as in others to ensure that you're not making some mistake such
as referring to the wrong .conf file.  (I know you'd never do that,
but I have once or twice ;-).)

If you fiddle with it a bit, you may "shake loose" whatever it is that
is causing it to be mishandled.

As for the format, the value is used as an SQL interval, so it could
be expressed with the full expressiveness of that data type.

The following is a somewhat pathological example of the possible
interactions.  I don't suggest that the expression shown is a
particularly *GOOD* way to describe an interval consisting of 3 days,
but it does happen to add up...

slonyregress1=# select '1 days 37 hours 598 minutes 3720 seconds'::interval + now() as wacky, now() + '3 days'::interval as regular;
             wacky             |            regular
-------------------------------+-------------------------------
 2009-06-08 21:35:33.792528+00 | 2009-06-08 21:35:33.792528+00
(1 row)
-- 
(reverse (concatenate 'string "ofni.sailifa.ac" "@" "enworbbc"))
<http://dba2.int.libertyrms.com/>
Christopher Browne
(416) 673-4124 (land)
"Bother,"  said Pooh,  "Eeyore, ready  two photon  torpedoes  and lock
phasers on the Heffalump, Piglet, meet me in transporter room three"


More information about the Slony1-general mailing list