apache / apache/uniffle

[Bug] Latest Uniffle V0.7 release is broken on kubernetes due to the DefaultStorageManagerProvider

Open
#781 8 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.