From kjkoster@www.kjkoster.org  Mon Jan 20 02:07:45 2003
Return-Path: <kjkoster@www.kjkoster.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP
	id A443837B401; Mon, 20 Jan 2003 02:07:45 -0800 (PST)
Received: from www.kjkoster.org (213-84-106-195.adsl.xs4all.nl [213.84.106.195])
	by mx1.FreeBSD.org (Postfix) with ESMTP
	id E505443EB2; Mon, 20 Jan 2003 02:07:38 -0800 (PST)
	(envelope-from kjkoster@www.kjkoster.org)
Received: from www.kjkoster.org (localhost [127.0.0.1])
	by www.kjkoster.org (8.12.6/8.12.5) with ESMTP id h0KA8iae022322;
	Mon, 20 Jan 2003 11:08:44 +0100 (CET)
	(envelope-from kjkoster@www.kjkoster.org)
Received: (from kjkoster@localhost)
	by www.kjkoster.org (8.12.6/8.12.6/Submit) id h0KA8hqQ022321;
	Mon, 20 Jan 2003 11:08:43 +0100 (CET)
Message-Id: <200301201008.h0KA8hqQ022321@www.kjkoster.org>
Date: Mon, 20 Jan 2003 11:08:43 +0100 (CET)
From: Kees Jan Koster <kjkoster@kjkoster.org>
Reply-To: Kees Jan Koster <kjkoster@kjkoster.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc: znerd@freebsd.org
Subject: daemonctl scribbles over log file when single file is specified
X-GNATS-Notify:

>Number:         47245
>Category:       ports
>Synopsis:       daemonctl scribbles over log file when single file is specified
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    znerd
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jan 20 02:10:03 PST 2003
>Closed-Date:    Sun Nov 07 06:12:45 GMT 2004
>Last-Modified:  Sun Nov 07 06:12:45 GMT 2004
>Originator:     Kees Jan Koster
>Release:        FreeBSD 4.7-STABLE i386
>Organization:
n.a.
>Environment:
System: FreeBSD www.kjkoster.org 4.7-STABLE FreeBSD 4.7-STABLE #23: Fri Oct 11 00:03:25 CEST 2002 kjkoster@LikeEver.kjkoster.org:/usr/obj/usr/src/sys/WWW i386

Daemonctl script for Orion and Tomcat.
>Description:
Specifying a single log file for Orion (or Tomcat) in the port's Makefile
will cause the first few lines in that log file to be garbled. This is caused
by the way daemonctl opens the log file.
>How-To-Repeat:
Specify the same file for the symbols STDOUT_LOG and STDERR_LOG in the Makefile
and reinstall the port. Notice how stderr and stdout overwrite eachother in the
fist few lines of that file.
>Fix:

Here's an untested fix.

--- daemonctl.c.orig    Mon Jan 20 10:54:56 2003
+++ daemonctl.c Mon Jan 20 10:55:18 2003
@@ -385,24 +385,22 @@
        }

        /* Open the stdout log file */
-       stdoutLogFile = open("%%STDOUT_LOG%%", O_WRONLY);
+       stdoutLogFile = open("%%STDOUT_LOG%%", O_APPEND);
        if (stdoutLogFile < 0) {
                printf(" [ FAILED ]\n");
                fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to open %%STDOUT_LOG%% for writing: ");
                perror(NULL);
                exit(ERR_STDOUT_LOGFILE_OPEN);
        }
-       lseek(stdoutLogFile, (off_t) 0, SEEK_END);

        /* Open the stderr log file */
-       stderrLogFile = open("%%STDERR_LOG%%", O_WRONLY);
+       stderrLogFile = open("%%STDERR_LOG%%", O_APPEND);
        if (stderrLogFile < 0) {
                printf(" [ FAILED ]\n");
                fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to open %%STDERR_LOG%% for writing: ");
                perror(NULL);
                exit(ERR_STDERR_LOGFILE_OPEN);
        }
-       lseek(stderrLogFile, (off_t) 0, SEEK_END);

        /* Split this process in two */
        pid = fork();



>Release-Note:
>Audit-Trail:

