Skip to content

Breeze failing due to mysql error - public key is not available #21187

@tfayyaz

Description

@tfayyaz

Apache Airflow version

2.2.3 (latest released)

What happened

I followed all the instructions to set up Breeze for the first time but when I run ./breeze I get the following error:

#10 9.605 
#10 9.605 Installing mysql client version 8.0
#10 9.605 
#10 9.613 gpg: keybox '/tmp/tmp.u3jwOIxYZN/pubring.kbx' created
#10 12.79 gpg: keyserver receive failed: No keyserver available
#10 22.83 gpg: keyserver receive failed: Server indicated a failure
#10 58.88 gpg: keyserver receive failed: No name
#10 58.88 gpg: keyserver receive failed: No keyserver available
#10 58.89 gpg: WARNING: nothing exported
#10 58.90 deb http://repo.mysql.com/apt/debian/ buster mysql-8.0
#10 59.04 Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
#10 59.04 Get:2 http://deb.debian.org/debian buster InRelease [122 kB]
#10 59.06 Get:3 http://repo.mysql.com/apt/debian buster InRelease [22.1 kB]
#10 59.15 Get:4 https://dl.yarnpkg.com/debian stable InRelease [17.1 kB]
#10 59.15 Get:5 https://deb.nodesource.com/node_14.x buster InRelease [4584 B]
#10 59.18 Get:6 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
#10 59.29 Err:3 http://repo.mysql.com/apt/debian buster InRelease
#10 59.29   The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29
#10 59.47 Get:7 http://security.debian.org/debian-security buster/updates/main amd64 Packages [313 kB]
#10 59.56 Get:8 https://deb.nodesource.com/node_14.x buster/main amd64 Packages [770 B]
#10 59.71 Get:9 http://deb.debian.org/debian buster/main amd64 Packages [7906 kB]
#10 59.95 Get:10 https://dl.yarnpkg.com/debian stable/main amd64 Packages [10.5 kB]
#10 60.00 Get:11 https://dl.yarnpkg.com/debian stable/main all Packages [10.5 kB]
#10 60.20 Get:12 http://deb.debian.org/debian buster-updates/main amd64 Packages [8792 B]
#10 61.30 Reading package lists...
#10 62.13 W: GPG error: http://repo.mysql.com/apt/debian buster InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29
#10 62.13 E: The repository 'http://repo.mysql.com/apt/debian buster InRelease' is not signed.
#10 62.13 W: Target Packages (mysql-8.0/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/mysql.list:1 and /etc/apt/sources.list.d/mysql.list:2
#10 62.13 W: Target Packages (mysql-8.0/binary-all/Packages) is configured multiple times in /etc/apt/sources.list.d/mysql.list:1 and /etc/apt/sources.list.d/mysql.list:2
------
error: failed to solve: executor failed running [/bin/bash -o pipefail -o errexit -o nounset -o nolog -c chmod a+x /scripts/docker/install_mysql.sh /scripts/docker/install_mssql.sh     && sync      && /scripts/docker/install_mysql.sh prod      && /scripts/docker/install_mysql.sh dev      && /scripts/docker/install_mssql.sh     && adduser --gecos "First Last,RoomNumber,WorkPhone,HomePhone" --disabled-password               --quiet "airflow" --home "/home/airflow"     && echo -e "airflow\nairflow" | passwd airflow 2>&1     && echo "airflow ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/airflow     && chmod 0440 /etc/sudoers.d/airflow]: exit code: 100

I am not sure what steps to take to resolve this for Breeze.

It seems related to 20911 but the install script appears to have the new key

#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
set -euo pipefail
declare -a packages

MYSQL_VERSION="8.0"
readonly MYSQL_VERSION

COLOR_BLUE=$'\e[34m'
readonly COLOR_BLUE
COLOR_RESET=$'\e[0m'
readonly COLOR_RESET

: "${INSTALL_MYSQL_CLIENT:?Should be true or false}"

install_mysql_client() {
    echo
    echo "${COLOR_BLUE}Installing mysql client version ${MYSQL_VERSION}${COLOR_RESET}"
    echo

    if [[ "${1}" == "dev" ]]; then
        packages=("libmysqlclient-dev" "mysql-client")
    elif [[ "${1}" == "prod" ]]; then
        packages=("libmysqlclient21" "mysql-client")
    else
        echo
        echo "Specify either prod or dev"
        echo
        exit 1
    fi

    local key="467B942D3A79BD29"
    readonly key

    GNUPGHOME="$(mktemp -d)"
    export GNUPGHOME
    set +e
    for keyserver in $(shuf -e ha.pool.sks-keyservers.net hkp://p80.pool.sks-keyservers.net:80 \
                               keyserver.ubuntu.com hkp://keyserver.ubuntu.com:80)
    do
        gpg --keyserver "${keyserver}" --recv-keys "${key}" 2>&1 && break
    done
    set -e
    gpg --export "${key}" > /etc/apt/trusted.gpg.d/mysql.gpg
    gpgconf --kill all
    rm -rf "${GNUPGHOME}"
    unset GNUPGHOME
    echo "deb http://repo.mysql.com/apt/debian/ buster mysql-${MYSQL_VERSION}" | tee -a /etc/apt/sources.list.d/mysql.list
    apt-get update
    apt-get install --no-install-recommends -y "${packages[@]}"
    apt-get autoremove -yqq --purge
    apt-get clean && rm -rf /var/lib/apt/lists/*
}

# Install MySQL client from Oracle repositories (Debian installs mariadb)
# But only if it is not disabled
if [[ ${INSTALL_MYSQL_CLIENT:="true"} == "true" ]]; then
    install_mysql_client "${@}"
fi

What you expected to happen

No response

How to reproduce

No response

Operating System

MacOS version 10.15.7

Versions of Apache Airflow Providers

No response

Deployment

Docker-Compose

Deployment details

No response

Anything else

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions