Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Mar 2004 22:57:02 -0800 (PST)
From:      Gregory Harris <gharris@ipsentinel.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/64739: data being lost through FIFOs
Message-ID:  <200403260657.i2Q6v2o0056434@www.freebsd.org>
Resent-Message-ID: <200403260700.i2Q70WRh063267@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         64739
>Category:       kern
>Synopsis:       data being lost through FIFOs
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Mar 25 23:00:31 PST 2004
>Closed-Date:
>Last-Modified:
>Originator:     Gregory Harris
>Release:        5.1
>Organization:
>Environment:
FreeBSD enos.ipsentinel.com 5.1-SECURITY FreeBSD 5.1-SECURITY #0: Thu Feb  5 08:13:19 GMT 2004 root@builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386

>Description:
Data seems to be either be getting lost in FIFOs, or the FIFOs are not being properly flushed when the write end is being closed.  Attached is a tarball containing a simple client and server program.  The program operates normally on FreeBSD 4.8, Linux, and Solaris, but fails to operate properly under FreeBSD 5.1, and FreeBSD 5.2.1.  Sorry for submitting a sample program, but it was the only way I can replicate the error.
>How-To-Repeat:
Attached is some sample code to illustrate the problem.  Run the server program first via ./server, and then run the client program via ./client.  FIFO data will then be sent from the server to the client saying "test x" where x is a number from 0 to 9.  There is a 1 second pause between each message.  Before the counter reaches 9, hit ctrl-c to send SIGINT to the client.  The client program will then send a message over a FIFO to the server telling it to stop.  The server will then send a SIGUSR2 signal to its child process managing the test data, which then SHOULD send "___end" back to the client over the FIFO to cause the client to shutdown and go back to a shell prompt.  However the "___end" message is not received so the client just hangs waiting for the final message.
>Fix:
      
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200403260657.i2Q6v2o0056434>