apache / submarine

Submarine is Cloud Native Machine Learning Platform.
https://submarine.apache.org/
Apache License 2.0
691 stars 254 forks source link

SUBMARINE-1386. Fix mlflow docker image build error #1074

Closed cdmikechen closed 1 year ago

cdmikechen commented 1 year ago

What is this PR for?

Since Debian 9/stretch moved to archive.debian.org, we need to update python image version to latest. The latest python image has been updated to the new repository in sources.list.

What type of PR is it?

Bug Fix

Todos

What is the Jira issue?

https://issues.apache.org/jira/browse/SUBMARINE-1386

How should this be tested?

CI image build step

Screenshots (if appropriate)

image

Questions:

codecov[bot] commented 1 year ago

Codecov Report

Merging #1074 (052fca7) into master (6103f2a) will increase coverage by 4.20%. The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1074      +/-   ##
==========================================
+ Coverage   63.06%   67.27%   +4.20%     
==========================================
  Files         128      128              
  Lines        6224     6224              
==========================================
+ Hits         3925     4187     +262     
+ Misses       2299     2037     -262     
Flag Coverage Δ
python-integration 54.20% <ø> (ø)
python-unit 48.00% <ø> (+7.36%) :arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

see 13 files with indirect coverage changes

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

cdmikechen commented 1 year ago

The mlfow image started failing with logs:

Traceback (most recent call last):
  File "/usr/local/bin/mlflow", line 5, in <module>
    from mlflow.cli import cli
  File "/usr/local/lib/python3.7/site-packages/mlflow/__init__.py", line 32, in <module>
    import mlflow.tracking._model_registry.fluent
  File "/usr/local/lib/python3.7/site-packages/mlflow/tracking/__init__.py", line 8, in <module>
    from mlflow.tracking.client import MlflowClient
  File "/usr/local/lib/python3.7/site-packages/mlflow/tracking/client.py", line 15, in <module>
    from mlflow.entities import ViewType
  File "/usr/local/lib/python3.7/site-packages/mlflow/entities/__init__.py", line 6, in <module>
    from mlflow.entities.experiment import Experiment
  File "/usr/local/lib/python3.7/site-packages/mlflow/entities/experiment.py", line 2, in <module>
    from mlflow.entities.experiment_tag import ExperimentTag
  File "/usr/local/lib/python3.7/site-packages/mlflow/entities/experiment_tag.py", line 2, in <module>
    from mlflow.protos.service_pb2 import ExperimentTag as ProtoExperimentTag
  File "/usr/local/lib/python3.7/site-packages/mlflow/protos/service_pb2.py", line 18, in <module>
    from .scalapb import scalapb_pb2 as scalapb_dot_scalapb__pb2
  File "/usr/local/lib/python3.7/site-packages/mlflow/protos/scalapb/scalapb_pb2.py", line 35, in <module>
    serialized_options=None, file=DESCRIPTOR)
  File "/usr/local/lib/python3.7/site-packages/google/protobuf/descriptor.py", line 561, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates

We need to resolve the python dependence conflicts.

cdmikechen commented 1 year ago

@pingsutw Currently, there is another issue that also affects docker image builds (https://issues.apache.org/jira/browse/SUBMARINE-1390 ), so I'll merge this PR for now and continue to work on that issue.