Bug 15490 - [CVS Core] Multipe commands per connection is a problem for some CVS servers
Summary: [CVS Core] Multipe commands per connection is a problem for some CVS servers
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Team (show other bugs)
Version: 2.0   Edit
Hardware: PC Windows 2000
: P1 normal (vote)
Target Milestone: 2.1 M1   Edit
Assignee: Michael Valenta CLA
QA Contact:
URL:
Whiteboard:
Keywords: readme
: 11084 19669 20521 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-05-07 21:19 EDT by ChangHoon,Kim CLA
Modified: 2002-09-16 10:02 EDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ChangHoon,Kim CLA 2002-05-07 21:19:39 EDT
I am using M5(20020416).
and CVS Server is CollabNet SourceCast.

In 20020214 CVS Sync worked well.
But M5 doesn't work well in syncrozing new local file.....
please fix up.

Thank you!!
Comment 1 Olivier Thomann CLA 2002-05-08 11:41:59 EDT
Move to VCM.
Comment 2 James Moody CLA 2002-05-08 11:43:35 EDT
What do you mean 'doesn't work well'? What happens? Need more information.

Also:
(a) What was the name of the file?
(b) Was it inside a Java source folder?
Comment 3 ChangHoon,Kim CLA 2002-05-08 20:20:37 EDT
"doesn't work well" means as follows...

1) I have created new local files, "SomeFiles.java".
   (in this state, "Synchronize with Repository..." menu was not activated.)
2) and then I have tried to "Add to Version Control...".
3) But I have failed.
   the error details
    "cvs [server aborted]: received broken pipe signal.
     cvs server: Invalid reply from auth server (myid) looking for (DONE)"
4) But with old eclipse version(20020214) I have succeded in synchronizing new 
local files.
   and with WinCVS1.2 I have succeded too.


then I think that M5 hava some CVS Problem.

Please fix up this bug.

Thank you.
Comment 4 Kevin McGuire CLA 2002-05-09 13:51:22 EDT
was titled
  "new file doesn't syncronize witn CVS in M5(20020416)"
Comment 5 Michael Valenta CLA 2002-05-09 19:06:44 EDT
It looks like it's an authentication problem. What connection method are you 
using (pserver, ext, or extssh)? Is it only the Add that fails? Does it only 
fail when you select the file and sync or does it also fail if you sync on a 
parent of the file?
Comment 6 Michael Valenta CLA 2002-05-09 19:08:26 EDT
I don't know if this is related but synching on a newly added file seems to send 
up addition folder information. This is clearly wrong.
Comment 7 ChangHoon,Kim CLA 2002-05-09 20:31:09 EDT
I used "pserver" connection method but it seems to be not connection problem.

This problem occurs only at synchrozing "THE NEW  FILE".

After synchronizing "THE NEW FILE" with WinCVS1.2,
"THE NEW FILE" can be sync with M5 also.
Because "THE NEW FILE" is no more "NEW" after being saved in CVS server.

All CVS servers have not this problem.
When I used Linux server, I had no problem with M5.
but when I started to using CollabNet SourceCast Server, I'v got in trouble.
I think that some CVS servers have the problem such as CollabNet SourceCast 
Server.


Thanks a lot. 


Comment 8 Michael Valenta CLA 2002-05-10 09:54:53 EDT
I think I have fixed this but I can't test it. Please re-test at your earliest 
convenience on any integration build dated after today (May 10, 2002). If the 
problem is still there please, reopen this bug report.
Comment 9 ChangHoon,Kim CLA 2002-05-10 21:01:18 EDT
It seems to be remain this problem.
I've tested with Integration Build 20020510(09:16)
under same condition.

But same error occurred as follow
    "cvs [server aborted]: received broken pipe signal.
     cvs server: Invalid reply from auth server (myid) looking for (DONE)"

REMARK!!!
When syching "New Folder", No error occured and worked well.
But synching "New File", above error occured.


P.S. I am sorry that I can't give you a test account for SourceCast.
Because new SourceCast account charges some money.



Thank you!!!
 
Comment 10 Michael Valenta CLA 2002-05-12 18:43:50 EDT
I20020510 does not have the fix in it. It should appear in the next integration 
build.
Comment 11 ChangHoon,Kim CLA 2002-05-14 21:41:06 EDT
I've waited new build and tested it a few minute ago. 
But It seems to be remain same problem.
I've tested with Integration Build 20020514(10:42)
under same condition.

But same error occurred as following
    "cvs [server aborted]: received broken pipe signal.
     cvs server: Invalid reply from auth server (myid) looking for (DONE)"

Have a good day.
Thank you!

Comment 12 Michael Valenta CLA 2002-05-15 09:20:52 EDT
Is it the sync that fails or the Add to Version Control?
Comment 13 ChangHoon,Kim CLA 2002-05-15 20:44:06 EDT
Both "Sync" and "Add to version control" have the problem.

1) In case of synchrozing DIRECTORY that included new local files.
No error message appeared.
But sync failed. Any new local files were not committed.

2)  In case of synchrozing NEW FILE
following error occurred
    "cvs [server aborted]: received broken pipe signal.
     cvs server: Invalid reply from auth server (myid) looking for (DONE)"

3) In case of adding version control
following error occurred
    "cvs [server aborted]: received broken pipe signal.
     cvs server: Invalid reply from auth server (myid) looking for (DONE)"



Comment 14 Michael Valenta CLA 2002-05-16 13:43:20 EDT
To be honest, we have never seen this error before. Chances are it is related 
to CollabNet SourceCast. Perhaps they have a custom cvs server. Do you use the 
standard cvs client or do they provide one? What command line parameters do you 
use to add a file to a project when using the cvs command line client?
Comment 15 ChangHoon,Kim CLA 2002-05-17 07:31:00 EDT
I've used WinCVS1.2(http://www.wincvs.org) that is standard cvs client.
and I didn't use command line cvs client.

In my PC, WinCVS and eclipse have a same workspace folder.
If I want to add a file to a project , I create a new file in the eclipse.
To sync the enw file, I go to the WinCVS1.2 and "add selection".
And then commit it to cvs server.
If sync worked well in eclipse, I didn't use WinCVS....
But now ....I have not another way......

Please fix up...

Thank you!!  
Comment 16 Michael Valenta CLA 2002-05-17 08:31:17 EDT
I can't fix it until I know what the problem is. We have seen no other problems 
adding files to cvs control so it is probably something specific to the server 
you are working with. Could you please try the following two thins:

A. Could you try and add a file directly under the project to see if it works. 
I've just noticed a difference in the handling of files directly under a 
project and those in subdirectories.

B. With the command line client, could you try the following:

  1. Open a dos window
  2. Change directories to the root of a local project loaded from CVS
  3. Add a file to a subdirectory of the project and then cd pack to the 
project directory.
  4. Execute the cvs command "cvs add -ko path/to/new/file.txt" where 
path/to/new/file.txt is the path to the newly added file.
  
The command in step 4 is the command that Eclipse uses to add a new file to cvs 
control. If this works using the command line client, then Eclipse should work.
Comment 17 Michael Valenta CLA 2002-05-24 08:22:38 EDT
Changes have been made in F1 related to this. Please test and reopen if problem 
still occurs.
Comment 18 ChangHoon,Kim CLA 2002-05-24 23:04:41 EDT
Thank you very much!!!

Now I can sync with eclipse F1.

but it seems that a error remains.

When syncing new local file in old folder, working well.
But after creating a new folder,
and "Adding to version control" fails only when "NEW FOLDER IS NOT EMPTY".

I think that you can fix it up too.

Thank you very much.

Have a nice weekend.


Comment 19 Michael Valenta CLA 2002-05-30 10:40:03 EDT
Fixed to make 1 connection per type of resource being added (types are folders 
and files with different keyword substitution modes).
Comment 20 Antonio D'souza CLA 2002-06-03 13:46:50 EDT
Reporter please verify.
Comment 21 ChangHoon,Kim CLA 2002-06-03 20:31:16 EDT
In New F2 Version,
"Adding to version control" has succeded even if "NEW FOLDER IS NOT EMPTY".

