Project

General

Profile

Actions

Bug #66771

open

client: `ll_writev`/`ll_readv` suffers int overflow if write len exceeds 2GiB

Added by Dhairya Parmar over 1 year ago. Updated 9 months ago.

Status:
In Progress
Priority:
High
Category:
Correctness/Safety
Target version:
-
% Done:

0%

Source:
Development
Backport:
reef
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
Client
Labels (FS):
Pull request ID:
Tags (freeform):
Merge Commit:
Fixed In:
Released In:
Upkeep Timestamp:

Description

This happens because `Client::ll_writev` calls `Client::_preadv_pwritev_locked` with `clamp_to_int` param value passed as `false` and since the `ObjectCacher::file_write`'s return type is `int`, there is int overflow and the retval from the sync vectored write call is -ve val.

Actions #1

Updated by Venky Shankar over 1 year ago

  • Category set to Correctness/Safety
  • Assignee set to Dhairya Parmar
  • Target version set to v20.0.0
  • Backport set to quincy,reef,pacific
Actions #2

Updated by Dhairya Parmar over 1 year ago

So as per https://man7.org/linux/man-pages/man2/write.2.html the max bytes that can be transferred through write() and similar system calls is 2147479552 bytes. Therefore this isn't actually a bug

Actions #3

Updated by Dhairya Parmar over 1 year ago

  • Subject changed from client: `ll_writev` suffers int overflow if write len exceeds 2GiB to client: `ll_writev`/`ll_readv` suffers int overflow if write len exceeds 2GiB
Actions #4

Updated by Dhairya Parmar over 1 year ago

  • Status changed from New to In Progress
  • Pull request ID set to 58481
Actions #5

Updated by Konstantin Shalygin over 1 year ago

  • Backport changed from quincy,reef,pacific to quincy,reef
Actions #6

Updated by Konstantin Shalygin about 1 year ago

  • Backport changed from quincy,reef to reef
Actions #7

Updated by Patrick Donnelly 9 months ago

  • Target version deleted (v20.0.0)
Actions

Also available in: Atom PDF