Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 291635 - Create Patch and CVS accesses fail when no terminating new line
Summary: Create Patch and CVS accesses fail when no terminating new line
Status: RESOLVED WORKSFORME
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Team (show other bugs)
Version: 3.5   Edit
Hardware: PC Windows Vista
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: Platform Team Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-10-07 13:15 EDT by Ed Willink CLA
Modified: 2009-11-05 14:24 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Willink CLA 2009-10-07 13:15:08 EDT
If I try to Create a Patch for

    RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/tests/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java,v
    retrieving revision 1.9

which has no terminating new line and my replacement file also has no terminating new line I get:

cvs diff -N -u -l "/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java"
failed due to an internal error (took 0:21.500)
   Error: Unknown response received from cvs server:  


in the CVS console, no Pop up Dialog, no Error Log entry. I might think it had worked.

If I add a new line to the replacement file I get:

cvs diff -N -u -l "/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java"
    Index: src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java
    ===================================================================
    RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/tests/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java,v
    retrieving revision 1.9
    diff -u -r1.9 BasicOCLTest.java
......

    -}
    \ No newline at end of file
    +}
The server reported an error while performing the "cvs diff" command which may only indicate that a difference exists. (took 0:01.044)
   Error: org.eclipse.ocl.ecore.tests: The server did not provide any additional information.
***

Still nothing in the popup or error log.

So:

Bug 1: No Interactive Error Report.
Bug 2: No Error Log stack trace.
Bug 3: Failure to handle no end of line


CVS Restore from Head and CVS Synchronize are pretty ropey on this file too.

If I try to commit an update with a trailing new line I get a popup with a failure on the first attempt and success on the second attempt.


***
cvs ci -m "Add a terminating new line" -l "/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java"
failed due to an internal error (took 0:19.103)
   Error: Unknown response received from cvs server:  
***

***
cvs ci -m "Add a terminating new line" -l "/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java"
    /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/tests/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java,v  <--  src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java
    new revision: 1.10; previous revision: 1.9
ok (took 0:01.199)
***

Then if I try to Create a Patch for the true change, with new lines all round, I get


***
cvs diff -N -u -l "/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java"
failed due to an internal error (took 1:00.009)
   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
***
at the first attempt then


***
cvs diff -N -u -l "/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java"
failed due to an internal error (took 0:20.993)
   Error: Unknown response received from cvs server:  
***

for a first Synchronize with Repository

two more attempts give

Problems reported while synchronizing CVS Workspace. 0 of 1 resources were synchronized.
  An error occurred synchronizing /org.eclipse.ocl.ecore.tests: Unknown response received from cvs server:  
    Unknown response received from cvs server:  

in a popup and nothing in the CVS Console.

presumably as the reconstruction of the server copy fails.
Comment 1 Ed Willink CLA 2009-10-07 14:16:18 EDT
Just reproduced this on a different Eclipse 3.5 (modeling package) installation. This time XP rather than Vista.

Seems unlikely to be my connection: A speed test indicates I currently have 2.5MBit/s down, 0.4MBit/s up.

Seems that either CVS has degraded, or that the /cvsroot/modeling repository has developed major bit rot.

I have suspected that CVS has been taking shortcuts for some time, terminating with some resources not synchronised for instance, but after abot four attempts to switch to a different branch a change eventually happens. But now I cannot prepare patches at all or do CVS operations reliably.
Comment 2 Tomasz Zarna CLA 2009-10-08 03:49:29 EDT
Edward I tried creating a patch for the same file you mentioned in comment 0. I didn't experience any problems, it worked fine for me. I belive this was an intermittent failure of the CVS infrastructure not the CVS client itself.
Comment 3 Ed Willink CLA 2009-10-08 15:46:16 EDT
It's not intermittent. I got a very similar suite of problems 10 minutes ago.

I'll try re-using the Workspace on a vanilla Eclipse 3.5 with no extras (in particular not Subversive or Mylyn that may be too clever.) Then I'll try just re-using the project.
Comment 4 Ed Willink CLA 2009-10-15 02:07:44 EDT
A clean Eclipse makes no difference.

The problem is occurring repeatedly for the server's cvs diff on

/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java
in org.eclipse.mdt/org.eclipse.ocl/tests/org.eclipse.ocl.ecore.tests
in /cvsroot/modeling on dev.eclipse.org

The particular file is testing \ handling and so has some unusual combinations of quotes backslashes and of course $NON-NLS-1$.

To reproduce at least the error report, check out org.eclipse.ocl.ecore.tests, and perform an edit of BasicOCLTest.java to delete the @author at line 45 and the function comment at line 450 and the create a patch. The CVS console will show

***
cvs diff -N -u -l "/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java"
    Index: src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java
    ===================================================================
    RCS file: /cvsroot/modeling/org.eclipse.mdt/org.eclipse.ocl/tests/org.eclipse.ocl.ecore.tests/src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java,v
    retrieving revision 1.12
    diff -u -r1.12 BasicOCLTest.java
    --- src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java	10 Oct 2009 07:13:31 -0000	1.12
    +++ src/org/eclipse/ocl/ecore/tests/BasicOCLTest.java	15 Oct 2009 05:49:45 -0000
    @@ -43,8 +43,6 @@
     /**
      * Basic tests for OCL engine.
      *
    - * @author Chris McGee (cbmcgee)
    - * @author Christian W. Damus (cwdamus)
      */
     public class BasicOCLTest
     	extends AbstractTestSuite {
    @@ -449,10 +447,6 @@
     		}
     	}
         
    -    /**
    -     * Test non-standard doubled single-quote syntax for embedding single-quotes
    -     * in string literals.
    -     */
         public void test_stringEscapes_184948() {
             helper.setContext(EcorePackage.Literals.ESTRING);
             String self = ""; //$NON-NLS-1$
The server reported an error while performing the "cvs diff" command which may only indicate that a difference exists. (took 0:01.031)
   Error: org.eclipse.ocl.ecore.tests: The server did not provide any additional information.
***


Or is this a red herring? Everything seems to have a 'The server reported an error while performing the "cvs diff" command which may only indicate that a difference exists.' today.
Comment 5 Tomasz Zarna CLA 2009-11-05 06:29:58 EST
Edward, I've tried to reproduce the problem you described in comment 0 and it worked for me each time:

1. I created an exact copy of BasicOCLTest.java v 1.9 in my workspace (without terminating line), shared it using local repository (CVSNT 2.5.03). Then I modified the file and tried to create a patch. Worked fine.

2. Next, I searched for files with similar ending in my workspace shared on dev.eclipse.org (to make sure it's not a repository specific issue). I used "}\z" regex to find them all. I modified and created patches for dozens of them. I didn't notice any problems there, except the message you're referring in your last comment. I guess the message is a red herring and if a patch is fine you can ignore it.

In other words, this works for me. If this is reproducable for you, please provide the exact steps you used to produce the problem and reopen the bug.
Comment 6 Ed Willink CLA 2009-11-05 14:24:25 EST
I suspect that the problems are being massively aggravated by issues described in Bug 293355. At present Eclipse CVS is a very unpleasant repository to work with.

That said when things are working badly, the lack of error diagnosis is a problem, even if you have to deliberately introduce 'server failures' to reproduce them.