Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 85317 - CVS Tag: Progress waits long at same place and often fails
Summary: CVS Tag: Progress waits long at same place and often fails
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: CVS (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: 3.1 M7   Edit
Assignee: platform-cvs-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 87209 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-02-15 15:09 EST by Dani Megert CLA
Modified: 2005-05-10 10:30 EDT (History)
2 users (show)

See Also:


Attachments
Picture shwoing CVS Console and Progress view (12.71 KB, image/png)
2005-03-11 08:09 EST, Dani Megert CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dani Megert CLA 2005-02-15 15:09:53 EST
I20050215-0800

When releasing our projects with the releng tool it often waits for very long
(minutes) at the same location (i.e. progress shows same folder). I assume it's
the last location (folder) of a project and the work of the whole project is
done there (not sure though). I looks as if it's waiting for a server answer
since not much network traffic is happening while waiting.

The project where this can be seen best is org.eclipse.jdt.ui.tests.refactoring.
There the progress bar shows:
Processing org.eclipse.jdt.ui.tests.refactoring Processing ../tests/typeconstraints
Comment 1 Dani Megert CLA 2005-03-11 07:26:04 EST
It got worse recently i.e. very often results in an IO/error (not in .log) when
releasing org.eclipse.jdt.ui.tests.refactoring and always when processing:
  test cases/org/eclipse/jdt.ui/tests/typeconstraints

(at least that's what the releng wizard says in the status line).

We then have to retry to release several times and almost missed the build two
times.

I can reproduce this frequently using
Team > Tag as Version...

A dialog appears:
Title: Tagging from workspace
Message:
  I/O has been interrupted.
  The most likely cause of the interrupt is either an intermittent network 
  failure or a communications timeout.
  The CVS communications timeout can be adjusted in the Team/CVS preferences.
  Another possible cause is the improper configuration of the "ext" connection 
  method.
  The "ext" connection method can be configured on the Team/CVS/EXT Connection 
  Method preference page

Here's the CVS Console:

***
cvs tag "/org.eclipse.jdt.ui.tests.refactoring/v20050308-0800"
"/org.eclipse.jdt.ui.tests.refactoring"
failed due to an internal error (took 1:24.784)
   Error: I/O has been interrupted.
      Error: The most likely cause of the interrupt is either an intermittent
network failure or a communications timeout.
      Error: The CVS communications timeout can be adjusted in the Team/CVS
preferences.
      Error: Another possible cause is the improper configuration of the "ext"
connection method.
      Error: The "ext" connection method can be configured on the Team/CVS/EXT
Connection Method preference page
***

The attached picture shows that it stops at 15% in folder "typeconstraints" and
then runs into the timeout. There seems to be not much network traffic.

As the message tells the connection timeout value is the important thing here:
if I increase to e.g. 240 it works and if I decrease to 60 it always fails.

To me it looks as if the tagging itself is OK and just needs more time because
of the many files in that project. However, the progress reporting seems bogus
i.e. it does not tell what's actually going on (I suspect it waits for a server
answer).

In the case where the timeout is big enough to complete the operation the
progress messages still "hangs" on "typeconstraints" but the progress amount
grows up to 24%. Then it just finishes.

Test Case:
1. checkout org.eclipse.jdt.ui.tests.refactoring, version v20050308-0800.
2. a) to test the failure case set connection timeout to 60s
2. b) to let it finish and see the wrong progress set connection timeout to 240s
3. Team > Tag as Version... - use: v20050308-0800
Comment 2 Dani Megert CLA 2005-03-11 08:09:27 EST
Created attachment 18690 [details]
Picture shwoing CVS Console and Progress view
Comment 3 Dani Megert CLA 2005-03-11 09:22:40 EST
There's actually a .log entry:

!ENTRY org.eclipse.team.cvs.core 4 0 2005-03-11 13:01:21.905
!MESSAGE I/O has been interrupted.
!STACK 0
java.io.InterruptedIOException: Timeout while reading from input stream
	at
org.eclipse.team.internal.core.streams.PollingInputStream.read(PollingInputStream.java:102)
	at
org.eclipse.team.internal.ccvs.core.connection.Connection.readLine(Connection.java:143)
	at org.eclipse.team.internal.ccvs.core.client.Session.readLine(Session.java:289)
	at