Thanks for your effort.


But It has some strange! 
In old version "Synchronizing with Repository" menu is not activated 
right after "creating new folder and new files".
But in new F2 version, the menu is activated.
I think old version is correct.
Because "Synchronizing with Repository" fails also without "Adding to version 
control". (...broken pipe signal error)




Comment 22 Michael Valenta CLA 2002-06-04 10:14:25 EDT
Did the error occur when performing the "Synchronize" or later in the sync view 
when you performed an "Add to Version Control"?
Comment 23 ChangHoon,Kim CLA 2002-06-04 21:20:59 EDT
Q.Did the error occur when performing the "Synchronize" or later in the sync 
view 
A.The error occur when performing "Synchronize".

Q.when you performed an "Add to Version Control"?
A. right after creating new folder and new files from eclipse F2.

--------------------------------------------------
And I've find a few errors when syncronizing with Collab.Net CVS server.
After deleting local folder, sync fails also.
(delete local folder --> sync with reposit --> broken pipe error
 --> doesn't delete remote folder in cvs server)


I'm sorry to bothering you....

Thank you.

Comment 24 Kevin McGuire CLA 2002-06-06 12:12:11 EDT
We can't do more now for 2.0, revisit once we ship
Comment 25 Michael Valenta CLA 2002-08-09 10:08:54 EDT
Reopening
Comment 26 Don Dayley CLA 2002-08-09 17:22:54 EDT
As I understand the problem, it is related to making mutiple request to a 
single transaction.
How can I modify the eclipse cvs plugin to make a single request per 
transaction?
Comment 27 Michael Valenta CLA 2002-08-12 14:42:28 EDT
Here is a summary of places that multiple commands are issued within a single 
connection (I think this is all of them but I may have missed on or two):

- On first connection, the server is queried for it's version before any other 
commands are run. This is need to identify CVSNT servers which require special 
handling. A preference could be used to disable this or a separate connectin 
could be made.

- CVSTeamProvider#makeBranch uses a single connection to create the version and 
branch tags. This could easily be refactored to use two connections

- CVSTeamProvider#setKeywordSubstitution uses a single conection to perform 
multiple admins (one command per type). 

- Two RemoteFolderTreeBuilder#buildTree methods use a single connection to 
fecth the current status of a local workspace. This would be a complicated 
refactoring but may be possible

- CVSSyncCompareInput and CVSSyncEditorInput issue multiple commands over a 
single connection in prepareInput and a few other methods involved in creating 
remote trees. It's uncertain if this can be changed as the need for this was 
not efficiency. It was to avoid excessive server connections which mimiced 
Denial of Service attacks.

- ReplaceWithBaseVisitor uses a single connection to fetch several files. This 
could probably be refactored but is not a widely used operation.

To summarize, many cases of multeple commands over a single connection can be 
converted fairly easily. However, syncing and comparing will be more difficult 
to convert.
Comment 28 Michael Valenta CLA 2002-08-12 14:44:36 EDT
Changed title from ""received broken pipe signal" syncing in M5"
Comment 29 Michael Valenta CLA 2002-08-29 10:18:21 EDT
*** Bug 20521 has been marked as a duplicate of this bug. ***
Comment 30 Michael Valenta CLA 2002-09-06 16:39:11 EDT
*** Bug 19669 has been marked as a duplicate of this bug. ***
Comment 31 Michael Valenta CLA 2002-09-09 14:39:53 EDT
*** Bug 11084 has been marked as a duplicate of this bug. ***
Comment 32 Michael Valenta CLA 2002-09-16 10:02:37 EDT
Most of the above problems have been fixed. The exceptions are:

1) ReplaceWithBase - this is an infrequent non-standard operation so we'll 
leave it for now

2) RemoteFolderTreeBuilder - mostly fixed except for new incomming folders (see 
bug 23575).

3) CVSSyncCompareInput and CVSSyncEditorInput - requires a different approach 
to comparing (see bug 23581)

Fix released to HEAD for other mentioned areas