diff mbox series

[v1,3/4] mirror: Reduce frequency of retrieving results archive

Message ID 20250310183208.999430-4-cel@kernel.org (mailing list archive)
State New
Headers show
Series Fixes for git mirroring on Fedora | expand

Commit Message

Chuck Lever March 10, 2025, 6:32 p.m. UTC
From: Chuck Lever <chuck.lever@oracle.com>

Each run takes longer than 10 seconds, which generates a "git
process is still running" warning in the system journal every
minute.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 playbooks/roles/linux-mirror/templates/mirrors.yaml.j2 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Luis Chamberlain March 11, 2025, 3:39 a.m. UTC | #1
On Mon, Mar 10, 2025 at 02:32:07PM -0400, cel@kernel.org wrote:
> From: Chuck Lever <chuck.lever@oracle.com>
> 
> Each run takes longer than 10 seconds, which generates a "git
> process is still running" warning in the system journal every
> minute.
> 
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
>  playbooks/roles/linux-mirror/templates/mirrors.yaml.j2 | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2 b/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
> index dabbadcc6528..45e79349a3d4 100644
> --- a/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
> +++ b/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
> @@ -36,7 +36,7 @@ mirrors:
>    - short_name: "kdevops-results-archive"
>      url: "{{ defaults_kdevops_results_archive_git }}"
>      target: "kdevops-results-archive.git"
> -    refresh: "10s"
> +    refresh: "10m"

We don't poke kernel.org here ever, this is a github tree.

The question here is how often we want this updated to make CI updates
take effect. It is why I went so low here. I think such a low value only
makes sense for mirrors which won't need to leverage leverage
kdevops-results-archive to push updates to that tree, as otherwise their
tree will be out of sync. So, I think a bool to lower this default might
be nice, disabled by default, and a new defconfig for mirror-ci might be
useful which has that bool enabled. This way folks who wish to help with
CI infra and use kdevops-results-archive to push results there, can just
have their mirror setup use:

make defconfig-mirror-ci

Without this we risk that a CI run, once it has test results to upload,
won't be able to push the results. Because it will git fetch prior, but
its using the mirror.

  Luis
Chuck Lever March 11, 2025, 1:38 p.m. UTC | #2
On 3/10/25 11:39 PM, Luis Chamberlain wrote:
> On Mon, Mar 10, 2025 at 02:32:07PM -0400, cel@kernel.org wrote:
>> From: Chuck Lever <chuck.lever@oracle.com>
>>
>> Each run takes longer than 10 seconds, which generates a "git
>> process is still running" warning in the system journal every
>> minute.
>>
>> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>> ---
>>  playbooks/roles/linux-mirror/templates/mirrors.yaml.j2 | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2 b/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
>> index dabbadcc6528..45e79349a3d4 100644
>> --- a/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
>> +++ b/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
>> @@ -36,7 +36,7 @@ mirrors:
>>    - short_name: "kdevops-results-archive"
>>      url: "{{ defaults_kdevops_results_archive_git }}"
>>      target: "kdevops-results-archive.git"
>> -    refresh: "10s"
>> +    refresh: "10m"
> 
> We don't poke kernel.org here ever, this is a github tree.

Hi Luis, thanks for the review.

The issue I see is local, on the mirror. This one's not an issue about
unnecessary workload on the remote repo.

Basically the poll for new commits takes a while on my system, so every
minute I get a verbose system journal warning that there is a git
process left over from the last timer run. The log messages are noise,
and because they come out so often, they will fill up the controller's
root filesystem.

Also, from a code legibility standpoint, "10s" looks like an anomaly,
a typo. IMO it could be clearer if it were documented (with what you
said here, below) in a brief comment. Maybe it is already and I missed
it.

On my system, systemd timer jobs don't seem to run more often than once
a minute anyway... 10s might be impossibly short.

I'm open to finding another way to address this, and I am OK not
pushing this one until we agree on a consensus solution.


