Messages in this thread | | | Subject | Re: Migration of kernel interfaces to seq_files breaks pread() consumers | From | (Eric W. Biederman) | Date | Tue, 27 Jan 2009 13:47:44 -0800 |
| |
Alexey Dobriyan <adobriyan@gmail.com> writes:
> On Sat, Jan 24, 2009 at 06:19:24PM -0800, Andrew Morton wrote: >> On Fri, 16 Jan 2009 23:51:35 -0800 (PST) Paul Turner <pjt@google.com> wrote: >> >> > >> > (Specifically) Several interfaces under /proc have been migrated to use >> > seq_files. This was previously observed to be a problem with VMware's >> > reading of /proc/uptime. We're now running into the same problem on >> > /proc/<pid>/stat; we have many consumers performing preads on this >> > interface which break under new kernels. >> > >> > Reverting these migrations presents other problems and doesn't scale with >> > everyones' pet dependencies over an abi that's been >> > broken :( >> >> We changed userspace-visible behaviour and broke real applications. >> This is a serious matter. So serious in fact that your report has >> languished without reply for a week. >> >> Reverting those changes until we have a suitable reimplementation which >> doesn't bust userspace is 100% justifiable. >> >> In which kernel versions is this regression present? >> >> What would a revert look like? Big and ugly or small and simple? Do >> the original commits (which were they?) still revert OK? > > This is bug http://bugzilla.kernel.org/show_bug.cgi?id=11856 > Some of us think what to do here. > > Original patch not revertable as is.
Interesting. This seems like a bug in seq_file plain and simple. Userspace appears to be acting very reasonable in this case.
Why is there a notion that we have to differentiate between read and pread in seq_file to fix this. That doesn't make much sense.
Anyway here is an untested but logically correct patch which should fix this issue, without nasty special casing of pread.
Eric
| |