[LU-7890] EFBIG on 2TB singly stripped file with ZFS Created: 21/Mar/16  Updated: 11/Aug/17  Resolved: 14/Jun/16

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.5.0, Lustre 2.7.0, Lustre 2.8.0, Lustre 2.9.0
Fix Version/s: Lustre 2.9.0

Type: Bug Priority: Minor
Reporter: Nathaniel Clark Assignee: Nathaniel Clark
Resolution: Fixed Votes: 0
Labels: zfs

Issue Links:
Related
is related to LU-9862 The patch that landed for LU-7890 le... Resolved
Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

Commentary from Andreas:

It looks like cl_object_maxbytes() is returning a 2TB limit, even though the OSC has maxbytes=2^63.

debug.cli.txt-00000080:00000001:11.0:1458243131.430707:0:19947:0:(vvp_io.c:1060:vvp_io_write_start()) Process entered
debug.cli.txt:00000020:00000001:11.0:1458243131.430708:0:19947:0:(cl_object.c:440:cl_object_maxbytes()) Process entered
debug.cli.txt:00000020:00000001:11.0:1458243131.430709:0:19947:0:(cl_object.c:448:cl_object_maxbytes()) Process leaving (rc=2199023251456 : 2199023251456 : 1fffffff000)

cl_object_maxbytes() is getting this data from lov_object_maxbytes() lsm->lsm_maxbytes but I don't know why that is 2TB.

I see why this is. In lsm_unpackmd_common():

        if (stripe_maxbytes == LLONG_MAX)
                stripe_maxbytes = LUSTRE_EXT3_STRIPE_MAXBYTES;

        if (lsm->lsm_stripe_count == 0)
                lsm->lsm_maxbytes = stripe_maxbytes * lov->desc.ld_tgt_count;
        else
                lsm->lsm_maxbytes = stripe_maxbytes * lsm->lsm_stripe_count;

LLONG_MAX == MAX_LFS_FILESIZE == 2^63 so lsm_unpackmd_common() thinks that this is uninitialized. It also needs to avoid overflow here.



 Comments   
Comment by Gerrit Updater [ 22/Mar/16 ]

Nathaniel Clark (nathaniel.l.clark@intel.com) uploaded a new patch: http://review.whamcloud.com/19066
Subject: LU-7890 lov: Ensure correct operation for large object sizes
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 4305e392cad5dc7470d5f8daf4cd8577504fcfc6

Comment by Gerrit Updater [ 14/Jun/16 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/19066/
Subject: LU-7890 lov: Ensure correct operation for large object sizes
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 3ddcf5b4a13851805f15b39aa1e95aee9b291132

Generated at Sat Feb 10 02:12:48 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.