W3C home > Mailing lists > Public > www-lib@w3.org > January to March 2003

Patch for HTProfil.c

From: Arthur P. Smith <apsmith@aps.org>
Date: Thu, 6 Feb 2003 19:15:18 -0500 (EST)
To: www-lib@w3.org
Message-ID: <Pine.GSO.4.44.0302061904310.17439-100000@kirk>

We have been using the www-lib with xmlrpc in several C programs compiled
and run on Solaris 7 systems, and were receiving occasional bus errors
and core dumps that we localized to Library/src/HTEvtLst.c, in
the subroutine EventOrder_executeAndDelete().

Turning on WWW_TraceFlag we found the problem to be the re-use of a socket
that had previously been closed by HTChannel_deleteAll() in HTLibTerminate().
In between the first set of calls to the www libs and the later calls that had
the bus error, we were opening and closing various files on the system, so
when HTEventList_register was called again later, it was using a different
socket file descriptor; hence the problem.

The resolution was to make sure that HTEventList_unregisterAll() is
also called when the channels are deleted. Since xmlrpc-c was cleaning
up with a call to HTProfile_delete(), we just added that line
to that subroutine, and things work for us. However, there may be
a better location for this call. It's definitely a bug needing a patch
somewhere in lib-www. I hope this makes it into the next release!

			Arthur Smith (apsmith@aps.org)

cvs diff HTProfil.c
Index: HTProfil.c
===================================================================
RCS file: /sources/public/libwww/Library/src/HTProfil.c,v
retrieving revision 2.30
diff -r2.30 HTProfil.c
34a35,36
>       HTEventList_unregisterAll();
>
Received on Thursday, 6 February 2003 19:15:19 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 23 April 2007 18:18:43 GMT