[drmaa-wg] Another Argument for a DRMAA_ERRNO_UNSUPPORTED_ATTRIBUTE Error Code
Daniel Templeton
Dan.Templeton at Sun.COM
Thu Aug 4 04:37:59 CDT 2005
I believe the way we phrased it is that introspective languages, such as
the Java platform, will use explicit getters and setters.
Non-introspective languages, like C, will use the general getter and
setter function from the original DRMAA spec.
Daniel
Roger Brobst wrote:
>========
>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.
>>
>>
>
>
>
--
***************************************************
* Daniel Templeton ERGB01 x60220 *
* Staff Engineer, Sun N1 Grid Engine *
***************************************************
* "Roads? Where we're going we don't need roads." *
* -Dr. Emmett Brown *
* Back to the Future (1985) *
***************************************************
More information about the drmaa-wg
mailing list