Bug 6745 - Sever io problems on branch rdbuf
Summary: Sever io problems on branch rdbuf
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 3.1.1
: P3 normal
Target Milestone: ---
Assignee: Benjamin Kosnik
URL:
Keywords:
: 8127 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-05-20 09:56 UTC by peter
Modified: 2003-07-25 17:33 UTC (History)
4 users (show)

See Also:
Host: i686-pc-linux-gnu
Target: i686-pc-linux-gnu
Build: i686-pc-linux-gnu
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description peter 2002-05-20 09:56:01 UTC
There are severe io related problems on the branch. I believe those
problems are related to the recent check-ins. For example, consider
the following code tc.C. When run interactively, typing ^D on the
keyboars has no effect, the program does not finish. When the input
and output file descriptors are redirected to files, the programm does not
terminate either. There are other io related problems I have not yet
investigated. For example, when running the boost regression suite,
the output of the html status file, cs-linux.html, is
truncated. "libs/config/test/config_info.cpp run" is the last line
(the first test of the regression suite), though all tests pass.

Release:
3.1.1 20020519 (prerelease)

Environment:
System: Linux kiste 2.4.18 #8 Sat Mar 9 15:33:15 CET 2002 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads=posix --enable-languages=c,c++,f77,objc

How-To-Repeat:
source code tc.C

#include <iostream>

int main ()
{
    std::cout << std::cin.rdbuf();
}

g++ -v -o tc tc.C -W -Wall
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/specs
Configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads=posix --enable-languages=c,c++,f77,objc
Thread model: posix
gcc version 3.1.1 20020519 (prerelease)
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/cc1plus -v -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=1 -D__ELF__ -Dunix -D__gnu_linux__ -Dlinux -D__ELF__ -D__unix__ -D__gnu_linux__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D_GNU_SOURCE -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ tc.C -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -D__GXX_ABI_VERSION=100 -quiet -dumpbase tc.C -W -Wall -version -o /tmp/ccPq221W.s
GNU CPP version 3.1.1 20020519 (prerelease) (cpplib) (i386 Linux/ELF)
GNU C++ version 3.1.1 20020519 (prerelease) (i686-pc-linux-gnu)
	compiled by GNU C version 3.1.1 20020519 (prerelease).
ignoring nonexistent directory "NONE/include"
ignoring nonexistent directory "/usr/local/i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include/g++-v3
 /usr/local/include/g++-v3/i686-pc-linux-gnu
 /usr/local/include/g++-v3/backward
 /usr/local/include
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/../../../../i686-pc-linux-gnu/bin/as -V -Qy -o /tmp/ccd2RdDf.o /tmp/ccPq221W.s
GNU assembler version 020428 (i686-pc-linux-gnu) using BFD version 020428 20020428

./tc < tc.C > aus // does not finish
./tc 
hallo
^D^D^D^D^D^D^D //does not return to shell either!
Comment 1 Paolo Carlini 2002-05-20 14:09:03 UTC
State-Changed-From-To: open->analyzed
State-Changed-Why: Confirmed.
Comment 2 Benjamin Kosnik 2002-05-29 05:04:08 UTC
Responsible-Changed-From-To: unassigned->bkoz
Responsible-Changed-Why: Mine.
Comment 3 Joe Buck 2002-10-23 15:03:20 UTC
State-Changed-From-To: analyzed->closed
State-Changed-Why: Verified as no longer present either in 3.2 branch or trunk as of
    23-oct-2002.
Comment 4 Paolo Carlini 2002-10-24 00:56:11 UTC
State-Changed-From-To: closed->analyzed
State-Changed-Why: After private mail with Benjamin we believe that this PR
    unfortunately must be kept open. In fact, the behaviour of
    v2 is restored but something is still NOT ok in this area.
    Consider the following run time session for the testcase:
    
    paolo~>a.out
    dddd<NEWLINE>
    sssss<NEWLINE>
    <CTRL-D>
    dddd // echoed
    sssss // echoed
    <CTRL-D>
    paolo~>
    
    That is, after a <NEWLINE> no chars are echoed at all. They
    are all output together upon a first <CTRL-D>, then another
    is needed to end program execution.
    Compare to 3.0.4/STLPort/Icc:
    
    paolo~>a.out
    dddd<NEWLINE>
    dddd  // echoed
    sssss<NEWLINE>
    sssss  // echoed
    <CTRL-D>
    paolo~>
    
    Ciao, Paolo.
Comment 5 Joe Buck 2002-10-28 11:06:39 UTC
From: Joe Buck <jbuck@synopsys.com>
To: bkoz@gcc.gnu.org, gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org,
   peter@snake.iap.physik.tu-darmstadt.de
Cc:  
Subject: Re: libstdc++/6745: Sever io problems on branch rdbuf
Date: Mon, 28 Oct 2002 11:06:39 -0800

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6745
 
 I'm going to downgrade the priority of this PR to "medium".  The reason 
 is based
 on Paolo's comment:
 
  > After private mail with Benjamin we believe that this PR
  > unfortunately must be kept open. In fact, the behaviour of
  > v2 is restored but something is still NOT ok in this area.
 
 So, we still have a bug, but we no longer have a regression: this stuff
 works as well as it ever did.
 
 So this one should not hold up 3.2.1.  Unfortunately, there are about 15
 other high-priority PRs.
 

Comment 6 Benjamin Kosnik 2002-10-29 05:47:29 UTC
From: "B. Kosnik" <bkoz@nabi.net>
To: Joe Buck <jbuck@synopsys.com>
Cc: bkoz@gcc.gnu.org, gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org,
   peter@snake.iap.physik.tu-darmstadt.de
Subject: Re: libstdc++/6745: Sever io problems on branch rdbuf
Date: Tue, 29 Oct 2002 05:47:29 -0800

 Again, I intend to look at this, but at the moment I am on the road. I
 should be able to work on this at the end of this week.
 
 
 >So, we still have a bug, but we no longer have a regression: this stuff
 >works as well as it ever did.

Comment 7 Joe Buck 2002-10-29 08:47:56 UTC
From: Joe Buck <jbuck@synopsys.com>
To: bkoz@nabi.net (B. Kosnik)
Cc: Joe.Buck@synopsys.COM (Joe Buck), bkoz@gcc.gnu.org, gcc-gnats@gcc.gnu.org,
   gcc-bugs@gcc.gnu.org, peter@snake.iap.physik.tu-darmstadt.de
Subject: Re: libstdc++/6745: Sever io problems on branch rdbuf
Date: Tue, 29 Oct 2002 08:47:56 -0800 (PST)

 I wrote:
 > >So, we still have a bug, but we no longer have a regression: this stuff
 > >works as well as it ever did.
 
 Benjamin Kosnik writes:
 > Again, I intend to look at this, but at the moment I am on the road. I
 > should be able to work on this at the end of this week.
 
 Since 6745 is no longer a regression, it seems that Mark would have to
 make an exception to the rules to even accept a patch for the branch.
 
 6746, also assigned to you, has higher priority.  It is a regression.
 

Comment 8 Paolo Carlini 2002-11-18 20:03:53 UTC
From: paolo@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: libstdc++/6745
Date: 18 Nov 2002 20:03:53 -0000

 CVSROOT:	/cvs/gcc
 Module name:	gcc
 Changes by:	paolo@gcc.gnu.org	2002-11-18 12:03:53
 
 Modified files:
 	libstdc++-v3   : ChangeLog 
 	libstdc++-v3/include/bits: streambuf.tcc 
 
 Log message:
 	2002-11-18  Paolo Carlini  <pcarlini@unitus.it>
 	
 	PR libstdc++/6745 (continued)
 	* include/bits/streambuf.tcc (__copy_streambufs):
 	Deal with interactive input by using isatty as in the
 	fix for libstdc++/8399.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.1433&r2=1.1434
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/streambuf.tcc.diff?cvsroot=gcc&r1=1.17&r2=1.18
 
