Re: libax25 axio_flush bug hangs node and fix

From: Paul Lewis (hcb@kamakuranet.ne.jp)
Date: Tue Oct 15 2002 - 21:22:49 EEST

  • Next message: Tihomir Heidelberg: "Re: libax25 axio_flush bug hangs node and fix"

    Are the Symptoms of this shown as -
    Internal connections to my Linux_node then onward connection fails.
    Certain conditions the entry in the node user table stays there until I
    kill the associated node process.

    Also incoming netrom connections to my linux_node where the link breaks
    between the remote and my system does not clear down and leaves the
    user entry (USERS command) until I get round to Killing the associated
    node process. Seem to be from the time I install libax25-0.0.10

    I had been thinking that I was looking for a netrom/node patch as I had
    to rebuild my system in August due to lost of hard disk. and Installed
    the latest Libax25 as part of the rebuild.
    de Paul g4apl (gb7cip Caterham_Uk)

    In message <13346@9A0TCP>, Tihomir Heidelberg <lqw@jccbi.gov>
    writes
    >Hi
    >
    >I noticed that my awznode (a variant of linux node) hangs and
    >use maximum CPU when user starts any external command and
    >incoming AX.25 connection get broken.
    >
    >After tracing found something strange in libax25-0.0.10 in
    >ax25io.c.
    >
    >In function static int flush_obuf(ax25io *p)
    >it returns -1 if write to output file descriptor failed
    >if ((ret = write(p->ofd, p->obuf, p->optr < p->paclen ? p->optr :
    >p->paclen)) < 0)
    >return -1
    >
    >but, in axio_flush(ax25io *p)
    >we have following loop:
    >while (p->optr) {
    > FD_ZERO(&fdset);
    > FD_SET(p->ofd, &fdset);
    > if (select(p->ofd+1, NULL, &fdset, NULL, NULL)<0)
    > return -1;
    > flushed+=flush_obuf(p);
    > flushed+=j;
    >}
    >it is obvious that this loop will never end if above mentioned write
    >failed. After breaking this loop if flush_obuf returns -1 my awnnode
    >does not hangs.
    >
    >Can maintainer of libax25 fix this in next release ?
    >
    >73 de Tihomir Heidelberg, eluynzu@mx.dy.fi
    >-
    >To unsubscribe from this list: send the line "unsubscribe linux-hams" in
    >the body of a message to terhi.victor@logonet.com
    >More majordomo info at http://vger.kernel.org/majordomo-info.html

    -- 
    rdvtmkd.hcrj@mailit.tunk.net
    -
    To unsubscribe from this list: send the line "unsubscribe linux-hams" in
    the body of a message to xwhnvh@hotchkiss.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    



    This archive was generated by hypermail 2b30 : Tue Oct 15 2002 - 21:23:46 EEST