Commit graph

10593 commits

Author SHA1 Message Date
Jun Gong
65bd8e29f8
[RLlib] Update a few things to get rid of the remote_vector_env deprecation warning. (#20753) 2021-12-02 13:10:44 +01:00
Chu Xiangyang
93732231cb
[Core] Update job id to hex in JOB_LOG_PATTERN (#20612) (#20816)
* [Core] Update job id to hex in JOB_LOG_PATTERN (#20612)

* Add test to log pid with hex job id
2021-12-02 16:47:26 +09:00
mwtian
8716ae9fdc
[Core][Pubsub] deflake test_gcs_pubsub (#20812)
In `test_gcs_pubsub.py`, ensure subscribers subscribe before data is published to the channel.
2021-12-01 19:11:18 -08:00
mwtian
b3264138b5
[cli] Use 8 Ansi colors for ray command output (#20485) 2021-12-01 16:44:52 -08:00
iasoon
7546ea452f
[serve] Catch errors caused by bad deployment configurations (#20617) 2021-12-01 17:20:25 -07:00
hckuo
fb3d57fb71
[runtime_env] Allow working_dir and py_module to be Path type (#20810) 2021-12-01 16:39:39 -07:00
architkulkarni
765e8d8d53
[Serve] [Doc] fix custom metric link in serve doc (#20775) 2021-12-01 16:39:22 -07:00
Antoni Baum
da57c99f47
[tune] Add set_max_concurrency to Searcher API (#20576)
Adds a set_max_concurrency method to the Searcher API. This method allows for the ConcurrencyLimiter to override the max_concurrency value on searchers with custom internal logic for limiting concurrency (atm. SigOpt and HEBO). This PR also changes the initialisation of SigOpt and HEBO optimisers to happen on set_search_properties instead of in the constructor, so that the new max_concurrency is respected.

Furthermore, this PR breaks up test_tune_restore.py into test_tune_restore_warm_start.py and test_tune_restore.py to deal with a timeout, and ensures that the automatic application of ConcurrencyLimiter in tune.run doesn't override a user-defined ConcurrencyLimiter.
2021-12-01 13:07:48 -08:00
mwtian
0467bc9df5
[Core][Pubsub][Importer] GCS pubsub for function manager & importer (#20804)
This PR allows using Ray pubsub for notifying worker importers that a new function / actor class needs to be imported.
2021-12-01 10:44:50 -08:00
xwjiang2010
8c0bf41b17
[tune] clean up start_trial API. (#20796) 2021-12-01 08:46:22 -08:00
Sven Mika
9e38f6f613
[RLlib] Trainer sub-class DDPG/TD3/APEX-DDPG (instead of build_trainer). (#20636) 2021-12-01 10:52:12 +01:00
Avnish Narayan
74dd0e4085
[RLlib] Make to_base_env() a method of all RLlib-supported Env classes (#20811) 2021-12-01 09:01:02 +01:00
Tao Wang
f481081904
[Java]Get next job id only in driver (#20813)
## Why are these changes needed?
Job id is only used in driver, we should not get it in WORKER.
2021-12-01 15:48:21 +08:00
SangBin Cho
4b9524ed76
[Part 4] Support passing metadata to Ray error object. (#20714)
This will allow us to pass protobuf-defined metadata to the error object. It will allow us to propagate meaningful metadata (e.g., function names for ObjectLostError, ip address for ObjectLostError within raylet, or many useful metadata for ActorDiedError).

### Impl
We will allow the error object to include "payload". The payload will be the protobuf message that includes metadata.
```
# Prev 
ACTOR_DIED (metadata) | (empty)

# New
ACTOR_DIED (metadata) | Serialized protobuf message (body)
```

Note that currently, the body is 

serialized message pack that contains serialized protobuf. This needs to be cleaned up in the future.
2021-11-30 21:58:07 -08:00
SangBin Cho
5e1692e8ac
[Core] Support timeout for gRPC methods. (#20734)
* Completed

* Add a test

* lint failure
2021-11-30 18:46:20 -08:00
Avnish Narayan
3ddc09544d
[rllib] Env to base env refactor (#20785) 2021-11-30 17:02:10 -08:00
Stephanie Wang
162cc9e6bd
Add chaos test for shuffle (#20657)
Adds a working failure test for streaming and non-streaming shuffle, without lineage reconstruction. This does a few things.

Test improvements:
- modifies AutoscalingCluster to allow passing an idle node timeout (the default is very low)
- some small improvements to the NodeKiller actor to hopefully improve flakiness.

Shuffle fixes:
- modifies shuffle tracker to wait on futures instead of having tasks signal. During failures, tasks may never signal the tracker, so we can't rely on these to track progress.

Core fixes:
- raylet will exit immediately if it receives the Shutdown RPC with graceful=False - there was a bug here where it's supposed to exit after replying to the client, but the gRPC server goes down for an unknown reason and the client reply is never sent
- On reference deletion, the owner now publishes an additional message to subscribers that the object has been deleted. Previously, this was causing a hang in streaming shuffle because the raylets pulling an object subscribed after the object was already deleted, so they never received the error signal.
2021-11-30 15:24:09 -08:00
Alex Wu
9a0e67cd7e
Remove duplicate test (in test_component_failure_2) (#20798)
test_component_failure_2::test_worker_failed is a duplicate of test_mulitnode_failure::test_worker_failed
2021-11-30 12:49:43 -08:00
Siyuan (Ryans) Zhuang
3eb76466a0
[workflow] workflow.wait() feature (#20163)
This PR implements `workflow.wait()`. When combined with checkpointing, it allows skipping sync & checkpointing of unfinished workflows.
2021-11-30 12:30:28 -08:00
Clark Zinzow
adbcc4f79a
[Datasets] Fix boundary sampling concatenation. (#20784)
In `sample_boundaries`, naive concatenation with `np.concatenate()` doesn't work when the single-column sample blocks have varying lengths (e.g., when the original dataset had non-uniform blocks). This PR fixes this by delegating concatenation and NumPy array conversion to the block builder and block accessor, respectively.
2021-11-30 12:21:16 -08:00
mwtian
95c26eec26
[Core][Pubsub][Logging 2/n] Use GCS pubsub for logs (#20492)
Using Ray pubsub for publishing and subscribing logs via GCS, from Python worker, log importer, dashboard and unit tests.

This change is guarded behind the RAY_gcs_grpc_based_pubsub feature flag.
2021-11-30 12:00:44 -08:00
Sven Mika
bec719d823
[RLlib] Trainer sub-class IMPALA (instead of using build_trainer()). (#20570) 2021-11-30 19:08:36 +01:00
Jiajun Yao
e3e2739164
Exit worker when parent raylet dies (#20777)
* Exit worker when parent raylet dies

* Exit worker when parent raylet dies

* Exit worker when parent raylet dies
2021-11-30 10:04:11 -08:00
Jiao
efbb815402
[serve] Add missing deployment calls in doc (#20778)
Co-authored-by: Jiao Dong <jiaodong@anyscale.com>
2021-11-30 10:47:38 -07:00
Sven Mika
3d2e27485b
[RLlib] Trainer sub-class DQN/SimpleQ/APEX-DQN/R2D2 (instead of using build_trainer). (#20633) 2021-11-30 18:05:44 +01:00
Carlo Grisetti
514ed27f63
[RLlib] Fix deprecation message for rllib.env.remote_vector_env (now RemoteBaseEnv) and migrate import (#20750) 2021-11-30 18:01:21 +01:00
mvindiola1
8cee0c03bf
[RLlib] Update max_seq_len in pad_batch_to_sequences_of_same_size (#20743) 2021-11-30 18:00:07 +01:00
Clark Zinzow
b872fdaaac
[Datasets] Last-mile preprocessing docs. (#20712)
Datasets docs for last-mile preprocessing, particularly geared towards ML ingest. This gives groupby, aggregations, and random shuffling examples in the overview page (not present previously), adds some concreteness to our last-mile preprocessing positioning, and provides some preprocessing recipes for a few common transformations.
2021-11-29 23:23:27 -08:00
Yi Cheng
b25a757c91
[release] update release log for 1.9.0 release (#20781)
Update 1.9.0 release log.
2021-11-29 22:20:37 -08:00
matthewdeng
0de105d42f
[train] update Trainer._is_tune_enabled to work when Tune is not installed (#20767) 2021-11-29 20:08:51 -08:00
Chen Shen
6d17fe5fc5
[cuj2] merge latest change to cuj2 (groupby based filtering) and add a debug mode. (#20742)
This PR does two things:

merge latest groupby based filtering to CUJ2
add a debug mode so we only run dummy trainer for measure data processing performance.
2021-11-29 19:10:17 -08:00
xwjiang2010
d697c13bda
[tune] Deflake test_tune_restore.py (#20776)
By switching to on_step_end and keeping track of the number of trials we avoid race conditions in this test suite.
2021-11-29 16:38:46 -08:00
Amog Kamsetty
c03b937b95
[Train] Minor migration guide update (#20683)
* update docs

* tf
2021-11-29 12:42:28 -08:00
Amog Kamsetty
99ed623371
[Release] Use NCCL backend for release tests (#20677)
* use nccl for release tests

* link issue
2021-11-29 12:42:13 -08:00
Alex Wu
d7b14ad9b8
[release][m1] Update sanity check python versions for M1 mac (#20730)
This is a minor update to our release sanity check script so that it runs out of the box on M1. Since M1s only support python 3.8 and 3.9, we shouldn't try to install python 3.6 or 3.7.
2021-11-29 11:38:38 -08:00
mwtian
a4d3898159
[Core][Pubsub][Logging 1/n] add logging support to GCS pubsub in Python (#20604)
This PR adds support for publishing and subscribing to logs in Python via GCS pubsub. It also refactors the Python threaded subscriber to support subscribing and calling `close()` from multiple threads.

We can also move tests and logging support to another PR, but it will make the purpose of the refactoring seems less obvious.
2021-11-29 11:26:01 -08:00
Antoni Baum
aabe9229df
[CI] Make num_files optional for XGBoost test utils (#20761) 2021-11-29 09:35:52 -08:00
xwjiang2010
bf2c5f1417
[Tune] Start restricting TrialRunner/Executor interface exposures. (#20656)
Arbitrary API access is pretty rampant at the moment. It is pretty hard to correct it in one go. This is a necessary incremental step towards a cleaner API.
2021-11-29 08:13:18 -08:00
mvindiola1
eadc7669c5
[RLlib] SampleBatch.concat_samples fix incorrect max_seq_len calculation (#20704) 2021-11-29 12:01:40 +01:00
Qing Wang
84f7062329
[Java] Cleanup temp file of libcore_worker.so (#20748)
Why are these changes needed?
Replace the existing temp file to avoid the issue that the previous worker dies and leaves the temp file there, resulting in the next coming workers are not able to write a new temp file since there is an existing one.
2021-11-29 16:05:06 +08:00
SangBin Cho
6649f078e5
[Internal Observability] Move debug_state.txt to the log dir + support gcs_server debug state (#20722)
Moving debug_state.txt to the log directory. This will help us finding debug_state.txt from the dashboard. See below.
Add debug_state_gcs.txt. This will display GCS' debug state. GCS will also dump debug state to the file every 10 seconds
For periodic printing of debug state, I made it happen every 1 minute. This is because every 10 seconds usually is very spammy.
2021-11-28 20:42:37 -08:00
SangBin Cho
2e1482c38a
[Nightly Test] Fix a wrong prepare script for object store nightly test (#20739)
By mistake, we are running sleep 0 instead of wait_cluster.py
2021-11-28 20:40:59 -08:00
SangBin Cho
6fc6ebb43e
Promote some tests stable. (#20740)
Mark staging tests that pass 10+ time in a row as stable tests
2021-11-28 18:43:39 -08:00
Philipp Moritz
15a51b7c65
Use thread local random number generator (#20708) 2021-11-27 15:44:44 -08:00
Qing Wang
116bda8f05
[Core] Remove duplicated implementations of concurrency group executor. (#20467)
## Why are these changes needed?
ThreadPoolManager and FiberStateManager have the same functionality and logic. This PR aims to remove the duplicate implementations of them.

Add a ConcurrencyGroupExecutor class to do that logic. `ConcurrencyGroupExecutor<FiberState>` is used as FiberStateManager, `ConcurrencyGroupExecutor<BoundedExecutor>` is used as ThreadPoolManager.
2021-11-27 12:57:40 +08:00
Amog Kamsetty
ac843a957c
[Release] Use large instance type for long running impala test (#20691)
* add

* update
2021-11-26 11:42:41 -08:00
xwjiang2010
96b44adf67
[Tune] Remove pg caching with fixes to pbt scheduler (#20403)
This reverts commit f13c2a5350.

Re-land remove PG caching logic.

As a result, pbt scheduler cannot stop and start trial within itself for weight transfer and perturbation now. So these are some changes to pbt scheduler:

1. the trial being perturbed is always left in a PAUSED state upon exiting on_trial_result. This is because instead of maintaining two separate paths for replacing a trial, we consolidate to always "stop" and "restore" and rely on reuse_actor as an optimization if available. (see 2)
2. consolidates pbt replacing a trial with reuse_actor.
3. introduces a NOOP scheduler decision to indicate that (pbt) scheduler has finished its interaction with executor and thus no decision is further needed in Tune loop.

Long term, we should control the interface between scheduler and executor. For example, on_trial_result taking in the whole runner is too much API exposure that we want to remove.
2021-11-26 15:54:45 +00:00
SangBin Cho
97b4490401
[Nightly Test] Readjust nightly test schedule (#20717)
- Removing scale_to logic from object store. We don't need to scale during tests, which will disambiguate infra failures vs app failures.
- Run microbenchmark in core nightly, meaning it will run even more often
- Run weekly scalability tests daily instead. (They are not too expensive).
- Run some core daily tests separately to avoid infra failures.
2021-11-26 06:59:16 -08:00
Qing Wang
55cb88f085
Add python unit test to make sure task in default group doesn't block others. (#20718)
Why are these changes needed?
This PR only adds a unit tests for Python concurrency group.

Related issue number
#20475
2021-11-26 21:10:49 +08:00
Kai Yang
722428a657
[Core] Fix worker pool crash due to incorrect pending_exit_idle_workers_ usage (#20180)
## Why are these changes needed?

When the Java multi-worker feature is on and if workers respond `Exit` requests from the worker pool with delays (even slower than the interval of `TryKillingIdleWorkers`), the worker pool may send additional `Exit` requests to workers before receiving replies of previous ones. This leads to a `RAY_CHECK` failure from here

60df705b4e/src/ray/raylet/worker_pool.cc (L984)

due to executing two reply callbacks in a row.

This PR fixes the bug by ensuring the worker pool only sends new `Exit` requests to a worker if there are no inflight `Exit` requests to any worker of the worker process.
2021-11-26 13:50:07 +08:00