From: Ceri Davies <setantae@submonkey.net>
To: freebsd-gnats-submit@freebsd.org
Cc:  
Subject: Re: ports/47245: daemonctl scribbles over log file when single file is specified
Date: Mon, 20 Jan 2003 15:17:20 +0000

 Adding to audit trail, from misfiled PR 47247:
 
  Message-Id: <200301201112.50255.znerd@FreeBSD.org>
  Date: Mon, 20 Jan 2003 11:12:50 +0100
  From: Ernst de Haan <znerd@freebsd.org>
  To: Kees Jan Koster <kjkoster@kjkoster.org>,
  	FreeBSD-gnats-submit@freebsd.org
  In-Reply-To: <200301201008.h0KA8hqQ022321@www.kjkoster.org>
 
  Kees Jan,
  
  Thanks for the patch! Could you test it (or ask some freebsd-java buds)?
  
  Ernst
  

From: Christian Weisgerber <naddy@mips.inka.de>
To: kjkoster@kjkoster.org
Cc: freebsd-gnats-submit@freebsd.org
Subject: Re: ports/47245: daemonctl scribbles over log file when single file is specified
Date: Mon, 20 Jan 2003 19:21:03 +0100 (CET)

 In article <200301201008.h0KA8hqQ022321@www.kjkoster.org> you write:
 
 > >Number:         47245
 > >Category:       ports
 > >Synopsis:       daemonctl scribbles over log file when single file is specified
 > 
 > Daemonctl script for Orion and Tomcat.
 
 What port does this PR refer to?
 
 -- 
 Christian "naddy" Weisgerber                          naddy@mips.inka.de

From: k.j.koster@telecom.tno.nl
To: freebsd-gnats-submit@FreeBSD.org, naddy@mips.inka.de,
	znerd@freebsd.org
Cc:  
Subject: Re: ports/47245: daemonctl scribbles over log file when single fi
	le is specified
Date: Tue, 21 Jan 2003 20:39:57 +0100

 Dear All,
 
 I tested the (new) fix below and it seems to work. This patch adds the
 O_APPEND flag to the open() call and removed the problematic lseek(). The
 code below runs on our nightly build server, so I'll see mangled entries
 soon enough if they return.
 
 In answer to Christian's question: I have found this in www/orion, but this
 affects all ports that use daemonctl.c from www/jakarta-tomcat4. A quick
 grep reveals them to be the following:
 
 	java/jboss2
 	java/jboss3
 	www/orion
 	www/orion-devel
 	www/jakarta-tomcat3
 	www/jakarta-tomcat4
 	www/jakarta-tomcat41
 
 --- daemonctl.c.orig    Tue Jan 21 20:19:24 2003
 +++ daemonctl.c Tue Jan 21 20:22:28 2003
 @@ -385,24 +385,22 @@
         }
 
         /* Open the stdout log file */
 -       stdoutLogFile = open("%%STDOUT_LOG%%", O_WRONLY);
 +       stdoutLogFile = open("%%STDOUT_LOG%%", O_WRONLY | O_APPEND);
         if (stdoutLogFile < 0) {
                 printf(" [ FAILED ]\n");
                 fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to open
 %%STDOUT_LOG%% for writing: ");
                 perror(NULL);
                 exit(ERR_STDOUT_LOGFILE_OPEN);
         }
 -       lseek(stdoutLogFile, (off_t) 0, SEEK_END);
 
         /* Open the stderr log file */
 -       stderrLogFile = open("%%STDERR_LOG%%", O_WRONLY);
 +       stderrLogFile = open("%%STDERR_LOG%%", O_WRONLY | O_APPEND);
         if (stderrLogFile < 0) {
                 printf(" [ FAILED ]\n");
                 fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to open
 %%STDERR_LOG%% for writing: ");
                 perror(NULL);
                 exit(ERR_STDERR_LOGFILE_OPEN);
         }
 -       lseek(stderrLogFile, (off_t) 0, SEEK_END);
 
         /* Split this process in two */
         pid = fork();
Responsible-Changed-From-To: freebsd-ports-bugs->znerd 
Responsible-Changed-By: petef 
Responsible-Changed-When: Tue Jan 21 13:57:28 CST 2003 
Responsible-Changed-Why:  
Over to the maintainer of all these ports. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=47245 
State-Changed-From-To: open->closed 
State-Changed-By: linimon 
State-Changed-When: Sun Nov 7 06:12:15 GMT 2004 
State-Changed-Why:  
The port to which this PR applied (www/orion) was removed in June 2004, 
sorry. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=47245 
>Unformatted:
