home *** CD-ROM | disk | FTP | other *** search
/ ftp.parl.clemson.edu / 2015-02-07.ftp.parl.clemson.edu.tar / ftp.parl.clemson.edu / pub / pvfs2 / orangefs-2.8.3-20110323.tar.gz / orangefs-2.8.3-20110323.tar / orangefs / doc / pvfs2-sysint-errors.txt < prev    next >
Text File  |  2004-10-29  |  8KB  |  281 lines

  1. /* client operations can possibly return the following error codes */
  2.  
  3. All operations that use the msgpairarray code can possibly return
  4. -PVFS_EINVAL when invalid arguments are specified, and -PVFS_ENOMEM
  5. when internal memory cannot be allocated.
  6.  
  7. All client sysint calls that issue non-readonly server operations
  8. (this includes create, remove, I/O write, setattr, crdirent, rmdirent,
  9. chdirent, truncate, and mkdir) can possibly return -PVFS_EAGAIN due to
  10. the server's operation mode.  [ req scheduler check of admin
  11. vs. normal mode ]
  12.  
  13. All client sysint calls inherit the possible return values listed for
  14. sys-getattr.sm since it's used by them all.
  15.  
  16. All operations that use the PINT-le-bytefield encoder can possibly
  17. return -PVFS_EINVAL (req or resp specified is invalid) and
  18. -PVFS_ENOSYS (trying to encode an uknown req or resp type), or
  19. -PVFS_EPROTO (the decoding did not complete as expected, or we've
  20. attempted to decode an unknown operation type).
  21.  
  22. In addition to the operation specific error codes listed below, ALL
  23. sysint operations can potentially return BMI classed PVFS2 error codes
  24. generated from the networking layer:
  25.  
  26. i.e. PVFS_ERROR_CLASS(-sm_p->error_code) == PVFS_ERROR_BMI
  27. [ persistant communication failure after all retries have been
  28.   exhausted; you *cannot* see this class of error unless all retries
  29.   have already been attempted ]
  30.  
  31. TODO: have a special 'catch all' communication error code to tell the
  32. caller generically that the communication couldn't be completed in
  33. this case, or leave the specific code to help the caller better deal
  34. with the problem?
  35.  
  36. -------------
  37. sys-create.sm
  38. -------------
  39. -PVFS_EINVAL
  40.  credentials, parent_ref object, object_name, or resp arguments are
  41.  NULL, attribute mask is invalid (contains non-setable attribute
  42.  bits), specified distribution (if any) name is invalid, or the
  43.  specified dfile_count is invalid (either negative or larger than the
  44.  compile time constant PVFS_REQ_LIMIT_DFILE_COUNT)
  45.  
  46. -PVFS_ENOMEM
  47.  system memory allocation failure
  48.  
  49. -PVFS_ENAMETOOLONG
  50.  object_name length is longer than the compile time constant
  51.  PVFS_REQ_LIMIT_SEGMENT_BYTES
  52.  
  53. -PVFS_ENOTDIR
  54.  parent object reference is not a directory
  55.  
  56. -PVFS_EEXIST
  57.  creating the directory entry for the newly created object failed
  58.  because it already exists
  59.  
  60. -PVFS_ENOENT
  61.  the dirent being created contains invalid or unprintable characters
  62.  
  63. -------------
  64. sys-flush.sm
  65. ------------
  66. -PVFS_EINVAL
  67.  invalid object reference specified
  68.  
  69. -PVFS_ENOMEM
  70.  system memory allocation failure
  71.  
  72. -------------
  73. sys-getattr.sm
  74. --------------
  75. -PVFS_EINVAL
  76.  invalid object reference, resp, or attrmask specified; retrieved
  77.  attributes have an unknown type
  78.  
  79. -PVFS_ENOMEM
  80.  system memory allocation failure
  81.  
  82. -PVFS_ENOENT
  83.  the specified object does not exist
  84.  
  85. NOTE: if the attributes retrieved contain a valid symlink target path,
  86. it MUST be freed by the caller
  87.  
  88. -------------
  89. sys-io.sm
  90. ---------
  91. -PVFS_EINVAL
  92.  invalid object reference, fs_id, resp, or I/O operation type; this
  93.  can also be seen if the object being operated on was removed and the
  94.  attributes cannot be retrieved
  95.  
  96. -PVFS_ENOMEM
  97.  system memory allocation failure
  98.  
  99. -PVFS_ECANCEL
  100.  the I/O operation was cancelled (possibly) before completion
  101.  
  102. -PVFS_ENOENT
  103.  the object being operated on was removed (possibly) before completion
  104.  
  105. -PVFS_EISDIR
  106.  the object specified is a directory
  107.  
  108. -PVFS_EBADF
  109.  the object specified is of an unknown type (not a file and not a
  110.  directory), or the internal distribution information is invalid; this
  111.  can be possibly be seen if the object being operation on was removed
  112.  and the I/O operation can no longer perform the specified operation
  113.  
  114. PVFS_ERROR_CLASS(-sm_p->error_code) == PVFS_ERROR_FLOW
  115. [ persistant failure after all retries have been exhausted ]
  116.  
  117. TODO: make sure flow uses PVFS2 specific error codes rather than
  118. errnos -- wrap them like the BMI codes if not
  119.  
  120. -------------
  121. sys-lookup.sm
  122. -------------
  123. -PVFS_EINVAL
  124.  credentials, relative pathname, resp, or parent ref are NULL
  125.  
  126. -PVFS_ENAMETOOLONG
  127.  a segment in the specified pathname is longer than the compile time
  128.  constant PVFS_REQ_LIMIT_SEGMENT_BYTES
  129.  
  130. -PVFS_ENOMEM
  131.  system memory allocation failure
  132.  
  133. -PVFS_EMLINK
  134.  there are more symbolic links in the path being resolved than the
  135.  compile time constant PVFS_REQ_LIMIT_MAX_SYMLINK_RESOLUTION_COUNT
  136.  
  137. -PVFS_ENOENT
  138.  the pathname could not be resolved because it (or one of the path
  139.  components) does not exist
  140.  
  141. -------------
  142. sys-mkdir.sm
  143. ------------
  144. -PVFS_EINVAL
  145.  credentials, parent_ref object, object_name, or resp arguments are
  146.  NULL, or attribute mask is invalid (contains non-setable attribute
  147.  bits)
  148.  
  149. -PVFS_ENAMETOOLONG
  150.  the specified object_name is longer than the compile time constant
  151.  PVFS_REQ_LIMIT_SEGMENT_BYTES
  152.  
  153. -PVFS_ENOMEM
  154.  system memory allocation failure
  155.  
  156. -PVFS_ENOTDIR
  157.  parent object reference is not a directory
  158.  
  159. -PVFS_EEXIST
  160.  creating the directory entry for the newly created object failed
  161.  because it already exists
  162.  
  163. -PVFS_ENOENT
  164.  the dirent being created contains invalid or unprintable characters
  165.  
  166. -------------
  167. sys-readdir.sm
  168. --------------
  169. -PVFS_EINVAL
  170.  credentials, ref, or resp arguments are NULL, or pvfs_dirent_incount
  171.  is greater than the compile time constant PVFS_REQ_LIMIT_DIRENT_COUNT
  172.  
  173. -PVFS_ENOMEM
  174.  system memory allocation failure
  175.  
  176. -PVFS_ENOTDIR
  177.  parent object reference is not a directory
  178.  
  179. NOTE: if there are entries in the dirent_array in the response, it
  180. MUST be freed by the caller
  181.  
  182. -------------
  183. sys-remove.sm
  184. -------------
  185. -PVFS_EINVAL
  186.  credentials, parent_ref, or resp arguments are NULL, or the object
  187.  being removed is of an unkknown type
  188.  
  189. -PVFS_ENOMEM
  190.  system memory allocation failure
  191.  
  192. -PVFS_ENOENT
  193.  the object being removed does not exist
  194.  
  195. -PVFS_ENOTEMPTY
  196.  the object being removed is a directory that is not empty
  197.  
  198. -------------
  199. sys-rename.sm
  200. -------------
  201. -PVFS_EINVAL
  202.  credentials, old_parent_ref, new_parent_ref, old_entry, or new_entry
  203.  arguments are NULL; the old_parent_ref and new_parent_ref refer to
  204.  the same object
  205.  
  206. -PVFS_ENAMETOOLONG
  207.  the new_entry name is longer than the compile time constant
  208.  PVFS_REQ_LIMIT_SEGMENT_BYTES
  209.  
  210. -PVFS_ENOTDIR
  211.  one of the parent objects specified is not a directory
  212.  
  213. -PVFS_ENOMEM
  214.  system memory allocation failure
  215.  
  216. -PVFS_ENOENT
  217.  the specified old_entry doesn't exist
  218.  
  219. --------------
  220. sys-setattr.sm
  221. --------------
  222. -PVFS_EINVAL
  223.  credentials, or ref are NULL, or attribute mask is invalid (contains
  224.  non-setable attribute bits)
  225.  
  226. -PVFS_ENOMEM
  227.  system memory allocation failure
  228.  
  229. -PVFS_EACCES
  230.  the object specified does not have attributes that can be changed, or
  231.  the object type is unrecognized
  232.  
  233. -PVFS_EOVERFLOW
  234.  the meta attribute field 'dfile_count' is invalid (either negative
  235.  or larger than the compile time constant PVFS_REQ_LIMIT_DFILE_COUNT)
  236.  
  237. -PVFS_EPERM
  238.  the credentials supplied are not appropriate for making the requested
  239.  changes
  240.  
  241. --------------
  242. sys-symlink.sm
  243. --------------
  244. -PVFS_EINVAL
  245.  credentials, parent_ref object, entry_name, target, or resp arguments
  246.  are NULL, or attribute mask is invalid (contains non-setable
  247.  attribute bits)
  248.  
  249. -PVFS_ENAMETOOLONG
  250.  the specified entry_name OR target is longer than the compile time
  251.  constant PVFS_REQ_LIMIT_SEGMENT_BYTES
  252.  
  253. -PVFS_ENOMEM
  254.  system memory allocation failure
  255.  
  256. -PVFS_ENOTDIR
  257.  parent object reference is not a directory
  258.  
  259. -PVFS_EEXIST
  260.  creating the directory entry for the newly created object failed
  261.  because it already exists
  262.  
  263. -PVFS_ENOENT
  264.  the dirent being created contains invalid or unprintable characters
  265.  
  266. ---------------
  267. sys-truncate.sm
  268. ---------------
  269. -PVFS_EINVAL
  270.  credentials, or ref object is NULL, or size field is negative
  271.  
  272. -PVFS_ENOMEM
  273.  system memory allocation failure
  274.  
  275. -PVFS_EISDIR
  276.  the object specified is a directory
  277.  
  278. -PVFS_EBADF
  279.  the object specified is of an unknown type (not a file and not a
  280.  directory)
  281.