org.eclipse.team.internal.ccvs.core.client.Request.executeRequest(Request.java:140)
	at org.eclipse.team.internal.ccvs.core.client.Command.doExecute(Command.java:403)
	at org.eclipse.team.internal.ccvs.core.client.Command$1.run(Command.java:322)
	at
org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.run(EclipseSynchronizer.java:1403)
	at
org.eclipse.team.internal.ccvs.core.resources.EclipseResource$2.run(EclipseResource.java:268)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1702)
	at
org.eclipse.team.internal.ccvs.core.resources.EclipseResource.run(EclipseResource.java:265)
	at org.eclipse.team.internal.ccvs.core.client.Command.execute(Command.java:334)
	at org.eclipse.team.internal.ccvs.core.client.Tag.execute(Tag.java:79)
	at
org.eclipse.team.internal.ccvs.ui.operations.TagOperation.tag(TagOperation.java:99)
	at
org.eclipse.team.internal.ccvs.ui.operations.TagOperation.execute(TagOperation.java:51)
	at
org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation.execute(RepositoryProviderOperation.java:228)
	at
org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation.execute(RepositoryProviderOperation.java:207)
	at
org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation.execute(RepositoryProviderOperation.java:191)
	at
org.eclipse.team.internal.ccvs.ui.operations.TagOperation.execute(TagOperation.java:145)
	at
org.eclipse.team.internal.ccvs.ui.operations.CVSOperation.run(CVSOperation.java:87)
	at
org.eclipse.team.internal.ui.actions.JobRunnableContext.run(JobRunnableContext.java:181)
	at
org.eclipse.team.internal.ui.actions.JobRunnableContext$ResourceJob.runInWorkspace(JobRunnableContext.java:74)
	at
org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:67)
!SUBENTRY 1 org.eclipse.team.cvs.core 4 4 2005-03-11 13:01:21.905
!MESSAGE The most likely cause of the interrupt is either an intermittent
network failure or a communications timeout.
!SUBENTRY 1 org.eclipse.team.cvs.core 4 4 2005-03-11 13:01:21.905
!MESSAGE The CVS communications timeout can be adjusted in the Team/CVS preferences.
!SUBENTRY 1 org.eclipse.team.cvs.core 4 4 2005-03-11 13:01:21.905
!MESSAGE Another possible cause is the improper configuration of the "ext"
connection method.
!SUBENTRY 1 org.eclipse.team.cvs.core 4 4 2005-03-11 13:01:21.905
!MESSAGE The "ext" connection method can be configured on the Team/CVS/EXT
Connection Method preference page
Comment 4 Michael Valenta CLA 2005-03-11 10:24:15 EST
*** Bug 87209 has been marked as a duplicate of this bug. ***
Comment 5 Michael Valenta CLA 2005-03-30 09:24:59 EST
I don't think there is anything we can do here. The progress stops because 
Eclipse is waiting for a response from the server (i.e. no progress is being 
made). The only possible solution to this particular problem appears to be to 
increase the default timeout. However, it is not clear what the new default 
should be. In your case, 240 seconds works but that does not mean that it will 
work in other cases. Also, 240 seconds is a long time to wait in cases where 
the server really isn't responding. I think it is reasonable when timeouts 
occur for the user to adjust the timeout to a value that works for them.
Comment 6 Dani Megert CLA 2005-03-30 09:32:01 EST
>I don't think there is anything we can do here. The progress stops because 
>Eclipse is waiting for a response from the server (i.e. no progress is being 
>made).

Do you know that you wait for a response? If so, why not show this in the
message area instead of the last sent folder?

Note: we even had to increase the timeout to 700 in order to be able to tag that
project.
Comment 7 Michael Valenta CLA 2005-03-30 09:41:41 EST
Agreed, I will make sure the message indicates that we are waiting. 

As for the timeout that you require, this is a CVS server issue when dealing 
with large projects. If you have any good ideas on something we can do in the 
client about this, I'm happy to hear it.
Comment 8 Dani Megert CLA 2005-03-30 09:47:24 EST
No, I don't think you can do much about it in the client.
Comment 9 Michael Valenta CLA 2005-03-30 10:39:23 EST
Fix released to HEAD. Marked M7 but may consider for M6.
Comment 10 Michael Valenta CLA 2005-05-10 10:30:40 EDT
Verified