[pve-devel] pve api offline during log rotation

Stefan Priebe - Profihost AG s.priebe at profihost.ag
Mon Dec 11 06:58:36 CET 2017


Sorry for the late reply. Is there a chance to get the fix backported to 4.4?

Greets,
Stefan

Excuse my typo sent from my mobile phone.

> Am 09.11.2017 um 13:40 schrieb Stefan Priebe - Profihost AG <s.priebe at profihost.ag>:
> 
> *arg* sorry about that and thanks for resending your last paragraph. Yes
> that's exactly the point.
> 
> Also thanks for the restart and systemctl explanation.
> 
> Greets,
> Stefan
> 
>> Am 09.11.2017 um 13:35 schrieb Thomas Lamprecht:
>> Hi,
>> 
>>> On 11/09/2017 01:08 PM, Stefan Priebe - Profihost AG wrote:
>>> yes that's what i'm talking about. The logfile rotation script DOES a
>>> restart not a reload.
>>> 
>> 
>> No it doesn't do a systemd restart, it's a bit confusing - I know.
>> 
>>> See here:
>>> https://git.proxmox.com/?p=pve-manager.git;a=blob_plain;f=debian/pve.logrotate;hb=HEAD
>>> 
>> 
>> It does a `pveproxy restart`, which _is_ a real graceful "fast" restart,
>> not to be confused with `systemctl restart pveproxy` which does a full
>> stop first, and then a full new startup again.
>> 
>> `systemctl reload pveproxy` does the exact same as the logrotation, see:
>> 
>> https://git.proxmox.com/?p=pve-manager.git;a=blob_plain;f=bin/init.d/pveproxy.service
>> 
>> Thus the problem is not this but the one I described in the last paragraph
>> from my last answer:
>> 
>>> On 11/09/2017 11:03 AM, Thomas Lamprecht wrote:
>>> 
>>> We do a re-exec on "ourself" (from the daemons POV), and the intend is to
>>> leave non-idle child workers untouched, but the logic doing this is a bit
>>> flawed as all current worker child always receive a TERM signal.
>>> Here the HTTP server worker wait at least for active connection to end,
>>> but new ones do not get accepted. We directly restart after that, but yes,
>>> depending on load there can be a time window where no one is there to
>>> accept connections.
>>> I'd rather not send the TERM signal in the case where the
>>> "leave_children_open_on_reload" option is set and we're restarting but
>>> just restart, passing the current worker PIDs over to our new self
>>> (this gets already done). There on startup then start new workers and
>>> message the old ones to not  accept new connections and terminate
>>> gracefully as soon as possible. Now there is never a time where no active
>>> listening worker would there. I try to give it a look.
>>> 
>> 
>> cheers,
>> Thomas
>> 



More information about the pve-devel mailing list