Skip to content

Globus Compute hosted services vs source build of non-released Python 3.12.6+ #1999

@benclifford

Description

@benclifford

Describe the bug

In my dev environment, which features a selection of customised source builds, I get this error when submitting to Globus Compute:

Traceback (most recent call last):
  File "/home/benc/parsl/src/parsl/togc.py", line 15, in <module>
    print(f.result())
          ^^^^^^^^^^
  File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/globus_compute_sdk/sdk/executor.py", line 1125, in _task_submitter_impl
    self._submit_tasks(
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/globus_compute_sdk/sdk/executor.py", line 1257, in _submit_tasks
    batch_response = self.client.batch_run(endpoint_uuid, batch)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/globus_compute_sdk/sdk/client.py", line 62, in _wrapper
    return gare_handler(_login, f, self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/globus_compute_sdk/sdk/utils/gare.py", line 13, in gare_handler
    return f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/globus_compute_sdk/sdk/client.py", line 597, in batch_run
    r = self._compute_web_client.v3.submit(endpoint_id, batch.prepare())
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/globus_sdk/services/compute/client.py", line 370, in submit
    return self.post(f"/v3/endpoints/{endpoint_id}/submit", data=data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/globus_sdk/client.py", line 358, in post
    return self.request(
           ^^^^^^^^^^^^^
  File "/home/benc/parsl/virtualenv-3.12/lib/python3.12/site-packages/globus_sdk/client.py", line 522, in request
    raise self.error_class(r)
globus_sdk.services.compute.errors.ComputeAPIError: ('POST', 'https://compute.api.globus.org/v3/endpoints/d23b9bc6-99d1-40c4-8c35-9effd8a2266c/submit', 'Bearer', 422, 'REQUEST_MALFORMED', 'Unprocessable Entity')

Example POST data is:

{'create_queue': True, 'tasks': {'627c0639-0ac1-4b2f-8b16-f2e64040032c': ['12\n00\ngAQpLg==\n12\n00\ngAR9lC4=\n']}, 'user_runtime': {'globus_compute_sdk_version': '4.1.0', 'globus_sdk_version': '3.64.0', 'python_version': '3.12.6+ (heads/3.12:b6f4607, Sep 13 2024, 15:28:21) [GCC 12.2.0]', 'python': {'version': '3.12.6+', 'version_tuple': (3, 12, 6), 'version_info': (3, 12, 6, 'final', 0), 'implementation': 'CPython', 'compiler': 'GCC 12.2.0'}, 'platform': {'architecture': ('64bit', ''), 'machine': 'x86_64', 'node': 'parsl-dev-3-12-8645', 'platform': 'Linux-6.1.0-25-amd64-x86_64-with-glibc2.36', 'processor': '', 'release': '6.1.0-25-amd64'}}}

If I patch this in globus_sdk/services/compute/client.py submit (around line 370):

        data['user_runtime']['python']['version'] = "3.12.6"

before the post is submitted, then my submission works. This drops off + from the version in one place.

To Reproduce

Maybe the above version patch in reverse to add a + on the end?

Expected behavior

task submission

Environment
dockerised debian
source build Python 3.14.6+ commit b6f46073515ce10a4f2457c32c8376bf975388aa
endpoint + client in same venv.

benc@parsl-dev-3-12-8645:~/parsl/src/parsl$ pip list|grep globus
globus-compute-common         0.7.1
globus-compute-endpoint       4.1.0
globus-compute-sdk            4.1.0
globus-identity-mapping       0.4.0
globus-sdk                    3.64.0

Distributed Environment
everything is running in my laptop dev container
endpoint d23b9bc6-99d1-40c4-8c35-9effd8a2266c

  • If this is an endpoint issue, run globus-compute-endpoint self-diagnostic -z and attach the resulting zip file.
$ globus-compute-endpoint self-diagnostic -z
Usage: globus-compute-endpoint self-diagnostic [OPTIONS]
Try 'globus-compute-endpoint self-diagnostic --help' for help.

Error: No such option: -z
$ globus-compute-endpoint self-diagnostic
This endpoint self-diagnostic command has been deprecated.
  Please use the `globus-compute-diagnostic` command from the SDK instead.
globus-compute-endpoint is installed at /home/benc/parsl/virtualenv-3.12/bin/globus-compute-endpoint
Some diagnostic commands require being logged in.
Compressed diagnostic output successfully written to globus_compute_diagnostic_2025-11-17-14-40-54Z.txt.gz

globus_compute_diagnostic_2025-11-17-14-40-54Z.txt.gz

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions