Bug 725062 - page allocation failure
Summary: page allocation failure
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: ntfs-3g
Version: 15
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Tom "spot" Callaway
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-07-22 17:57 UTC by Jean-Pierre André
Modified: 2012-08-07 18:57 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-08-07 18:57:11 UTC
Type: ---


Attachments (Terms of Use)
syslog information for "page allocation failure" (4.81 KB, text/plain)
2011-07-22 18:00 UTC, Jean-Pierre André
no flags Details

Description Jean-Pierre André 2011-07-22 17:57:33 UTC
Description of problem:

getxattr() sometimes fail with a kernel page allocation failure. A kernel trace is dumped to syslog and ENOMEM is returned to caller.

Version-Release number of selected component (if applicable):

kernel : 2.6.38.8-35.fc15.x86_64
attr/libattr : 2.4.44-7.fc15.x86_64

How reproducible:

Randomly. This happened while recursively copying files along with their attributes, and the error is mostly associated with big files (several MB). Retrying generally leads to success.

Steps to Reproduce:
1. Copy a file (open both, loop for read/write, close both)
2. Get the extended attributes of source file (getxattr(2))
3.
  
Actual results:

The getxattr(2) sometimes fails with ENOMEM

Expected results:

The getxattr() should succeed.

Additional info:

This is copying from NTFS (to NTFS). The process which fails to get memory is not the fuse process which runs the user space driver (a different pid is shown for each try, probably the process which makes the copy).

The system was not short of memory, the swap was not used. All the extended attributes were short (less than 256 bytes).

(syslog information attached)

Comment 1 Jean-Pierre André 2011-07-22 18:00:02 UTC
Created attachment 514759 [details]
syslog information for "page allocation failure"

syslog information

Comment 2 Kamil Dudka 2011-07-25 18:43:20 UTC
The implementation of getxattr(2) in libattr is just a trivial wrapper around the getxattr syscall.  I am quite sure the that ENOMEM is not raised at the libattr level.

Are you able to reproduce the issue on any other file system?  If not, it will be most likely a bug in your NTFS driver.  What driver are you actually using?

Comment 3 Jean-Pierre André 2011-07-27 15:26:49 UTC
> I am quite sure the that ENOMEM is not raised at the
> libattr level.

The allocation failure happens in the process which executes the getxattr(2), maybe while executing kernel code. If not in libattr, which is the appropriate bugzilla section ?

> Are you able to reproduce the issue on any other file system?

No, but I have no other file system relying on a fuse architecture.

> If not, it will be most likely a bug in your NTFS driver.
> What driver are you actually using?

This is with ntfs-3g-2011.4.15 shipped with F15. I could not trigger the bug with a development version with debugging facilities. Also valgrind did not find any memory allocation error in the program doing the copy.

Of course, the error may be triggered by a file system bug or a bug in the application doing the copy, but a "page allocation failure" is an indication that some sanity check is wrong or missing in the kernel or some library. This looks like a corrupt memory allocation table, as would be caused by a buffer overflow.

As reproducing this is difficult, I am not expecting a quick fix. I hope however that this report is recorded in a way such that some connection can be established with other users having a similar issue.

Comment 4 Kamil Dudka 2011-07-27 17:08:13 UTC
I am switching the component to ntfs-3g then...

Comment 5 Paul Bolle 2011-09-22 19:29:36 UTC
(In reply to comment #4)
> I am switching the component to ntfs-3g then...

0) I have no idea how to parse "page allocation failure[s]" (see attachment #514759 [details]) but it seems component kernel is more appropriate.

1) However, the kernel people will certainly note
    Pid: 13193, comm: ntfscp Tainted: P            2.6.38.8-35.fc15.x86_64 #1

since the definition of P is
    *  'P' - Proprietary module has been loaded.

(source: 3.1-rc7:kernel/panic.c:185:). So their first question will probably be to reproduce with an actual Fedora kernel (say, current F15' package, kernel-2.6.40.4-5.fc15). But maybe they'll just close it as CANTFIX or whatever.

2) Am I missing something here?

Comment 6 Jean-Pierre André 2011-09-23 08:46:25 UTC
> it seems component kernel is more appropriate

I agree.

> But maybe they'll just close it as CANTFIX or whatever.

As the bug is difficult to reproduce, such status is reasonable if there is there is no other similar reports.

Comment 7 Fedora End Of Life 2012-08-07 18:57:13 UTC
This message is a notice that Fedora 15 is now at end of life. Fedora
has stopped maintaining and issuing updates for Fedora 15. It is
Fedora's policy to close all bug reports from releases that are no
longer maintained. At this time, all open bugs with a Fedora 'version'
of '15' have been closed as WONTFIX.

(Please note: Our normal process is to give advanced warning of this
occurring, but we forgot to do that. A thousand apologies.)

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, feel free to reopen
this bug and simply change the 'version' to a later Fedora version.

Bug Reporter: Thank you for reporting this issue and we are sorry that
we were unable to fix it before Fedora 15 reached end of life. If you
would still like to see this bug fixed and are able to reproduce it
against a later version of Fedora, you are encouraged to click on
"Clone This Bug" (top right of this page) and open it against that
version of Fedora.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

The process we are following is described here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping


Note You need to log in before you can comment on or make changes to this bug.