How should distributed
deal with mismatches between Python or package versions?
#7017
Labels
discussion
Discussing a topic with no specific actions yet
There are currently a few issues with the way we handle mismatches between Python or package versions:
Client.get_versions(check=True)
does not work as suggested in the docstring and never raises.SystemError: unknown opcode
withSchedulerPlugin
when client uses Python3.10 and scheduler Python3.9 #7016 shows that using different Python versions between client and cluster may result in aSystemError
orsegfault
.Client._ensure_connected
contains dormant functionality to raise anImportError
in that is currently not triggered due to the implementation ofversions.error_message
(see point 1):distributed/distributed/client.py
Lines 1306 to 1307 in 0a0cfb8
versions.error_message
does not consider the Python version of the scheduler (fix in Detect mismatching Python version in scheduler #7018)This raises the question how
distributed
should deal with version mismatches in general and how tolerant it should be, if at all. My current thoughts are that we should be strict about Python, required and optional packages again due to #7016 and the fragility of using different versions ofdask
-related packages. I don't know if we should necessarily raise per default inClient._ensure_connected
, but we should at least make sure that we can raise using a flag (similar toClient.get_versions(check=True)
).Notes
https://github.com/cloudpipe/cloudpickle
The text was updated successfully, but these errors were encountered: