[torquedev] mom_priv/config line length limit,
OS X struct differences
Garrick Staples
garrick at usc.edu
Thu Feb 5 20:03:44 MST 2009
On Fri, Feb 06, 2009 at 11:01:28AM +1100, Neil Hodgson alleged:
> I should introduce myself first. I am working for SIRCA, a financial
> services research organisation that uses TORQUE 1.2.0p5 (with local
> patches) to run financial data queries on a set of nodes. A locally
> developed scheduler written in TCL uses job type to schedule each job
> onto a node that wants to receive that job type. Further, each node
> specifies a relative priority for job types. The server and scheduler
> run on a pair of machines using Red Hat clustering with a floating IP
> address and name used to communicate with the primary. The local patches
> to the scheduler implement a -h option for selecting the hostname
> similar to the -H option to pbs_server. I worked for SIRCA for 6 months
> last year, mostly on other areas but also made the TCL scheduler more
> robust. I am back for around a month to upgrade TORQUE to 2.3.6 and to
> rewrite the scheduler in C++ so it can be maintained by any of the
> developers here.
>
> The first minor issue is that the code that reads mom_priv/config
> uses fgets with a 120 character buffer. This has led to problems here
> when a property for a node gets large. It would be better for SIRCA if
> this buffer was larger - perhaps 250 to 1000 characters.
>
> On OS X, sockaddr_in is different to Linux, notably in starting with
> a sin_len field.
>
> struct sockaddr_in {
> __uint8_t sin_len;
> sa_family_t sin_family;
> in_port_t sin_port;
> struct in_addr sin_addr;
> char sin_zero[8]; /* XXX bwg2001-004 */
> };
>
> In TORQUE, most common code fills in the sin_family, sin_port, and
> sin_addr fields which leaves the sin_len and sin_zero fields
> uninitialized. This appears to be safe in standard TORQUE where
> INADDR_ANY is often used but can cause failures when sin_addr is set to
> something else. The failures stopped when the structs were fully
> initialized to zero with memset(&a, 0, sizeof(a)). I think it would be
> good defensive programming to always fully initialize these structures.
> While initializing by assigning one field to zero like
>
> struct sockaddr_in a={0};
>
> would be prettier in my opinion, recent GCC produces a warning for this
> idiom.
Can you provide a patch?
> The manual page for pbs_server still shows the hostname parameter as
> -h rather than -H.
Thanks, I'll fix this.
--
Garrick Staples, GNU/Linux HPCC SysAdmin
University of Southern California
See the Prop 8 Dishonor Roll at http://www.californiansagainsthate.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.supercluster.org/pipermail/torquedev/attachments/20090205/b430c2a9/attachment.bin
More information about the torquedev
mailing list