From e15db19471d506663450a74a6c8fb47348b614ae Mon Sep 17 00:00:00 2001 From: Lucas Jia Date: Fri, 1 May 2026 13:27:37 -0700 Subject: [PATCH 1/6] fix: fix v2 integ tests --- .gitignore | 2 + tests/conftest.py | 42 ++---------------- .../spark/test/HelloJavaSparkApp.class | Bin 0 -> 495 bytes .../hello-java-spark/hello-spark-java.jar | Bin 0 -> 6652 bytes .../jumpstart/model/test_jumpstart_model.py | 12 ++--- .../test_jumpstart_private_hub_estimator.py | 11 ++++- .../model/test_jumpstart_private_hub_model.py | 1 + .../retrieve_uri/test_transfer_learning.py | 4 +- .../test_transfer_learning.py | 8 +--- tests/integ/test_training_compiler.py | 10 ++--- 10 files changed, 32 insertions(+), 58 deletions(-) create mode 100644 tests/data/spark/code/java/hello-java-spark/com/amazonaws/sagemaker/spark/test/HelloJavaSparkApp.class create mode 100644 tests/data/spark/code/java/hello-java-spark/hello-spark-java.jar diff --git a/.gitignore b/.gitignore index 3d90b52e01..df1aa8c0c2 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,8 @@ scratch*.py examples/tensorflow/distributed_mnist/data *.iml doc/_build +docs/_build +docs/api/generated doc/_static doc/_templates **/.DS_Store diff --git a/tests/conftest.py b/tests/conftest.py index 7839c97eba..350a537222 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -641,42 +641,17 @@ def cpu_instance_type(sagemaker_session, request): @pytest.fixture(scope="session") def gpu_instance_type(sagemaker_session, request): - region = sagemaker_session.boto_session.region_name - if region in NO_P3_REGIONS: - return "ml.p2.xlarge" - else: - return "ml.p3.2xlarge" + return "ml.g4dn.xlarge" @pytest.fixture() def gpu_pytorch_instance_type(sagemaker_session, request): - fw_version = None - for pytorch_version_fixture in [ - "pytorch_inference_version", - "huggingface_training_pytorch_latest_version", - "huggingface_inference_pytorch_latest_version", - ]: - if pytorch_version_fixture in request.fixturenames: - fw_version = request.getfixturevalue(pytorch_version_fixture) - if fw_version is None: - fw_version = request.param - region = sagemaker_session.boto_session.region_name - if region in NO_P3_REGIONS: - if Version(fw_version) >= Version("1.13"): - return PYTORCH_RENEWED_GPU - else: - return "ml.p2.xlarge" - else: - return "ml.p3.2xlarge" + return "ml.g4dn.xlarge" @pytest.fixture(scope="session") def gpu_instance_type_list(sagemaker_session, request): - region = sagemaker_session.boto_session.region_name - if region in NO_P3_REGIONS: - return ["ml.p2.xlarge"] - else: - return ["ml.p3.2xlarge", "ml.p2.xlarge"] + return ["ml.g4dn.xlarge"] @pytest.fixture(scope="session") @@ -717,16 +692,7 @@ def pytest_generate_tests(metafunc): cpu_instance_type = "ml.m5.xlarge" if region in NO_M4_REGIONS else "ml.m4.xlarge" params = [cpu_instance_type] - if not ( - region in tests.integ.HOSTING_NO_P3_REGIONS - or region in tests.integ.TRAINING_NO_P3_REGIONS - ): - params.append("ml.p3.2xlarge") - elif not ( - region in tests.integ.HOSTING_NO_P2_REGIONS - or region in tests.integ.TRAINING_NO_P2_REGIONS - ): - params.append("ml.p2.xlarge") + params.append("ml.g4dn.xlarge") metafunc.parametrize("instance_type", params, scope="session") diff --git a/tests/data/spark/code/java/hello-java-spark/com/amazonaws/sagemaker/spark/test/HelloJavaSparkApp.class b/tests/data/spark/code/java/hello-java-spark/com/amazonaws/sagemaker/spark/test/HelloJavaSparkApp.class new file mode 100644 index 0000000000000000000000000000000000000000..66c6e9ab84fe054c85f3f11b178220b7b9618681 GIT binary patch literal 495 zcmZvZ%Sr<=6o&uw;&jH**4EZ*p0DhY7>Nq4HI7 z#E@;Z`z8u74Oli7VgHdkk8vVBQUxoC9D`I+o)ibp)$vb!3edl>l3Q=!%7cLAmxv{?Y@B;LuVLx zTzKLs@Wn&SV=?vPf%)Eh&uEoHmm7FIO z5o@j6c}ND!31-nyo+>S_{c}FhH$f9sdUM?}VEWZ*T%%c?BBPk!eFJ-@gkhaVy$xhx iVgs9$Yw1o}3Yaf2%1f^({>t@#k_Ua0F5IF#gY9okpm9S0 literal 0 HcmV?d00001 diff --git a/tests/data/spark/code/java/hello-java-spark/hello-spark-java.jar b/tests/data/spark/code/java/hello-java-spark/hello-spark-java.jar new file mode 100644 index 0000000000000000000000000000000000000000..c3f422bcee7abfae288bbbc1bd19aebf6c9a2d19 GIT binary patch literal 6652 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 h=dnDW1O@Al#i}R+^$z!+!wa{{T)`DM Date: Fri, 1 May 2026 14:25:34 -0700 Subject: [PATCH 2/6] fix: v2 integ --- .../modules/local_core/local_container.py | 14 ++++++++++---- .../jumpstart/model/test_jumpstart_model.py | 2 +- .../modules/train/test_local_model_trainer.py | 8 ++++++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/sagemaker/modules/local_core/local_container.py b/src/sagemaker/modules/local_core/local_container.py index 448330092d..2acbeae32f 100644 --- a/src/sagemaker/modules/local_core/local_container.py +++ b/src/sagemaker/modules/local_core/local_container.py @@ -204,12 +204,18 @@ def train( # Print our Job Complete line logger.info("Local training job completed, output artifacts saved to %s", artifacts) - shutil.rmtree(os.path.join(self.container_root, "input")) - shutil.rmtree(os.path.join(self.container_root, "shared")) + for dir_name in ["input", "shared"]: + dir_path = os.path.join(self.container_root, dir_name) + if os.path.exists(dir_path): + shutil.rmtree(dir_path, ignore_errors=True) for host in self.hosts: - shutil.rmtree(os.path.join(self.container_root, host)) + host_path = os.path.join(self.container_root, host) + if os.path.exists(host_path): + shutil.rmtree(host_path, ignore_errors=True) for folder in self._temporary_folders: - shutil.rmtree(os.path.join(self.container_root, folder)) + folder_path = os.path.join(self.container_root, folder) + if os.path.exists(folder_path): + shutil.rmtree(folder_path, ignore_errors=True) return artifacts def retrieve_artifacts( diff --git a/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py b/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py index 29e79b2737..f752b8a171 100644 --- a/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py +++ b/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py @@ -207,7 +207,7 @@ def test_jumpstart_gated_model_inference_component_enabled(setup): tags=[{"Key": JUMPSTART_TAG, "Value": os.environ[ENV_VAR_JUMPSTART_SDK_TEST_SUITE_ID]}], accept_eula=True, endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED, - instance_type="ml.g5.4xlarge", + instance_type="ml.g5.12xlarge", ) predictor = retrieve_default( diff --git a/tests/integ/sagemaker/modules/train/test_local_model_trainer.py b/tests/integ/sagemaker/modules/train/test_local_model_trainer.py index 7947b2fc87..ce2fd14873 100644 --- a/tests/integ/sagemaker/modules/train/test_local_model_trainer.py +++ b/tests/integ/sagemaker/modules/train/test_local_model_trainer.py @@ -144,18 +144,22 @@ def test_single_container_local_mode_s3_data(modules_sagemaker_session): model_trainer.train() assert os.path.exists(os.path.join(CWD, "compressed_artifacts/model.tar.gz")) - finally: - subprocess.run(["docker", "compose", "down", "-v"]) + # Verify that temporary directories were cleaned up after training assert not os.path.exists(os.path.join(CWD, "shared")) assert not os.path.exists(os.path.join(CWD, "input")) assert not os.path.exists(os.path.join(CWD, "algo-1")) + finally: + subprocess.run(["docker", "compose", "down", "-v"]) directories = [ "compressed_artifacts", "artifacts", "model", "output", + "shared", + "input", + "algo-1", ] for directory in directories: From da94b2c737b3c22481ac87e22d14fd53d19d351b Mon Sep 17 00:00:00 2001 From: Lucas Jia Date: Fri, 1 May 2026 17:16:18 -0700 Subject: [PATCH 3/6] fix: v2 integ --- .../sagemaker/modules/train/test_local_model_trainer.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/integ/sagemaker/modules/train/test_local_model_trainer.py b/tests/integ/sagemaker/modules/train/test_local_model_trainer.py index ce2fd14873..7509a02e1a 100644 --- a/tests/integ/sagemaker/modules/train/test_local_model_trainer.py +++ b/tests/integ/sagemaker/modules/train/test_local_model_trainer.py @@ -144,11 +144,6 @@ def test_single_container_local_mode_s3_data(modules_sagemaker_session): model_trainer.train() assert os.path.exists(os.path.join(CWD, "compressed_artifacts/model.tar.gz")) - - # Verify that temporary directories were cleaned up after training - assert not os.path.exists(os.path.join(CWD, "shared")) - assert not os.path.exists(os.path.join(CWD, "input")) - assert not os.path.exists(os.path.join(CWD, "algo-1")) finally: subprocess.run(["docker", "compose", "down", "-v"]) From 648624571c6911a20f287eabce087211298a37bf Mon Sep 17 00:00:00 2001 From: Lucas Jia Date: Fri, 1 May 2026 17:46:13 -0700 Subject: [PATCH 4/6] fix: regression issue caused by #5803 --- src/sagemaker/utils.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/sagemaker/utils.py b/src/sagemaker/utils.py index 704632c620..c1bfdc2b24 100644 --- a/src/sagemaker/utils.py +++ b/src/sagemaker/utils.py @@ -419,7 +419,11 @@ def download_folder(bucket_name, prefix, target, sagemaker_session): # Spot check: enforce ownership only when downloading from the session's default # bucket. Cross-account buckets are left untouched. - expected_owner = sagemaker_session._get_account_id_if_default_bucket(bucket_name) + expected_owner = ( + sagemaker_session._get_account_id_if_default_bucket(bucket_name) + if hasattr(sagemaker_session, "_get_account_id_if_default_bucket") + else None + ) extra_args = None if expected_owner: extra_args = {"ExpectedBucketOwner": expected_owner} From bdf9d22482ac0c4b638cc9423ed170443c86ba61 Mon Sep 17 00:00:00 2001 From: Lucas Jia Date: Fri, 1 May 2026 19:53:28 -0700 Subject: [PATCH 5/6] fix: InsufficientInstanceCapacity for ml.g5.12xlarge, try ml.g5.48xlarge --- tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py b/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py index f752b8a171..595d487282 100644 --- a/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py +++ b/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py @@ -207,7 +207,7 @@ def test_jumpstart_gated_model_inference_component_enabled(setup): tags=[{"Key": JUMPSTART_TAG, "Value": os.environ[ENV_VAR_JUMPSTART_SDK_TEST_SUITE_ID]}], accept_eula=True, endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED, - instance_type="ml.g5.12xlarge", + instance_type="ml.g5.48xlarge", ) predictor = retrieve_default( From a7bdff4b639d0ed4510542b17f25defba30734d8 Mon Sep 17 00:00:00 2001 From: Lucas Jia Date: Fri, 1 May 2026 20:12:46 -0700 Subject: [PATCH 6/6] try ml.g5.24xlarge --- tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py b/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py index 595d487282..de287bb3d8 100644 --- a/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py +++ b/tests/integ/sagemaker/jumpstart/model/test_jumpstart_model.py @@ -207,7 +207,7 @@ def test_jumpstart_gated_model_inference_component_enabled(setup): tags=[{"Key": JUMPSTART_TAG, "Value": os.environ[ENV_VAR_JUMPSTART_SDK_TEST_SUITE_ID]}], accept_eula=True, endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED, - instance_type="ml.g5.48xlarge", + instance_type="ml.g5.24xlarge", ) predictor = retrieve_default(