Novell Home

TID100655 (IADV1) - Page Fault in AsyncRelease() NLM Development

From Developer Community

ABSTRACT:

AsyncRead() / AsyncRelease() file access Page fault in AsyncRelease() NetWare 4.x Suballocation enabled Can be difficult to reproduce

DETAILED DESCRIPTION

SYMPTOM

A developer is using AsyncRead() / AsyncRelease() for file transfers to a client. This has been working fine for the developer under 3.x and 4.x until it was used on a Compaq Prosignia machine (using NetWare 4.x). Certain files cause a page fault in the AsyncRelease call. This behavior has been duplicated on different machines with different files but can be difficult to reproduce at will. The problem only occurs when suballocation is enabled.

REASON

The problem occurs when there is a suballocation misalignment which requires an additional cache read. AsyncRead() was not allocating enough buffer space for the last read resulting in a buffer overflow. Example A shows the results of reading a file which would not cause the abend, Example B shows the results of reading the file when there was misalignment which required the extra read.

A: cache buffer reads B: cache buffer reads


---------------------------

1E0 1E0 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 B9B 400 79B

SOLUTION

This problem has been fixed in NLMLIB.NLM dated later than 7-22-96. This NLM is due to be released in LIBUP9.EXE

iadv1.exe

iadv1.exe19.2 K2005-04-06

--Benjamin Fjeldsted

Novell® Making IT Work As One

© 2009 Novell, Inc. All Rights Reserved.