Commit a173e553 authored by Mike Hibler's avatar Mike Hibler
Browse files

Frisbee master server compatibility mode fix for vnodes.

The mserver wants to validate nodes by looking up their IP address in the
interfaces table, and vnodes have no interfaces table entries.  So when we
invoke the frisbeehelper in compat mode, do so with the pnode identity
instead. For validation purposes, this is identical.

Is this an issue for non-compat mode? Not right now since all our vnode
implementations that load images make their loadinfo request from the
physical host.  If vnodes start to call the master server on boss directly,
we will have an issue.
parent de382e17
......@@ -4211,9 +4211,18 @@ COMMAND_PROTOTYPE(doloadinfo)
info("%s LOADINFO compat: starting server for imageid %s",
reqp->nodeid, row[5]);
/*
* XXX for vnodes we use the pnode name since the
* master server wants to validate a node_id by
* looking up its control net IP address in the
* interfaces table. Vnodes have no interfaces
* table entries so that won't work.
*/
snprintf(_buf, sizeof _buf,
"%s/sbin/frisbeehelper -n %s %s",
TBROOT, reqp->nodeid, row[5]);
TBROOT,
reqp->isvnode ? reqp->pnodeid : reqp->nodeid,
row[5]);
if ((cfd = popen(_buf, "r")) == NULL)
goto updatemfs;
while (fgets(_buf, sizeof _buf, cfd) != NULL) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment