[9fans] (no subject) - Plan9

This is a discussion on [9fans] (no subject) - Plan9 ; srv: timeout establishing connection to net!pinky!9fs whereas before it worked. If I do something like srv -m 'il!pinky!9fs' pinky /mnt/pinky that works, so I thought that there may have been a change that requires us to be specific about using ...

+ Reply to Thread
Results 1 to 4 of 4

Thread: [9fans] (no subject)

  1. [9fans] (no subject)

    srv: timeout establishing connection to net!pinky!9fs

    whereas before it worked. If I do something like

    srv -m 'il!pinky!9fs' pinky /mnt/pinky

    that works, so I thought that there may have been a change
    that requires us to be specific about using il, but adding
    proto=il to pinky's ndb/local entry and 'refresh-ing' /net/cs
    didn't help.

    Am I missing something in my configuration, or is
    this an error that slipped through in recent updates?

    Thanks.

    Greg

  2. Re: [9fans] (no subject)

    it appears that net! is hueristic.

    we use il here and this is the network table (from /sys/src/cmd/ndb/cs.c)
    that works for us. i'm not sure why Nilfast was eliminated from the current
    table, but the current ndb/cs doesn't work for us.

    i would suspect that tcp is timing out in an antisocial way and not allowing
    the next element of the network table to be processed.

    - erik

    /*
    > * net doesn't apply to (r)udp, icmp(v6), or telco (for speed)

    */
    Network network[] = {
    [Nilfast] { "il", iplookup, iptrans, 0, 1 },
    [Ntcp] { "tcp", iplookup, iptrans, 0, 0 },
    [Nil] { "il", iplookup, iptrans, 0, 0 },
    [Nudp] { "udp", iplookup, iptrans, 1, 0 },
    [Nicmp] { "icmp", iplookup, iptrans, 1, 0 },
    [Nicmpv6] { "icmpv6", iplookup, iptrans, 1, 0 },
    [Nrudp] { "rudp", iplookup, iptrans, 1, 0 },
    [Ntelco] { "telco", telcolookup, telcotrans, 1, 0 },
    { 0 },
    };

  3. Re: [9fans] (no subject)

    in this case "net!somehost!9fs" could be translated il!somehost!9fs
    or tcp!somehost!9fs. the current algorithm is to look through the possibities
    and see if there exists somehost on protocol $protocol for service 9fs.
    the first match wins. this depends on the order in the table.
    the current algorithm doesn't check to see if any servers were found.

    it wouldn't be hard to change things so that the first /available/ server is used.
    it's a one line change, in fact.

    /sys/src/cmd/ndb/cs.c:1182 - /usr/quanstro/dist/sys/src/cmd/ndb/cs.c
    - if(rv > 0)
    - break;
    + break;

    the downside to this is that the behavior of "net" becomes more dependent
    on configuration. but Nilfast did the same thing. so i don't think this
    really changes anything.

    the one reservation i have is i don't know why the the code didn't loop.
    the first version in sourcesdump also has the break. dial(2) seems to
    argue against the break.

    Network is any directory listed in /net or the special
    token, net. Net is a free variable that stands for any net-
    work in common between the source and the host netaddr.

    so i would think the test for responses should go in.

    - erik

  4. Re: [9fans] (no subject)

    as geoff has pointed out, the flaw in this logic is that cs doesn't
    make the connection, it just proposes a dialable address.

    it turns out our problem was traced to someone reusing an inuse ip address.

    - erik

    On Sun Jul 8 10:50:21 EDT 2007, quanstro@coraid.com wrote:
    > in this case "net!somehost!9fs" could be translated il!somehost!9fs
    > or tcp!somehost!9fs. the current algorithm is to look through the possibities
    > and see if there exists somehost on protocol $protocol for service 9fs.
    > the first match wins. this depends on the order in the table.
    > the current algorithm doesn't check to see if any servers were found.
    >
    > it wouldn't be hard to change things so that the first /available/ server is used.
    > it's a one line change, in fact.
    >
    > /sys/src/cmd/ndb/cs.c:1182 - /usr/quanstro/dist/sys/src/cmd/ndb/cs.c
    > - if(rv > 0)
    > - break;
    > + break;
    >
    > the downside to this is that the behavior of "net" becomes more dependent
    > on configuration. but Nilfast did the same thing. so i don't think this
    > really changes anything.
    >
    > the one reservation i have is i don't know why the the code didn't loop.
    > the first version in sourcesdump also has the break. dial(2) seems to
    > argue against the break.
    >
    > Network is any directory listed in /net or the special
    > token, net. Net is a free variable that stands for any net-
    > work in common between the source and the host netaddr.
    >
    > so i would think the test for responses should go in.
    >
    > - erik


+ Reply to Thread