extension crashing php 4.11/Apache 1.3

From: Date: Tue, 26 Feb 2002 15:00:11 +0000
Subject: extension crashing php 4.11/Apache 1.3
Groups: php.general 
Request: Send a blank email to php-general+get-86251@lists.php.net to get a copy of this message
Hi! If this is not the group to discuss the issues of writing extensions please let me know, but for now I have a question: What causes php to crash after 256 executions of my extension? / How can this be avoided? The extension opens a file (on the server), writes some values into it and closes the file (yes, I did not forget the fclose!). I use the standard C file handling commands (fopen, ...). Additionally some mysql requests are done. The whole extension works fine, it reads the right values, creates the file and stores the values in a correct way. It's just that it crashes after 256 executions. With PHP used as a module it does not make a difference if the requests to the ext were made from one or from several pages. With PHP used as a cgi binary it crashes only if the requests were all done from one page. The error messages are: for the CGI binary: "PHP caused an invalid page fault in PHP4TS.DLL" for the module: "APACHE caused an invalid page fault in PHP4TS.DLL" In the first case APACHE continues to behave exactly like before the crash, and I get an Internal Sever Error, if the latter case APACHE crashes again and again until I press the stop button of the browser. I would be grateful If you could tell me were the error lies, Basti PS: some more useful information: About the environment: Windows 98 SE, PHP 4.1.1, Apache 1.3.14, MySql 3.23 beta, The extension was compiled using MS Visual C++ 6.0 The browser is running on the same machine as the servers. Some part of the code: FILE * open_matfile(char * mode){ FILE * mf; mf=fopen("d:\\studium\\pilanesberg\\homepage\\matrix.dat", mode); if (!mf) { zend_printf("Error opening matrix file in mode %s: %i.<br>",mode, ferror(mf)); } return (mf); } int store_matrix(int dMat[][MAXI], int nMat[][MAXI], int nodes[], int numOfNodes){ FILE *matFile; //the matrix file matFile=open_matfile("wb"); {...} fclose(matFile); return(0); } int load_matrix(int dMat[][MAXI], int nMat[][MAXI], int nodes[MAXI/2]){ FILE *matFile; matFile=open_matfile("rb"); if (!matFile) {return(0);} {...} if (fclose(matFile)){ zend_printf("Error closing matrix file<br>"); return(0); } {...} }

« previous php.general (#86251) next »