tree d38a09b2408ea76c6b6a51f2c2c985c46a35b888
parent 576a925a21576467ab8713ca1d4b569d0a0af5c8
author Junfan Zhang <zuston@apache.org> 1707120622 +0800
committer GitHub <noreply@github.com> 1707120622 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJlwJfuCRC1aQ7uu5UhlAAAQokQAESvKdB6dQGiZqZTOchZdwNC
 c8DyXvFZoPcqybyiuQkEtWosAs1fjZrSogN3QkkBVBISmHZQOisu84zBjSFLHrZF
 QcqvjHnhzFnQnO9ssw3HoaqfKOPqawwnWywy0dOUsehUzgpXESqS4qzq69HtjxNa
 pPa8HFB0bcY6IjsIYLb5bACSfcyQbSQmP38DRQCZJiUp+4fB7LlBVludBQJIafbs
 Fdy40576pPFXiTRRTAGToyyrBOF6qehmAjiBUgS8FRspOJ2nBIyqUpx4Gt9Q+76V
 BNETr4vzstNjh2rD7XX4U0vluG5w8FLTWWlFflWh/UVm0tyr92/B2gr5XeZL73xD
 P2x9VgudgoxjZY7cqjs2NE5ypbbH/7WijeH9o2vHXXx9IHd1y2CvtweSV/E94Vhc
 VoVS9HOqPe7oJlnyuazHWjteWjmqsjwZrX1dH/oeqipPXKQ33YbgGoLBA2u2RcIn
 gKCT62r26lBN9Z7RNexSpJKPcDad+E5AP8rg3K5alzt2MVdXkF/qIo7fXx3+exOP
 Z0KuqjyUctko3eBxN0xi97aM6ZoF8oBO5PO8lJOLKijRT+Mso+z6ZJwMbIRiOrrM
 q3AwWtn5dFxwg1RL0KSsefJHB51C1+HHaqU+/y+RjpXwYbw6kru0Pi/MlyMeluWx
 JObiYTJOJF+BW6hC9AFp
 =NRjP
 -----END PGP SIGNATURE-----
 

[#1407] fix(rust): return error when getting data from hdfs by client (#1507)

### What changes were proposed in this pull request?

If client using the `memory_local` type, but the server is using `memory_hdfs` type, 
server will panic when getting shuffle data. This PR is to avoid this.

### Why are the changes needed?

This is the sub-tasks for #1407 .

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

needn't
