Renovate: yarn.lock contains only "null" after renovate

Created on 20 Aug 2020  路  16Comments  路  Source: renovatebot/renovate

What Renovate type are you using?

Self hosted using renovate/renovate docker image in GitLab CI Pipeline, version 22.22.0

Describe the bug

Since yesterday renovate was working well updaing the dependencies of my yarn / npm project. Since version 22.22.0 the yarn.lock file is wiped and replaces with just null as its content.

Relevant debug logs

DEBUG: Getting updated lock files
DEBUG: lock file dirs
       "dirs": {
         "yarnLockDirs": ["yarn.lock"],
         "npmLockDirs": [],
         "pnpmShrinkwrapDirs": [],
         "lernaDirs": []
       }
DEBUG: Writing repo .npmrc 
DEBUG: Writing package.json files
       "packageFiles": ["package.json"]
DEBUG: Writing any updated package files
DEBUG: Writing package.json
DEBUG: npmrc file found in repository
DEBUG: Generating yarn.lock for .
DEBUG: Spawning yarn install to create yarn.lock
DEBUG: Updating yarn.lock only - skipping node_modules
DEBUG: No node constraint found - using latest
DEBUG: Executing command
       "command": "yarn install --ignore-engines --ignore-platform --network-timeout 100000"
DEBUG: exec completed
       "cmd": "yarn install --ignore-engines --ignore-platform --network-timeout 100000",
       "durationMs": 67832,
       "stdout": "yarn install v1.22.4\n[1/4] Resolving packages...\n[2/4] Fetching packages...\n[3/4] Linking dependencies...\n[4/4] Building fresh packages...\nsuccess Saved lockfile.\nDone in 67.48s.\n",
       "stderr": "redacted"
DEBUG: yarn.lock needs updating
DEBUG: Updated 1 lock files
       "updatedArtifacts": ["yarn.lock"]
DEBUG: 2 file(s) to commit
DEBUG: Committing files to branch renovate/all

To Reproduce

Additional context

All 16 comments

@JamieMagee @viceice perhaps a regression error related to Yarn 2 support? There was a second issue just before with something similar

馃 maybe, revert change?

Tagging @christophehurpeau.

Not sure if helpful, but I'm seeing this too. Self-hosted, and we use renovate to update our copy of renovate, started happening in 22.22.0.

Let's definitely revert. I'm on mobile but can approve and merge a fix PR if someone else creates it

Opened a PR and will debug later

@amuttsch Can you check with latest 22.22.3?

found the issue, working on fix so we can readd yarn v2 support

Thanks for the quick response on this! After manually updating to 22.22.3, it is working for us.

Thanks for the quick fix, I'll test it once the 22.22.3 docker image is available. Is there a build monitor for the docker image build to check the status?

Yes, the full image works fine where the slim image fails with:

       "artifactErrors": [
         {
           "lockFile": "yarn.lock",
           "stderr": "Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?\n"
         }
       ]

Running on a Kubernetes Gitlab CI runner. (I haven't had time to analyse this error for a fix yet.)

i think you can't use localhost from a kubernetes pod to access the physical docker daemon via tcp. I've deployed a custom gitlab runner as kubernets deployment with local docker sock mounted to pod 馃檭

Terraform deplyment for singe node k3s cluster:

locals {
  image_docuum        = "stephanmisc/docuum:0.12.0@sha256:51f2eb923c4107ef0063516717651417a2c207a5937287635961462f3bd859a6"     # renovate: depName=docuum
  image_gitlab_runner = "visualon/gitlab-runner:13.2.2@sha256:9d170f4484b27a5bb6616ea33512313fd7a1e9d7254d35a182735d228c19f9b6" # renovate: depName=gitlab-runner
}

resource "kubernetes_namespace" "docker_gitlab" {
  metadata {
    name = "docker-gitlab"
    annotations = {
      "cattle.io/status"                          = ""
      "lifecycle.cattle.io/create.namespace-auth" = ""
    }
  }
  lifecycle {
    ignore_changes = [
      metadata[0].annotations["cattle.io/status"],
      metadata[0].annotations["lifecycle.cattle.io/create.namespace-auth"],
    ]
  }
}

resource "kubernetes_deployment" "docuum" {
  metadata {
    name      = "docuum"
    namespace = kubernetes_namespace.docker_gitlab.metadata.0.name
    labels = {
      app = "docuum"
    }
  }
  spec {
    replicas = 1

    selector {
      match_labels = {
        app = "docuum"
      }
    }
    template {
      metadata {
        labels = {
          app = "docuum"
        }
      }
      spec {
        container {
          image = local.image_docuum
          name  = "docuum"
          args  = ["--threshold", "20 GB"]
          env {
            name  = "TZ"
            value = "Europe/Berlin"
          }

          volume_mount {
            name       = "docuum-data"
            mount_path = "/root"
          }

          volume_mount {
            name       = "docker-sock"
            mount_path = "/var/run/docker.sock"
          }
        }

        volume {
          name = "docuum-data"
          host_path {
            path = "/docker/docuum/data"
            type = "Directory"
          }
        }

        volume {
          name = "docker-sock"
          host_path {
            path = "/var/run/docker.sock"
            type = "Socket"
          }
        }
      }
    }
  }
}


resource "kubernetes_deployment" "gitlab_runner" {

  metadata {
    name      = "gitlab-runner"
    namespace = kubernetes_namespace.docker_gitlab.metadata.0.name
    labels = {
      app = "gitlab-runner"
    }
  }

  spec {
    replicas = 1

    selector {
      match_labels = {
        app = "gitlab-runner"
      }
    }
    template {
      metadata {
        labels = {
          app = "gitlab-runner"
        }
      }

      spec {
        container {
          image = local.image_gitlab_runner
          name  = "gitlab-runner"
          env {
            name  = "TZ"
            value = "Europe/Berlin"
          }

          volume_mount {
            name       = "gitlab-config"
            mount_path = "/etc/gitlab-runner"
          }

          volume_mount {
            name       = "docker-sock"
            mount_path = "/var/run/docker.sock"
          }
        }

        volume {
          name = "gitlab-config"
          host_path {
            path = "/docker/gitlab-runner/config"
            type = "Directory"
          }
        }

        volume {
          name = "docker-sock"
          host_path {
            path = "/var/run/docker.sock"
            type = "Socket"
          }
        }
      }
    }
  }
}

Thanks for the config, 22.22.3 is now available and works as expected. Thank you again for the quick response :-)

:tada: This issue has been resolved in version 22.23.0 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

Was this page helpful?
0 / 5 - 0 ratings

Related issues

OmgImAlexis picture OmgImAlexis  路  4Comments

ZauberNerd picture ZauberNerd  路  4Comments

amilajack picture amilajack  路  3Comments

Arcanemagus picture Arcanemagus  路  4Comments

ChristianMurphy picture ChristianMurphy  路  4Comments