Link to home
Create AccountLog in
FoxPro

FoxPro

--

Questions

--

Followers

Top Experts

Avatar of AliFox
AliFox

bnormal program termination: Memory protection fault
Subsequent to my earlier post on Error 43 insufficient memory we have encountered another fault within printing.

Upon printing any report within the system, the Foxpro application will return a message to user saying 'Busy... Please Wait whilst printing'. This is one of my programmed messages and is fine.This flashes and continues to flash until:-

However after a few seconds the whole application 'moves up the screen a few lines' and in the blank part of the screen at the bottom an error message appears 'bnormal program termination: Memory protection fault CS:EIP: oooFh:0002DDC2h

The only way we can exit the application from here is to CTRL-ALT-DELETE. The clock stops, the mouse and keyboard are inactive, the X to close the window is inactive. All 3 PC's are running under O/S of Windows XP and application is written in Foxpro 2.6a for DOS. The application lives on a Windows2000 server.

Despite all 3 PC's using the application being identical in hardware/software/set up 1 of the 3 PC's can always print from the application without any errors. The 2nd can print sometmes, othertimes it gets the same error as above and the 3rd PC always gets the above error and cannot print.

To add more confusion to all of this, there is a 2nd Foxpro for DOS applicaiton on another part of the server to which again all 3 PC's are connected. The bad pc above can usually print from there successfully and the other 2 have no problems at all from printing. All 3 PC's are new, have been completely rebuilt and several checks and runs such as scandisk and defrag have just recently been done on them

To me the problem has all the symptoms of faulty hardware, possibly bad sectors in the PC, but on the advice of 2 senior IT persons I am reassured this is not possible with these PC's.

Thanks for your help........

Zero AI Policy

We believe in human intelligence. Our moderation policy strictly prohibits the use of LLM content in our Q&A threads.


SOLUTION
Avatar of CarlWarnerCarlWarner🇺🇸

Link to home
membership
Log in or create a free account to see answer.
Signing up is free and takes 30 seconds. No credit card required.
Create Account

Avatar of CarlWarnerCarlWarner🇺🇸

I don't know whether o not you have an index on DELETED(), But their fix is to remove that index tag.

FIX: Index Tag on DELETED() Causes "Bnormal Program..."
Last reviewed: May 21, 1998
Article ID: Q117560
 


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

2.5x 2.6x | 2.5x 2.6x
MS-DOS    | WINDOWS



The information in this article applies to:
Microsoft FoxPro for MS-DOS, versions 2.5x, 2.6x
Microsoft FoxPro for Windows, versions 2.5x, 2.6x


SYMPTOMS
If you are using the INDEX ON DELETED() TAG command, subsequent operations cause "bnormal Program Termination - Memory Protection Fault" error messages in FoxPro for MS-DOS or general protection (GP) faults in FoxPro for Windows.

NOTE: The error message "bnormal Program Termination - Memory Protection Fault" is shown as it is displayed on the screen.



RESOLUTION
The errors will no longer occur if you remove the references to INDEX commands on the DELETED() function.



STATUS
Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. This problem was corrected in Visual FoxPro 3.0 for Windows.



MORE INFORMATION


Steps to Reproduce Problem
Create and run a program that contains the following code:


   CREATE TABLE dbfa (a1 C(10))
   CREATE TABLE dbfb (b1 C(10))
   CREATE TABLE dbfc (c1 C(10))

   SELECT dbfc
   INDEX ON DELETED() TAG deleted

   FOR x=1 TO 200
        INSERT INTO dbfa (a1) VALUES (STR(x))
   ENDFOR

   CLOSE DATABASES

   USE dbfa IN 1
   USE dbfb IN 2
   USE dbfc IN 3

   SET DELETED ON

   SELECT DISTINCT a1 FROM dbfa ;
        WHERE NOT EXISTS (SELECT * FROM dbfb WHERE b1=a1) ;
        OR EXISTS (SELECT * FROM dbfc WHERE c1=a1)

Avatar of CarlWarnerCarlWarner🇺🇸

Even though the error message returned could vary a bit, one other area that used to cause FoxPro App crashes was an obscure BROWSE situation that dealt with a character field at the maximum width of 254 characters and having the S<n> function code switch on that field in the BROWSE command parameters.  If the field was anything less than 254, the program wouldn't crash.  You may check to see if you use any BROWSEs in your app and whether that scrolling function is applied to a very wide maxed out field.

Avatar of CarlWarnerCarlWarner🇺🇸

BTW, if in fact it turns out to be the DELETED() index, feel assured that many have had issues with how FoxPro and Visual FoxPro both have handled speeding up the recognition of deleted records.

There is some relief coming in VFP9 to get away from our only way to index on DELETED().  VFP9 now introduces a new binary index type for DELETED().  This type of problem should go away as developers move into VFP9 when it is released later this year.

