Re: logfile rotation

Поиск
Список
Период
Сортировка
От Andreas Pflug
Тема Re: logfile rotation
Дата
Msg-id 40D4030F.2030407@pse-consulting.de
обсуждение исходный текст
Ответ на Re: logfile rotation  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
Bruce Momjian wrote:

>Actually, this is the current state of this issue.
>  
>

Right, please comment on this. To recall, it uses shared memory for a 
"switch to next logfile name" flag, which can't cause harm in case of 
shmem corruption, and a postmaster opened filehandle (kept open) to a 
dummy file containing the actual file name (pseudo code below).

Regards,
Andreas

>---------------------------------------------------------------------------
>
>Andreas Pflug wrote:
>  
>
>>Tom Lane wrote:
>>
>>    
>>
>>>Andreas Pflug <pgadmin@pse-consulting.de> writes:
>>> 
>>>
>>>      
>>>
>>>>>Answering my own question, the distribution of the current logfile 
>>>>>name could be done trough a file handle.
>>>>>     
>>>>>
>>>>>          
>>>>>
>>> 
>>>
>>>      
>>>
>>>>would you mind commenting on my suggestion so I can continue on that topic?
>>>>   
>>>>
>>>>        
>>>>
>>>There is no portable way to redistribute a file handle.
>>> 
>>>
>>>      
>>>
>>Seems I didn't make clear enough what I mean.
>>
>>I'd fopen a file handle  in the postmaster, and all subsequent processes 
>>will inherit that handle just as they do for stderr; no redistribution 
>>required.
>>The log filename is written to that file when pg_logfile_rotate is called:
>>fseek(fh, 0, SEEK_SET);
>>fprintf(fh, "%s", newlogfilname);
>>fflush();
>>
>>and all subprocesses may retrieve the filename when required by
>>
>>char buf[MAXPGPATH];
>>fseek(fh, 0, SEEK_SET);
>>fread(buf, 1, MAXPGPATH, fh);
>>buf[MAXPGPATH-1]=0; // prevent buffer overflow
>>logfile=fopen(buf, "a+");
>>
>>Regards,
>>Andreas
>>
>>
>>    
>>
>
>  
>




В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Dave Page"
Дата:
Сообщение: Re: Cannot initdb in cvs tip
Следующее
От: Devrim GUNDUZ
Дата:
Сообщение: Compilation failes in CVS tip