This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: checking in >= 256k file fatally corrupts rcs file


I

On Wed, Oct 9, 2013 at 2:28 PM, Achim Gratz <Stromeko@nexgo.de> wrote:
> Ryan Johnson writes:
>> So in other words, a misguided performance optimization [1] that
>> almost certainly has little measurable impact on performance [2] has
>> introduced a silent data corruption bug (or tickled a latent one
>> somewhere else). Lovely.
>
> It is not the performance optimization that isn't working, but the code
> path through plain stdio while doing a diff that was probably never
> exercised (the tests all pass on Cygwin).  Try RCS_MEM_LIMIT=0 to force
> stdio.  The error does not occur on Linux and it doesn't seem to be
> known to the devs.
>
>
> Regards,
> Achim.
> --
> +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+
>
> Wavetables for the Waldorf Blofeld:
> http://Synth.Stromeko.net/Downloads.html#BlofeldUserWavetables
>
>
> --
> Problem reports:       http://cygwin.com/problems.html
> FAQ:                   http://cygwin.com/faq/
> Documentation:         http://cygwin.com/docs.html
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
>

I can attest to the problem with file size corrupting the file - on
several occasions I have checked in a file and lost roughly half of
it.  As RCS only stores the last version in its entirety and deltas
against that version to create prior versions, losing part of the
current version results in a completely corrupt file - the only thing
that has saved me is that I have two copies of RCS on separate
computers.  I now only check files in on my Linux box, then transfer
them to the Windows/cygwin box.

However, by the same token, there is a bug in 5.7 where the check of
the symbolic name (when checking out a file) only tests the number of
characters in the table of symbolic names - for example, say you have
a file with the following symbolic names:  R25, R25a, R25b, R25c and
R26.  Now you try to check out version R25c.  If the code finds the
R25 symbolic name first (before R25a/R25b/R25c), it compares three
characters (the length of "R25") against the first three characters of
the symbolic name provided to the co command ("R25") and finds a match
- giving you the wrong version.  So neither option is ideal.


Respectfully,

Richard Gribble.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]