Reward 1Reward 2Reward 3Reward 4Reward 5Reward 6

EARN REWARDS FOR ASKING, ANSWERING, AND MORE.

Earn free swag for participating on the platform.


Avatar of AliFoxAliFox

ASKER

Carl,

Lots of input and research I can see above - thanks - but having checked all my CDX files there is no index tag which has deleted() within it. Neither do I have any characters in browses at position 254.

Could a displaced memory card cause this?

Avatar of CarlWarnerCarlWarner🇺🇸

<< Could a displaced memory card cause this? >>

I don't think so.  I think the symptoms would be much worse if a displaced memory card was the problem.

Avatar of AliFoxAliFox

ASKER

Carl,

We are at the stage now of clutching at any straws available to try and get it to work. This makes no sense to me but I detail for your analysis:-

If we increase the idle sensitivity to maximum (high) on the icon properties of the applicaiton then the bnormal program termination message appears sometimes but not always. However, in increasing the idle sensitivity to max in other 2 PC's which were working, these 2 PC's are now starting to get the bnormal program termination message , which they weren't receiving before.

You correct 1 problem but in the process create another................

Any views on the above or indeed other possibilites for this bnormal error message would be much appreciated.

Thanks,

Free T-shirt

Get a FREE t-shirt when you ask your first question.

We believe in human intelligence. Our moderation policy strictly prohibits the use of LLM content in our Q&A threads.


SOLUTION
Link to home
membership
Log in or create a free account to see answer.
Signing up is free and takes 30 seconds. No credit card required.

Avatar of AliFoxAliFox

ASKER

theSliver,

I cannot access the first URL given. The second is an invitation to BUY products. Although this may work and I appreciate your input we are not in a position to buy unless we know for sure it will work. Naturally such a guarantee could never exist and so we cannot examine this option.

thanks again for your input but I'm sure you will appreciate that you could buy the world if resources were infinite and still probably find that your original problem was not solved. In this scenario we have to proceed by more cautious means.

Please do not feel offended by this reply as I know you sent the above information to help me. It is other regulations beyond my control which determine which courses of action we can follow.

Thanks again,
AliFox

Well I'm not offended, and I have nothing to do with Mo'Slo there are no doubt other Slow down utilities about, though you tend to get what you pay for.  As for the first URL, its fine for me.

In other words, how about trying to find a slow down utility and see if that works?

ASKER CERTIFIED SOLUTION
Link to home
membership
Log in or create a free account to see answer.
Signing up is free and takes 30 seconds. No credit card required.

Oh, and make sure you are using the extended (32-bit) runtime. Add the +X switch to your foxr command line:

 c:\mydir\myapp\foxr.exe +X

...to force it to use the 32-bit runtimes. It must be an uppercase X. FOXDX260.ESL must be present in the program directory.

Reward 1Reward 2Reward 3Reward 4Reward 5Reward 6

EARN REWARDS FOR ASKING, ANSWERING, AND MORE.

Earn free swag for participating on the platform.


Avatar of AliFoxAliFox

ASKER

adg,

thanks for your input as this problem has still not been resolved. Utlimately, the deadly triangle has created a stalemate, we blame hardware, hardware blame software and users blame us.

In the end we have been forced to replace all Windows Xp PC's with Windows98 - this has solved the problem even although we didn't identify why XP caused this.

The 2 pieces of advice you offered we already had in place. Anything more though would still be welcome.





Get a copy of DPAKBD. It is a CPU usage controller (similar to CPUTame) that improves performance in a multitasking environment by preventing Foxpro from hogging the CPU. Download a copy of it and put dpakbd.com in the c:\windows\system32 directory.
Open c:\windows\system32\autoexec.nt and add new line at the bottom that says:

c:\windows\system32\dpakbd

Since you mentioned that "idle sensitivity" has an effect on the symptoms, this really could help.

Free T-shirt

Get a FREE t-shirt when you ask your first question.

We believe in human intelligence. Our moderation policy strictly prohibits the use of LLM content in our Q&A threads.


Avatar of AliFoxAliFox

ASKER

adg,

You may be right with DPAKBD but it is not an option for us to buy or even try other software.
(See my response to theSilver earlier).

Resources do not allow us to try other software solutions and we are limited to local knowledge with what we have, within the constraints of what we know and can offer.

Again, like above, I do not wish to offend you by these remarks. I do value everyone's input but
resources, budgets and other factors affect which courses of action are available.

Sometimes it is better to accept that a 2nd best solution is the correct solution within your own world.


In this situation

> Utlimately, the deadly triangle has created a stalemate, we blame hardware, hardware blame software and users blame us.

SHOULD be:

You blame Windows, hardware blames Windows, users blame you.

:)

But it is free.

Reward 1Reward 2Reward 3Reward 4Reward 5Reward 6

