Re: bug #41707: RCS 5.8 file corruption when using file descriptor IO for large files
Thien-Thi Nguyen <[email protected]> Sun, 27 Jul 2014 13:49:26 +0200
| Newsgroups | gmane.comp.version-control.rcs.bugs |
|---|---|
| Message-ID | <[email protected]> |
() Achim Gratz <[email protected]> () Thu, 19 Jun 2014 23:30:34 +0200 As described in https://cygwin.com/ml/cygwin/2012-06/msg00334.html https://cygwin.com/ml/cygwin/2012-09/msg00331.html and demonstrated with https://cygwin.com/ml/cygwin/2013-10/msg00086.html the STDIO code path fails for work files above a certain size on Cygwin. Based on the analysis of how the breakage occurs I've developed the following patch for your consideration: Thanks for the patch, and the analysis, too. The latter i could not / cannot do since i don't have access to such a platform. As for the patch (and because of the lack of platform access), i request your help to proceed as follows: - I have rewritten the test, attached here, to be more idiomatic. The first step is to check that this test fails for you when unpatched, and passes when patched. Could you please confirm? (NB the ??? re ‘need_subdir’.) The "maybe" in the description is because there was no way for 5.7 to force STDIO operation, so the problem might have been latent at that time. - I'm wary of adding the close/re-open sequence unconditionally and wonder if there is a way to detect systems that misbehave thusly with a short C program (or better yet, sequence of shell commands) to be run by the configure script. What do you think? - etc It's probably best to worry about "etc" after we surmount these first two steps. I understand that there is a difference between GNU/Linux (say) and Cygwin, but i don't understand (yet) if that difference is legitimate (i.e., allowed by POSIX or other relevant standards). What do you suggest i read to understand the analysis linked in the URL above? -- Thien-Thi Nguyen GPG key: 4C807502 (if you're human and you know it) read my lisp: (responsep (questions 'technical) (not (via 'mailing-list))) => nil
t820
(application/octet-stream, 2.3 KB) - not displayed
signature.asc
(application/pgp-signature, 197 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlPU50oACgkQZwMiJEyAdQLbnwCg26L3/RNSGtT/t9dQPnXY2eTC AUsAoLjk+sXkViOag2VtnLVtWnjSQ7If =qltz -----END PGP SIGNATURE-----