Yes, you read right. SteamCMD is not working on CephFS (and maybe GlusterFS too, I can’t test it on GlusterFS ).
The reason for that is a “failing”
getdents when on the CephFS.
A colleague told me that error may be related to the
st_size and the
rbytes of CephFS.
strace on xfs filesystem:
strace on CephFS:
As you can see the
st_size on the xfs filesystem reported is higher (
The third parameter (
unsigned int count from
getdents man page), comes as a result from the “weird”
st_size, given to the
getdents() function is lower
32768 than the int
65536 on the CephFS.
In C an
unsigned short int can only be
65535 max, but
65536 got returned..
Next I tried to look into the
rbytes that a colleague mentioned.
And guess what I found looking for a way to disable/fix/modify the
st_size from CephFS.
I found out that the documented
rbytes and for me interesting
norbytes mount option.
When looking at the docs we see that both mount options are documented: http://docs.ceph.com/docs/hammer/man/8/mount.ceph/#options
I used GitHub’s code search but the only occurrences I found are in the man page files.
I have directly created an issue at the Ceph’s Bugtracker to see if it is an issue in my setup or really a missing feature in Ceph. For the interested here is the link to the issue: http://tracker.ceph.com/issues/16738.