EARN REWARDS FOR ASKING, ANSWERING, AND MORE.

Earn free swag for participating on the platform.


Do you have any assembly language programmers available?

It is becoming very important to get your app working well in XP. More and more PC's come pre-loaded with XP and it is a major hassle for users to switch to 98. You could at least *try* these suggestions so you will have a plan of attack when *everybody* is crying about not supporting XP.


At the moment I'm coming to an end of diagnosing why a client's network has appalling performance (this is a VFP 7 app) with our application.  Its not entirely resolved, though I'm about to build a completely new server (we did not install the network), to eliminate all possibilities.

However, the biggest performance killer (after getting rid of the Norton Anti virus), was signed SMB traffic.  If you have a Win2k domain (probably 2003 as well), create a domain policy that disables completely signed SMB traffic.  You'll need to check each XP machine to make sure that they get the policy properly, some in the client's network didn't.

Free T-shirt

Get a FREE t-shirt when you ask your first question.

We believe in human intelligence. Our moderation policy strictly prohibits the use of LLM content in our Q&A threads.


Avatar of AliFoxAliFox

ASKER

adg,

free or not, the politics of the situation demand that no other software is involved. That would only allow us/them spread the blame to yet another source? - As dogmatic as it sounds we are limited to finding solutions within the software/hardware which we have.

theSliver,

We tried disabling anit-virus software, and also enabled it without any scanning of DBF and other Foxpro extensions - no result. Signed SMB traffic - what is that? - I know nothing of it - how do I detect it, how do I turn it off? - what is the 'thinking' behind it's causing congestion?

Thanks,


Signing packets protects them from tampering. Not sure how this relates to the program termination.

Click Start/Settings/Control Panel
Double click Administrative Tools
Double click Local security policy
Choose Local Policy on the left, under it select Security Options
On the right there is a list, look for the lines that say:

Microsoft network client: Digitally sign communications (always)
Microsoft network client: Digitally sign communications (if server agrees)
Microsoft network server: Digitally sign communications (always)
Microsoft network server: Digitally sign communications (if client agrees)

Avatar of CarlWarnerCarlWarner🇺🇸

If you're using the Fox resource file on those PCs, have you just tried deleting them (or backing up the existing one) and letting Fox create a new one when next run?  Simetimes that darn foxuser.dbf file gets corrupt and does hold lots of information on browse and preview settings in it.

FoxPro for DOS never needed the slowdown program that the FoxPro for Windows program did.  So, don't even worry about that angle.

Reward 1Reward 2Reward 3Reward 4Reward 5Reward 6

EARN REWARDS FOR ASKING, ANSWERING, AND MORE.

Earn free swag for participating on the platform.


If you have XP workstations connecting to a Windows 2000 Server with the default policy then the XP workstations attempts to sign the SMB packets, the server attempts to agree to that.  However, the actual signing between Win2K and XP is different, this can result in packets being resent.

To theSliver:
Is the implementation of signed packets so bad that it causes FoxPro to fail? It should be able to retransmit heavily without affecting application-level open/read/write/lock/close. Foxpro for DOS must be using plain old INT 21h calls for its file access.

Avatar of AliFoxAliFox

ASKER

Sorry everyone for delay in responding to above........

Combination of holidays, no internet access, other work pressures........

The users have become so frustrated with so many options and possibilities, their departments and clients are the ones who are suffering. They (and I) have accepted defeat on this problem and we have restored all client PC's to W98. This has been running for almost 3 weeks now with no sight of the original problem.

I would therefore like to close the thread. I always feel morally obliged to close all threads by assigning an answer and attributing the relevant points to those that contributed but as no solution was found and a number of people suggested very good possibilities I am at a loss as to how the points should be assigned.

Can any of you guys help me with this, or is there some guidance one of the mods can offer?

Cheers

Free T-shirt

Get a FREE t-shirt when you ask your first question.

We believe in human intelligence. Our moderation policy strictly prohibits the use of LLM content in our Q&A threads.


It doesn't cause Foxpro to fail, but it has an effect similar to running anti virus software.  INT 21H Read/Write calls get caught by the redirector on that file handle, INT 21H hasn't anything to say in the matter.

This week I've had the dreaded 'out of resources on Win 16' trying to run Fox for Windows 2.6a on my XP workstation.  So it goes.


FoxPro

FoxPro

--

Questions

--

Followers

Top Experts

Visual FoxPro (VFP), and its predecessor FoxPro, is a data-centric, object-oriented, procedural, database programming language and IDE from Microsoft last released in 2007 that still has some active use due to its low cost of deployment and fairly rapid development. In 2008, Microsoft released a set of add-ons for VFP's xBase components to allow interoperability with various Microsoft technologies. It allows data processing against its native file-based data tables or database servers such as SQL Server.