[Bug] Latest Uniffle V0.7 release is broken on kubernetes due to the DefaultStorageManagerProvider
- Dominant language
- Java
- Stars
- 454
- Forks
- 172
- Avg merge
- 5d 17h
- Merged PRs (30d)
- 5
Description
### Code of Conduct
- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
### Search before asking
- [X] I have searched in the [issues](https://github.com/apache/incubator-uniffle/issues?q=is%3Aissue) and found no similar issues.
### Describe the bug
When attempting to deploy the latest release of Uniffle on Kubernetes with an emptyDir mount that mounts to /mnt/disk1 I am seeing initialization errors for the local storage. It's strange because there are no actual exceptions logged or thrown. Through some debugging I have found that it is likely due to the new way that storageMedia is deterrmined following https://github.com/apache/incubator-uniffle/issues/410.
I have discovered that this new method is seemingly unable to determine the storage type of this mounted disk and therefore seems to return UNKNOWN which breaks the storage initialization.
The only actual error that is thrown is:
```
23/03/29 10:16:47 ERROR ShuffleServer: Errors on initializing shuffle server. java.lang.RuntimeException: Initialize 1 local storage(s) failed, specified local storage paths size: 1, the conf of rss.server.localstorage.initialize.max.fail.number size: 0 at org.apache.uniffle.server.storage.LocalStorageManager.(LocalStorageManager.java:150) at org.apache.uniffle.server.storage.StorageManagerFactory.createStorageManager(StorageManagerFactory.java:36) at org.apache.uniffle.server.ShuffleServer.initialization(ShuffleServer.java:184) at org.apache.uniffle.server.ShuffleServer.(ShuffleServer.java:85) at org.apache.uniffle.server.ShuffleServer.main(ShuffleServer.java:103)
```
It is possible to use "rss.server.storageMediaProvider.from.env.key" and set the type that way which resolves this but this is not very well documented and it took me a while to work out the exact issue.
I can provide more information as required
### Affects Version(s)
master/0.7-rc4
### Uniffle Server Log Output
_No response_
### Uniffle Engine Log Output
_No response_
### Uniffle Server Configurations
_No response_
### Uniffle Engine Configurations
_No response_
### Additional context
_No response_
### Are you willing to submit PR?
- [ ] Yes I am willing to submit a PR!
Contributor guide
Research direction
Start with ShuffleServer.initialization, StorageManagerFactory.createStorageManager, and the LocalStorageManager constructor referenced in the stack trace. Reproduce the Kubernetes deployment using an emptyDir mounted at /mnt/disk1, then trace the storageMedia determination and verify that local storage initialization succeeds without requiring rss.server.storageMediaProvider.from.env.key.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, kubernetes
- Domain
- infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100