(one_cpu_100MiB_shared)
| 478 | |
| 479 | |
| 480 | def test_generators(one_cpu_100MiB_shared): |
| 481 | @ray.remote(num_returns="dynamic") |
| 482 | def remote_generator(): |
| 483 | for _ in range(3): |
| 484 | yield np.zeros(10 * 1024 * 1024, dtype=np.uint8) |
| 485 | |
| 486 | gen = ray.get(remote_generator.remote()) |
| 487 | refs = list(gen) |
| 488 | for r in refs: |
| 489 | _fill_object_store_and_get(r) |
| 490 | |
| 491 | # Outer ID out of scope, we should still be able to get the dynamic |
| 492 | # objects. |
| 493 | del gen |
| 494 | for r in refs: |
| 495 | _fill_object_store_and_get(r) |
| 496 | |
| 497 | # Inner IDs out of scope. |
| 498 | refs_oids = [r.binary() for r in refs] |
| 499 | del r |
| 500 | del refs |
| 501 | |
| 502 | for r_oid in refs_oids: |
| 503 | _fill_object_store_and_get(r_oid, succeed=False) |
| 504 | |
| 505 | |
| 506 | def test_lineage_leak(one_cpu_100MiB_shared): |
nothing calls this directly
no test coverage detected
searching dependent graphs…