> The question here is how often we want this updated to make CI updates
> take effect. It is why I went so low here. I think such a low value only
> makes sense for mirrors which won't need to leverage leverage
> kdevops-results-archive to push updates to that tree, as otherwise their
> tree will be out of sync. So, I think a bool to lower this default might
> be nice, disabled by default, and a new defconfig for mirror-ci might be
> useful which has that bool enabled. This way folks who wish to help with
> CI infra and use kdevops-results-archive to push results there, can just
> have their mirror setup use:
> 
> make defconfig-mirror-ci
> 
> Without this we risk that a CI run, once it has test results to upload,
> won't be able to push the results. Because it will git fetch prior, but
> its using the mirror.

Perhaps another choice would be to not mirror this repo at all, since it
is also the target of local updates.
Chuck Lever March 11, 2025, 6:01 p.m. UTC | #3
On 3/11/25 9:38 AM, Chuck Lever wrote:
> On 3/10/25 11:39 PM, Luis Chamberlain wrote:
>> On Mon, Mar 10, 2025 at 02:32:07PM -0400, cel@kernel.org wrote:
>>> From: Chuck Lever <chuck.lever@oracle.com>
>>>
>>> Each run takes longer than 10 seconds, which generates a "git
>>> process is still running" warning in the system journal every
>>> minute.
>>>
>>> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>>> ---
>>>  playbooks/roles/linux-mirror/templates/mirrors.yaml.j2 | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2 b/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
>>> index dabbadcc6528..45e79349a3d4 100644
>>> --- a/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
>>> +++ b/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
>>> @@ -36,7 +36,7 @@ mirrors:
>>>    - short_name: "kdevops-results-archive"
>>>      url: "{{ defaults_kdevops_results_archive_git }}"
>>>      target: "kdevops-results-archive.git"
>>> -    refresh: "10s"
>>> +    refresh: "10m"
>>
>> We don't poke kernel.org here ever, this is a github tree.
> 
> Hi Luis, thanks for the review.
> 
> The issue I see is local, on the mirror. This one's not an issue about
> unnecessary workload on the remote repo.
> 
> Basically the poll for new commits takes a while on my system, so every
> minute I get a verbose system journal warning that there is a git
> process left over from the last timer run. The log messages are noise,
> and because they come out so often, they will fill up the controller's
> root filesystem.

In fact I see this for most of the mirrored repos, even on a kdevops
controller system I set up a while ago:

qemu-jic23-mirror.service: Found left-over process 2176 (git) in control
group while starting unit. Ignoring.
qemu-jic23-mirror.service: This usually indicates unclean termination of
a previous run, or service implementation deficiencies.
qemu-mirror.service: Found left-over process 2180 (git) in control group
while starting unit. Ignoring.
qemu-mirror.service: This usually indicates unclean termination of a
previous run, or service implementation deficiencies.

I'm not sure what to make of it.


> Also, from a code legibility standpoint, "10s" looks like an anomaly,
> a typo. IMO it could be clearer if it were documented (with what you
> said here, below) in a brief comment. Maybe it is already and I missed
> it.
> 
> On my system, systemd timer jobs don't seem to run more often than once
> a minute anyway... 10s might be impossibly short.
> 
> I'm open to finding another way to address this, and I am OK not
> pushing this one until we agree on a consensus solution.
> 
> 
>> The question here is how often we want this updated to make CI updates
>> take effect. It is why I went so low here. I think such a low value only
>> makes sense for mirrors which won't need to leverage leverage
>> kdevops-results-archive to push updates to that tree, as otherwise their
>> tree will be out of sync. So, I think a bool to lower this default might
>> be nice, disabled by default, and a new defconfig for mirror-ci might be
>> useful which has that bool enabled. This way folks who wish to help with
>> CI infra and use kdevops-results-archive to push results there, can just
>> have their mirror setup use:
>>
>> make defconfig-mirror-ci
>>
>> Without this we risk that a CI run, once it has test results to upload,
>> won't be able to push the results. Because it will git fetch prior, but
>> its using the mirror.
> 
> Perhaps another choice would be to not mirror this repo at all, since it
> is also the target of local updates.
> 
>
Luis Chamberlain March 12, 2025, 5:11 a.m. UTC | #4
On Tue, Mar 11, 2025 at 09:38:40AM -0400, Chuck Lever wrote:
> Perhaps another choice would be to not mirror this repo at all, since it
> is also the target of local updates.

I think that's a good idea, and just enable it for a new mirror-ci
defconfig, ie, only silly CI setups should mirror everything. I hadn't
added variability to mirroring, so adding some with sensible developer
defaults makes sense, while pushing all the odd ball trees to the
mirror-ci.

  Luis
Luis Chamberlain March 12, 2025, 5:12 a.m. UTC | #5
On Tue, Mar 11, 2025 at 02:01:00PM -0400, Chuck Lever wrote:
> On 3/11/25 9:38 AM, Chuck Lever wrote:
> > On 3/10/25 11:39 PM, Luis Chamberlain wrote:
> >> On Mon, Mar 10, 2025 at 02:32:07PM -0400, cel@kernel.org wrote:
> >>> From: Chuck Lever <chuck.lever@oracle.com>
> >>>
> >>> Each run takes longer than 10 seconds, which generates a "git
> >>> process is still running" warning in the system journal every
> >>> minute.
> >>>
> >>> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> >>> ---
> >>>  playbooks/roles/linux-mirror/templates/mirrors.yaml.j2 | 2 +-
> >>>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2 b/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
> >>> index dabbadcc6528..45e79349a3d4 100644
> >>> --- a/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
> >>> +++ b/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
> >>> @@ -36,7 +36,7 @@ mirrors:
> >>>    - short_name: "kdevops-results-archive"
> >>>      url: "{{ defaults_kdevops_results_archive_git }}"
> >>>      target: "kdevops-results-archive.git"
> >>> -    refresh: "10s"
> >>> +    refresh: "10m"
> >>
> >> We don't poke kernel.org here ever, this is a github tree.
> > 
> > Hi Luis, thanks for the review.
> > 
> > The issue I see is local, on the mirror. This one's not an issue about
> > unnecessary workload on the remote repo.
> > 
> > Basically the poll for new commits takes a while on my system, so every
> > minute I get a verbose system journal warning that there is a git
> > process left over from the last timer run. The log messages are noise,
> > and because they come out so often, they will fill up the controller's
> > root filesystem.
> 
> In fact I see this for most of the mirrored repos, even on a kdevops
> controller system I set up a while ago:
> 
> qemu-jic23-mirror.service: Found left-over process 2176 (git) in control
> group while starting unit. Ignoring.
> qemu-jic23-mirror.service: This usually indicates unclean termination of
> a previous run, or service implementation deficiencies.
> qemu-mirror.service: Found left-over process 2180 (git) in control group
> while starting unit. Ignoring.
> qemu-mirror.service: This usually indicates unclean termination of a
> previous run, or service implementation deficiencies.
> 
> I'm not sure what to make of it.

Just feel free to toss it to mirror-ci defconfig, it just means adding a
bit of variability.

  Luis
diff mbox series

Patch

diff --git a/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2 b/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
index dabbadcc6528..45e79349a3d4 100644
--- a/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
+++ b/playbooks/roles/linux-mirror/templates/mirrors.yaml.j2
@@ -36,7 +36,7 @@  mirrors:
   - short_name: "kdevops-results-archive"
     url: "{{ defaults_kdevops_results_archive_git }}"
     target: "kdevops-results-archive.git"
-    refresh: "10s"
+    refresh: "10m"
   - short_name: "kdevops/fstests"
     url: "{{ mirror_kdevops_fstests_url }}"
     target: "kdevops/fstests.git"