Welcome to the Linux Foundation Forum!

egmentation error when trying to run pipelineruns from Chapter 10

manniqui
manniqui Posts: 4
edited April 2023 in LFS269 Class Forum

Hi everyone,

I'm working on Exercise 10, and I'm having trouble running some of the provided pipelineruns in the examples.
Specifically, I'm see a segmentation error in the logs of the pipelineruns after they finish.

administrator@gitops-server:~/Documents/tekton-ci/base$ tkn pr logs -f result-ci
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x184b988]

goroutine 64 [running]:
github.com/tektoncd/cli/pkg/pipelinerun.(*Tracker).Monitor(0xc0007aa400, {0x3346968, 0x0, 0x0})
        /workspace/src/github.com/tektoncd/cli/pkg/pipelinerun/tracker.go:70 +0x1e8
github.com/tektoncd/cli/pkg/log.(*Reader).readLivePipelineLogs.func1()
        /workspace/src/github.com/tektoncd/cli/pkg/log/pipeline_reader.go:54 +0x1ef
created by github.com/tektoncd/cli/pkg/log.(*Reader).readLivePipelineLogs
        /workspace/src/github.com/tektoncd/cli/pkg/log/pipeline_reader.go:49 +0xd1

Here is some information about my system:

administrator@gitops-server:~/Documents/tekton-ci/base$ uname -a
Linux gitops-server 5.15.0-69-generic #76-Ubuntu SMP Fri Mar 17 17:19:29 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
administrator@gitops-server:~/Documents/tekton-ci/base$ k version --short
Flag --short has been deprecated, and will be removed in the future. The --short output will become the default.
Client Version: v1.26.3
Kustomize Version: v4.5.7
Server Version: v1.26.1-gke.1500
administrator@gitops-server:~/Documents/tekton-ci/base$ k config get-contexts 
CURRENT   NAME      CLUSTER                                  AUTHINFO                                 NAMESPACE
          dev       kind-lfs269-cluster                      kind-lfs269-cluster                      
*         staging   gke_lfd269_europe-central2-a_cluster-1   gke_lfd269_europe-central2-a_cluster-1   
administrator@gitops-server:~/Documents/tekton-ci/base$ tkn version
Client version: 0.22.0
Pipeline version: v0.46.0
administrator@gitops-server:~/Documents/tekton-ci/base$ k get all -n tekton-pipelines
NAME                                              READY   STATUS    RESTARTS   AGE
pod/tekton-pipelines-controller-cc78c8d78-dxngd   1/1     Running   0          42m
pod/tekton-pipelines-webhook-84cf694998-k9c2f     1/1     Running   0          42m

NAME                                  TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                              AGE
service/tekton-pipelines-controller   ClusterIP   10.96.8.29     <none>        9090/TCP,8008/TCP,8080/TCP           42m
service/tekton-pipelines-webhook      ClusterIP   10.96.11.233   <none>        9090/TCP,8008/TCP,443/TCP,8080/TCP   42m

NAME                                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/tekton-pipelines-controller   1/1     1            1           42m
deployment.apps/tekton-pipelines-webhook      1/1     1            1           42m

NAME                                                    DESIRED   CURRENT   READY   AGE
replicaset.apps/tekton-pipelines-controller-cc78c8d78   1         1         1       42m
replicaset.apps/tekton-pipelines-webhook-84cf694998     1         1         1       42m

NAME                                                           REFERENCE                             TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
horizontalpodautoscaler.autoscaling/tekton-pipelines-webhook   Deployment/tekton-pipelines-webhook   3%/100%   1         5         1          42m
administrator@gitops-server:~/Documents/tekton-ci/base$ tkn p describe instavote-ci
Name:          instavote-ci
Namespace:     default
Description:   This is a pipeline template which performs the follwing tasks:
- Clones a subset of file for one microservice from a mono-repo
  e.g. vote/* result/* worker/* matching patterns provided.
- Lists all the files from the cloned workspace to validate if 
  it has cloned the correct subpath matching your microservice. 
- Builds a container image from the workspace which contains 
  the Dockerfile. It accepts imageUrl and imageTag params to 
  define the tag.  The same task also pushes the image to the 
  registry. 
Some of the additional  notable features of this template include:
- Cloned repo is passed to subsequent Tasks using a Workspace. 
- Orders Tasks in a Pipeline using "runAfter" so that
  git-clone completes before we try to read from the Workspace 
  to find the Dockerfile and build an image.
- Uses a volumeClaimTemplate Volume as a Workspace.
- Uses a secret generated with config.json and mounts it 
  as a worksapce with name dockerconfig to provide registry 
  credentials. 
- Avoids hard-coded paths by using a Workspace's path
  variable instead.


⚓ Params

 NAME                          TYPE     DESCRIPTION              DEFAULT VALUE
 ∙ repoUrl                     string   The git repository ...   ---
 ∙ revision                    string   The git branch,tag,...   ---
 ∙ sparseCheckoutDirectories   string   directory patterns ...   ---
 ∙ imageUrl                    string   URL of image reposi...   user/repo
 ∙ imageTag                    string   Tag to apply to the...   latest
 ∙ pathToContext               string   The path to the bui...   .
 ∙ pathToDockerFile            string   The path to the doc...   Dockerfile

📂 Workspaces

 NAME             DESCRIPTION
 ∙ shared-data    This workspace will...
 ∙ dockerconfig   Add docker's config...

🗒  Tasks

 NAME                  TASKREF     RUNAFTER            TIMEOUT   CONDITIONS   PARAMS
 ∙ fetch-repo          git-clone                       ---       ---          url: string, revision: string, sparseCheckoutDirectories: string
 ∙ misc                EMBEDDED    fetch-repo          ---       ---          commit-hash: 
 ∙ img-build-publish   kaniko      misc                ---       ---          CONTEXT: ., IMAGE: , EXTRA_ARGS: [ --skip-tls-verify ]
 ∙ verify-digest       EMBEDDED    img-build-publish   ---       ---          digest: 

⛩  PipelineRuns

 NAME          STARTED          DURATION     STATUS
 ∙ result-ci   18 minutes ago   18 seconds   Failed
 ∙ vote-ci     22 minutes ago   17 seconds   Failed

administrator@gitops-server:~/Documents/tekton-ci/base$ k get storageclasses.storage.k8s.io 
NAME                     PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
premium-rwo              pd.csi.storage.gke.io   Delete          WaitForFirstConsumer   true                   3d9h
standard                 kubernetes.io/gce-pd    Delete          Immediate              true                   3d9h
standard-rwo (default)   pd.csi.storage.gke.io   Delete          WaitForFirstConsumer   true                   3d9h

I'm not sure what's causing this error or how to fix it. Can anyone help me troubleshoot this issue?

Thanks in advance!

Comments

  • luisviveropena
    luisviveropena Posts: 1,127

    Hi @manniqui,

    The fact that you are having a panic and a SIGSEGV on Tekton is pretty bad. So, something is happening with the Tekton binary; it could be a bug (some a similar error on https://github.com/tektoncd/pipeline/issues/4297), or the associated software could be spoiled in some way.

    So I suggest to uninstall and reinstall Tekton and try again. If it fails, I'd say you can get a new VM and reinstall everything, including the OS and the cluster software.

    Regards,
    Luis.

Categories

Upcoming Training