Skip to content

[Bug] Incorrect local disk size limitation when colocating with Yarn nodemanager #901

Description

@zuston

Code of Conduct

Search before asking

  • I have searched in the issues and found no similar issues.

Describe the bug

When the shuffle server of uniffle colocates with the Yarn nodemanager and using MEMORY_LOCALFILE_HDFS, I found the exception occurs, like this: Unexpected crc value for blockId xxxxxxxxx . (Finally, I found this is caused by the partial data into file when meeting the no-space left exception)

From the corresponding shuffle-server, I found the disk is full.
But why the disk full caused the unexpected crc? I give two possible reasons

  1. The flush event is triggered to write the local disk due to the failure of storage.canWrite()
  2. And then the partial data of one event is written to the file of this disk. The another part data for this event has not been written due to no-space left exception. This makes in-consistency

I want to explain more about stoarge.canWrite() . Actually, this part logic is correct for exclusive resource deployment for uniffle shuffle-server. But when colocating with other service, this method is incorrect. Because the other service may occupy lots of disk size, which will make the disk limit invalid.

Affects Version(s)

master

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions