Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vitess/lite docker build fails for mysql80 #7943

Merged
merged 4 commits into from
Apr 27, 2021

Conversation

mcronce
Copy link

@mcronce mcronce commented Apr 23, 2021

Description

Currently, the vitess/lite:mysql80 image is throwing the following error a bunch of times during its build:

Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libmysqlclient21 : Depends: mysql-community-client-plugins (= 8.0.23-1debian10) but it is not going to be installed
 mysql-community-client-core : Depends: mysql-community-client-plugins (= 8.0.23-1debian10) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

The build eventually succeeds, but trying to start a cluster with docker-compose, the vttablet containers never come up healthy.

It looks like there are dependency issues with those packages. Downgrading is the first solution that came to mind, although upgrading to 8.0.24 also seems to work fine. Super open to ideas other than just changing the version.

Related Issue(s)

#7811 #7812

Checklist

  • Should this PR be backported?
  • Tests were added or are not required
  • Documentation was added or is not required

Deployment Notes

N/A

Impacted Areas in Vitess

Components that this PR will affect:

  • Query Serving
  • VReplication
  • Cluster Management
  • Build/CI
  • VTAdmin

@aquarapid
Copy link
Contributor

My view is that we should fix the build unless there's a (functionality) problem with the newer version of MySQL. 8.0.21 is getting long in the tooth. I'll take a look.

@mcronce
Copy link
Author

mcronce commented Apr 24, 2021

@aquarapid going up to 8.0.24 also works

@aquarapid
Copy link
Contributor

yeah 8.0.24 is brand new, won't chance it, yet :-) I've pushed a fix to keep it on 8.0.23

Mike Cronce and others added 4 commits April 24, 2021 00:21
… 8.0.21

Signed-off-by: Mike Cronce <mc@planetscale.com>
Signed-off-by: Mike Cronce <mc@planetscale.com>
This reverts commit 885b89e74f30c6df8345059ca16bb2597f900d5e.

Signed-off-by: Mike Cronce <mc@planetscale.com>
Signed-off-by: Jacques Grove <aquarapid@gmail.com>
@mcronce mcronce force-pushed the fix-mysql80-container-image branch from 0eeb237 to 3cc94a1 Compare April 24, 2021 04:21
@deepthi deepthi changed the title docker/lite/install_dependencies.sh: Downgrade MySQL 8 from 8.0.23 to 8.0.21 docker/lite/install_dependencies.sh: docker build fails for mysql80 Apr 27, 2021
@deepthi deepthi changed the title docker/lite/install_dependencies.sh: docker build fails for mysql80 vitess/lite docker build fails for mysql80 Apr 27, 2021
Copy link
Member

@deepthi deepthi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sougou has verified that this works with a local docker build.

@deepthi
Copy link
Member

deepthi commented Apr 27, 2021

Ideally the docker build should fail and stop on errors. However, because we are doing this in a loop (to tolerate transient errors), we ignore the exit status
image

for i in $(seq 1 $MAX_RETRY); do apt-get install -y --no-install-recommends "${PACKAGES[@]}" && break; done

@dkhenry
Copy link
Contributor

dkhenry commented Apr 27, 2021

Ideally the docker build should fail and stop on errors. However, because we are doing this in a loop (to tolerate transient errors), we ignore the exit status
image

for i in $(seq 1 $MAX_RETRY); do apt-get install -y --no-install-recommends "${PACKAGES[@]}" && break; done

You can fix that by having a check after the break if [[ $i -eq $MAX_RETRY ]]; exit 1; fi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Build/CI Type: Enhancement Logical improvement (somewhere between a bug and feature)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants