[libvirt PATCH 2/2] ci: integration: Collect stack traces with coredumpctl

Erik Skultety posted 2 patches 2 years, 7 months ago
[libvirt PATCH 2/2] ci: integration: Collect stack traces with coredumpctl
Posted by Erik Skultety 2 years, 7 months ago
Some Red Hat-like distros have cores limited with a soft limit of 0
which means that neither a stack trace nor a core file will be
available. Since we want the stack trace we need to set the core limit
with systemd globally to unlimited/infinity.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
---
 ci/integration.yml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/ci/integration.yml b/ci/integration.yml
index 9726f00bff..b2932f2f39 100644
--- a/ci/integration.yml
+++ b/ci/integration.yml
@@ -2,6 +2,8 @@
   stage: integration_tests
   before_script:
     - mkdir "$SCRATCH_DIR"
+    - sudo sh -c "echo DefaultLimitCORE=infinity >> /etc/systemd/system.conf" # Explicitly allow storing cores globally
+    - sudo systemctl daemon-reexec # need to reexec systemd after changing config
     - sudo dnf install -y libvirt-rpms/* libvirt-perl-rpms/*
     - sudo pip3 install --prefix=/usr avocado-framework
     - source /etc/os-release  # in order to query the vendor-provided variables
@@ -31,6 +33,7 @@
   after_script:
     - test "$CI_JOB_STATUS" = "success" && exit 0;
     - test -e "$SCRATCH_DIR"/avocado && sudo mv "$SCRATCH_DIR"/avocado/latest/test-results logs/avocado;
+    - sudo coredumpctl info --no-pager > logs/coredumpctl.info
     - sudo mv /var/log/libvirt logs/libvirt
     - sudo chown -R $(whoami):$(whoami) logs
   variables:
-- 
2.34.1
Re: [libvirt PATCH 2/2] ci: integration: Collect stack traces with coredumpctl
Posted by Daniel P. Berrangé 2 years, 7 months ago
On Tue, Mar 22, 2022 at 07:52:21AM +0100, Erik Skultety wrote:
> Some Red Hat-like distros have cores limited with a soft limit of 0
> which means that neither a stack trace nor a core file will be
> available. Since we want the stack trace we need to set the core limit
> with systemd globally to unlimited/infinity.
> 
> Signed-off-by: Erik Skultety <eskultet@redhat.com>
> ---
>  ci/integration.yml | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/ci/integration.yml b/ci/integration.yml
> index 9726f00bff..b2932f2f39 100644
> --- a/ci/integration.yml
> +++ b/ci/integration.yml
> @@ -2,6 +2,8 @@
>    stage: integration_tests
>    before_script:
>      - mkdir "$SCRATCH_DIR"
> +    - sudo sh -c "echo DefaultLimitCORE=infinity >> /etc/systemd/system.conf" # Explicitly allow storing cores globally
> +    - sudo systemctl daemon-reexec # need to reexec systemd after changing config
>      - sudo dnf install -y libvirt-rpms/* libvirt-perl-rpms/*
>      - sudo pip3 install --prefix=/usr avocado-framework
>      - source /etc/os-release  # in order to query the vendor-provided variables
> @@ -31,6 +33,7 @@
>    after_script:
>      - test "$CI_JOB_STATUS" = "success" && exit 0;
>      - test -e "$SCRATCH_DIR"/avocado && sudo mv "$SCRATCH_DIR"/avocado/latest/test-results logs/avocado;
> +    - sudo coredumpctl info --no-pager > logs/coredumpctl.info

I'd have a little preference for .txt as a file extension, because IIUC
the gitlab artifact browser will serve this as a mime-type that forces
the browser to download, rather than viewing inline as with .txt.

>      - sudo mv /var/log/libvirt logs/libvirt
>      - sudo chown -R $(whoami):$(whoami) logs
>    variables:
> -- 
> 2.34.1
> 

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
Re: [libvirt PATCH 2/2] ci: integration: Collect stack traces with coredumpctl
Posted by Erik Skultety 2 years, 7 months ago
On Tue, Mar 22, 2022 at 10:53:27AM +0000, Daniel P. Berrangé wrote:
> On Tue, Mar 22, 2022 at 07:52:21AM +0100, Erik Skultety wrote:
> > Some Red Hat-like distros have cores limited with a soft limit of 0
> > which means that neither a stack trace nor a core file will be
> > available. Since we want the stack trace we need to set the core limit
> > with systemd globally to unlimited/infinity.
> > 
> > Signed-off-by: Erik Skultety <eskultet@redhat.com>
> > ---
> >  ci/integration.yml | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/ci/integration.yml b/ci/integration.yml
> > index 9726f00bff..b2932f2f39 100644
> > --- a/ci/integration.yml
> > +++ b/ci/integration.yml
> > @@ -2,6 +2,8 @@
> >    stage: integration_tests
> >    before_script:
> >      - mkdir "$SCRATCH_DIR"
> > +    - sudo sh -c "echo DefaultLimitCORE=infinity >> /etc/systemd/system.conf" # Explicitly allow storing cores globally
> > +    - sudo systemctl daemon-reexec # need to reexec systemd after changing config
> >      - sudo dnf install -y libvirt-rpms/* libvirt-perl-rpms/*
> >      - sudo pip3 install --prefix=/usr avocado-framework
> >      - source /etc/os-release  # in order to query the vendor-provided variables
> > @@ -31,6 +33,7 @@
> >    after_script:
> >      - test "$CI_JOB_STATUS" = "success" && exit 0;
> >      - test -e "$SCRATCH_DIR"/avocado && sudo mv "$SCRATCH_DIR"/avocado/latest/test-results logs/avocado;
> > +    - sudo coredumpctl info --no-pager > logs/coredumpctl.info
> 
> I'd have a little preference for .txt as a file extension, because IIUC
> the gitlab artifact browser will serve this as a mime-type that forces
> the browser to download, rather than viewing inline as with .txt.

Fixed and pushed.

Thanks,
Erik