Comment 9 Paolo Carlini 2002-11-20 13:27:10 UTC
State-Changed-From-To: analyzed->closed
State-Changed-Why: Finally fixed with:
    http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01264.html
Comment 10 Paolo Carlini 2002-12-02 22:05:21 UTC
From: paolo@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: libstdc++/6745
Date: 2 Dec 2002 22:05:21 -0000

 CVSROOT:	/cvs/gcc
 Module name:	gcc
 Branch: 	gcc-3_2-branch
 Changes by:	paolo@gcc.gnu.org	2002-12-02 14:05:21
 
 Modified files:
 	libstdc++-v3   : ChangeLog acinclude.m4 configure.in aclocal.m4 
 	                 config.h.in configure 
 	libstdc++-v3/src: ios.cc 
 	libstdc++-v3/include/bits: streambuf.tcc 
 	libstdc++-v3/testsuite/27_io: ostream_inserter_other.cc 
 
 Log message:
 	2002-12-02  Benjamin Kosnik  <bkoz@redhat.com>
 	Jonathan Lennox  <lennox@cs.columbia.edu>
 	
 	* include/bits/streambuf.tcc (__copy_streambufs):
 	Revert previous fix for the interactive half of
 	libstdc++/6745, use _M_buf_size_opt to set dynamically
 	the correct buffer size.
 	
 	2002-12-02  Jonathan Lennox  <lennox@cs.columbia.edu>
 	
 	* include/bits/streambuf.tcc (__copy_streambufs): verify
 	__sbin->gptr() + __bufsize < __sbin->egptr() before using.
 	* testsuite/27_io/ostream_inserter_other.cc (test_buffer_4): Add.
 	(test05): Use test_buffer_4. Delete unused ostringstream
 	variables.
 	
 	2002-12-02  Paolo Carlini  <pcarlini@unitus.it>
 	
 	PR libstdc++/6745 (continued)
 	* include/bits/streambuf.tcc (__copy_streambufs):
 	Deal with interactive input by using isatty as in the
 	fix for libstdc++/8399.
 	
 	2002-12-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 	
 	* src/ios.cc [_GLIBCPP_HAVE_UNISTD_H]: Include unistd.h.
 	
 	2002-12-02  Paolo Carlini  <pcarlini@unitus.it>
 	Loren J. Rittle <ljrittle@acm.org>
 	
 	PR libstdc++/8399
 	* acinclude.m4
 	(GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1): New macro to
 	check for unistd.h functions.
 	(GLIBCPP_CHECK_UNISTD_SUPPORT): New macro, check for isatty
 	in unistd.h.
 	* configure.in: Call here.
 	* src/ios.cc (ios_base::Init::_S_ios_create(bool)):
 	Use _GLIBCPP_HAVE_ISATTY: ifdef, in case of interactive
 	input __in_size = 1 even when sync_with_stdio is false;
 	otherwise fall back to __in_size = 1.
 	* aclocal.m4: Regenerate.
 	* config.h.in: Regenerate.
 	* configure: Regenerate.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.1057.2.159.2.60&r2=1.1057.2.159.2.61
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/acinclude.m4.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.194.2.15.2.6&r2=1.194.2.15.2.7
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.in.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.83.2.14.2.4&r2=1.83.2.14.2.5
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/aclocal.m4.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.202.2.16.2.6&r2=1.202.2.16.2.7
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config.h.in.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.50.2.4.2.2&r2=1.50.2.4.2.3
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.235.2.24.2.10&r2=1.235.2.24.2.11
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/src/ios.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.24.2.6.4.1&r2=1.24.2.6.4.2
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/streambuf.tcc.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.12.2.2.4.3&r2=1.12.2.2.4.4
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.10.2.1.2.1&r2=1.10.2.1.2.2