[drmaa-wg] Another Argument for a DRMAA_ERRNO_UNSUPPORTED_ATTRIBUTE Error Code

Roger Brobst rogerb at cadence.com
Mon Jul 18 09:47:29 CDT 2005



========
Regarding specifying unsupported attributes ...

The C-lang and current IDL spec have provisions for
handling both required and optional DRMAA attributes.

The 3rd type of attribute, DRMS-specific, was intentionally
not discussed in the C-lang binding spec because they do not
impact the API.  From DRMAA's perspective they are simply
attributes which are not named with the DRMAA_ prefix.

Since the C-lang binding has the caller provide the
attribute name and value, there is no linkage problem
if the underlying implementation does not understand
the DRMS-specific attribute.

How does the current IDL spec support DRMS-specific attributes,
keeping in mind that the end customer should be able to choose
the DRMAA implementation leveraged by the ISV software ?
Explicit getters/setters for each attribute would seem
to be problematic (certainly from a linkage perspective).

========
Regarding the set of supported attributes changing ...

I think the C-lang binding spec should document that the value
output by drmaa_get_attribute_names (and 
drmaa_get_vector_attribute_names) should be valid for the 
lifetime of the drmaa session.


-Roger


In a previous e-mail, Peter Troeger wrote:
> >>I think you have correctly identified that the error codes
> >>specified in the C-lang spec for drmaa_set_attribute() do
> >>not adequately describe the situation when an attribute is
> >>not supported.
> >>
> >>Should it ?
> >>I did not locate any text in the spec which indicates that
> >>it is an error to specify an unsupported (or unrecognized)
> >>attribute.
> >>On the other hand, I also did not locate any text which
> >>indicates that unsupported attributes will be ignored.
> >>
> > 
> > I think you just discovered a new tracker item. :)  It should be
> > specified one way or the other.  Otherwise, DRMAA applications will not
> > be portable across implementations.
> 
> The current IDL spec seems to make a clear description:
> 
> "In the job template there is a distinction between mandatory and 
> optional attributes. A language binding implementation MUST provide 
> implementations for all DRMAA attributes, both required and optional. 
> The setter and getter implementations for optional attributes MUST throw
> UnsupportedAttributeException in languages which support exceptions.  In 
> languages which do not support exceptions, the optional attribute 
> setters and getters MUST return some form of error.  The service 
> provider implementation SHOULD then override the setters and getters for
> supported optional attributes with methods that operate normally."
> 
> and:
> 
> "5.6.26 UnsupportedAttributeException: The given job template attribute 
> is not supported by the current DRMAA implementation."
> 
> In sum, it is specified to be an error if you use an unsupported 
> attribute. If we have a new C-binding document, based on the IDL-spec, 
> then everything should be fine !?
> 
> >>>(Caching the supported argument list doesn't help if
> >>>the list can change during the lifetime of the DRMAA
> >>>application, as is the case with SGE.)
> > ... 
> > You bring up an interesting point.  Should a job template be aware of
> > such changes in the DRMS?  Right now, ours are.  I can easily see the
> > point that a mutable job template is a moving target and could drive a
> > developer nuts.  On the other hand, a job template may be very long
> > lived.  We completely take away the control from the admin if we allow a
> > job template to hold onto an environment that should no longer exist.
> > 
> > Honestly, what makes sense to me at this moment is to specify the list
> > of supported optional attributes as immutable for a given
> > implementation.  In cases like ours, where our support of an attribute
> > is dependent on the configuration of the DRMS, we should return
> > something like DRMAA_ERRNO_DENIED_BY_DRM on job submission.  Thoughts?
> 
>  From the viewpoint of an application developer, I have a very bad 
> feeling with this. I would never expect a change of the list of 
> supported optional attributes, especially not during the runtime of my 
> application. If the admin wants to do some reconfiguration, she is 
> reponsible of considering still running applications. If you really 
> think that this a useful feature at all, I would support the 
> DRMAA_ERRNO_DENIED_BY_DRM suggestion. However, the spec really needs to 
> make this explicit.
> 
> Peter.





More information about the drmaa-wg mailing list