Closed thewacokid closed 7 years ago
I'm going to revert my hacks. This was because the version of the code compiled for the quota tool was out of sync with the MARFS_CONFIG_MINOR defined in the running code on the filesystem.
Lesson learned - keep the utilities in sync with the running version.
After digging a bit I found the culprit for our quota system breaking (not accounting for all files). It looks like we updated our version number string in MarFS from "001_004" to "001_006" for the POST xattr. This caused str_2_post to return an error because the MARFS_CONFIG_MINOR variable (which I believe is propagated from the config file) was less than the version listed in the POST xattr. Attempting to set the MarFS version to "1.6" or "1.006" resulted in a config parsing error when instantiating the quota tool (which, in hindsight writing this, probably means I just needed to recompile all of MarFS to pick up the change...). The version currently in the config is "1.0" - perhaps it simply broke whenever we iterated the minor version.
I built a quick hack into the function to return multiple values so I could check if it was simply the version check failing versus a bad parse or some other error. I then detect that version error condition in the quota tool and ignore it. We should just investigate this and ensure things are working as intended.
EDIT: MARFS_CONFIG_MINOR is set in fuse/src/marfs_configuration.h. Dammit.