[python-committers] Data corruption issue (C IO library)

Antoine Pitrou solipsis at pitrou.net
Fri Aug 7 00:42:04 CEST 2009


Le vendredi 07 août 2009 à 00:02 +0200, "Martin v. Löwis" a écrit :
> There are always two dimensions in which to evaluate criticality of an
> issue: how serious is the problem it can cause when it hits, and in how
> many real applications is it likely to occur?
> 
> In the first dimension, I agree it's a serious problem. In the second
> dimension, it only affects applications that seek on files, and so I
> believe the problem is only of minor relevance.

It doesn't depend on seek() actually (this was the reporter's diagnosis,
which turned out wrong). It happens when writing more than the buffer
size after the buffer was filled for readahead but not entirely
consumed.

The fact that it wasn't reported before may have to do with either the
fact that it indeed doesn't affect a lot of applications, or that not
many people have been using 3.1 "seriously" yet.

As a side note, when I was working on the IO lib, I regularly ran the
Durus stress test script in addition to our test suite. So the problem
might indeed be unlikely in the real world.

> I think posting a patch on the 3.1 release page would be sufficient
> for now, along with a summary description on the circumstances that
> may trigger the bug, and the consequences it may cause.

I'm fine with this decision. The patch can be trivially extracted from
one of the commits or svnmerges, but I don't know how to post it on the
release page.

Regards

Antoine.


PS : Obviously, having our own brand new IO subsystem rather than
relying on a venerable standard C library is not without risks.




More information about the python-committers mailing list