Bug #53140 [Com]: PHP-CGI (FastCGI IIS) crashes when creating DOTNET instance every second time

2013-03-19 Thread ben at imperialwebdesigns dot com
Edit report at https://bugs.php.net/bug.php?id=53140edit=1

 ID: 53140
 Comment by: ben at imperialwebdesigns dot com
 Reported by:jeyb88 at gmail dot com
 Summary:PHP-CGI (FastCGI IIS) crashes when creating DOTNET
 instance every second time
 Status: Open
 Type:   Bug
 Package:COM related
 Operating System:   XP, Vista, Win 7,Win Server 2008
 PHP Version:5.3.3
 Block user comment: N
 Private report: N

 New Comment:

Any update on getting this resolved?


Previous Comments:

[2013-01-08 15:08:16] johnphayes at gmail dot com

You may be able to fix this issue by recompiling PHP with the 

void php_com_dotnet_mshutdown()

defined in /ext/com_dotnet/com_dotnet.c. IIRC the problem was that that 
function 
was removed in this revision: 

http://svn.php.net/viewvc/php/php-src/trunk/ext/com_dotnet/com_dotnet.c?
r1=137794r2=146718. 

So if you can download the latest source, put that function back into 
com_dotnet.c, and recompile you should be good to go.


[2013-01-08 09:35:22] xandra_18ro at yahoo dot com

Is there a hotfix for this problem? Or a workaround perhaps.
thanks!


[2012-03-26 16:18:30] andrew dot king at simail dot co dot uk

I can confirm that this problem also exists on PHP 5.3.2 on Windows Server 2003 
32-bit with IIS running FastCGI. Problem also occurs on WAMP server, Windows 7 
64-bit running PHP 5.3.8, Apache 2.2.21 with PHP loaded as a module, not CGI.


[2011-08-24 17:02:08] johnphayes at gmail dot com

Here is the Application Event log entry in Windows Server 2003 when this crash 
occurs in my test case above:

Source: .NET Runtime 2.0 Error

Description:
Faulting application httpd.exe, version 2.2.19.0, stamp 4dd6eda8, faulting 
module 
php5ts.dll, version 5.2.17.17, stamp 4d25fb49, debug? 0, fault address 
0x000ea66d.

This source is a little odd, because I have .NET 4.0 Runtime installed. Note 
that although I have PHP 5.2.17 installed at the moment, I have experienced 
this 
with 5.3 as well.


[2011-08-24 16:23:21] johnphayes at gmail dot com

Can this bug's summary be edited to remove (FastCGI IIS)? My comment above 
shows 
that it can be reproduced under Apache as an Apache handler as well.




The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

https://bugs.php.net/bug.php?id=53140


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=53140edit=1


Bug #53140 [Com]: PHP-CGI (FastCGI IIS) crashes when creating DOTNET instance every second time

2013-01-08 Thread xandra_18ro at yahoo dot com
Edit report at https://bugs.php.net/bug.php?id=53140edit=1

 ID: 53140
 Comment by: xandra_18ro at yahoo dot com
 Reported by:jeyb88 at gmail dot com
 Summary:PHP-CGI (FastCGI IIS) crashes when creating DOTNET
 instance every second time
 Status: Open
 Type:   Bug
 Package:COM related
 Operating System:   XP, Vista, Win 7,Win Server 2008
 PHP Version:5.3.3
 Block user comment: N
 Private report: N

 New Comment:

Is there a hotfix for this problem? Or a workaround perhaps.
thanks!


Previous Comments:

[2012-03-26 16:18:30] andrew dot king at simail dot co dot uk

I can confirm that this problem also exists on PHP 5.3.2 on Windows Server 2003 
32-bit with IIS running FastCGI. Problem also occurs on WAMP server, Windows 7 
64-bit running PHP 5.3.8, Apache 2.2.21 with PHP loaded as a module, not CGI.


[2011-08-24 17:02:08] johnphayes at gmail dot com

Here is the Application Event log entry in Windows Server 2003 when this crash 
occurs in my test case above:

Source: .NET Runtime 2.0 Error

Description:
Faulting application httpd.exe, version 2.2.19.0, stamp 4dd6eda8, faulting 
module 
php5ts.dll, version 5.2.17.17, stamp 4d25fb49, debug? 0, fault address 
0x000ea66d.

This source is a little odd, because I have .NET 4.0 Runtime installed. Note 
that although I have PHP 5.2.17 installed at the moment, I have experienced 
this 
with 5.3 as well.


[2011-08-24 16:23:21] johnphayes at gmail dot com

Can this bug's summary be edited to remove (FastCGI IIS)? My comment above 
shows 
that it can be reproduced under Apache as an Apache handler as well.


[2011-08-24 16:18:58] johnphayes at gmail dot com

This error only appears to happen when the offending code is run from a web 
server. If I run the offending code directly from the CLI, php never crashes. 
If 
I run the same code through Apache (via a cURL request), Apache crashes every 
other time. My configuration is:

* Windows Server 2003 R2
* Apache 2.2
* PHP 5.3 configured as an Apache handler, not under FastCGI (see 
http://www.php.net/manual/en/install.windows.apache2.php)
* The following 2 files:

--

?php
// testCrash.php - file #1
$stack = new DOTNET(mscorlib, System.Collections.Stack);
echo success;
?

--

?php
// testCrashClient.php - file #2
$endPoint = 'http://localhost/testCrash.php';

$client = curl_init();
curl_setopt_array($client, array(
CURLOPT_FRESH_CONNECT = TRUE,
CURLOPT_RETURNTRANSFER = TRUE,
CURLOPT_URL = $endPoint
));
$response = curl_exec($client);
curl_close($client);
var_dump($response);

echo 'done';
?

--

Use case #1 - run locally, we get no crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrash.php
3. Observe that we get the expected resulting output: 
   success
4. Repeat step 2. Expected result will always be obtained.

Use case #2 - run through the web server, we get the crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrashClient.php
3. Observe that we get the expected resulting output:
   string(7) success
   done
4. Repeat step 2.
5. Now observe that we get an error:
   bool(false)
   done
6. Repeat step 2.
7. Expected successful output is obtained again.

Repeating step 2 will cause the crash every other time. When the crash occurs, 
apache's error log gets:

--
[Wed Aug 24 12:13:25 2011] [notice] Parent: child process exited with status 0 -
- Restarting.
[Wed Aug 24 12:13:25 2011] [notice] Apache/2.2.19 (Win32) PHP/5.2.17 configured 
-- resuming normal operations
[Wed Aug 24 12:13:25 2011] [notice] Server built: May 20 2011 17:39:35
[Wed Aug 24 12:13:25 2011] [notice] Parent: Created child process 2624
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Child process is running
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Acquired the start mutex.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting 64 worker threads.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting thread to listen on 
port 80.
--


[2010-11-16 23:40:13] davidphp at limegreensocks dot com

It appears this behavior was intentionally introduced by WEZ back in 2003.  

http://svn.php.net/viewvc/php/php-src/trunk/ext/com_dotnet/com_dotnet.c?r1=137794r2=146718

I don't know what problem he was trying to fix back then, so I'm not sure of 
the implications of adding these two lines back.  But if you are using fastcgi, 
then jeyb88 is absolutely correct: this will crash every other time the code is 
run.  

My repro is even simpler than jeyb88's.  I don't even 

Bug #53140 [Com]: PHP-CGI (FastCGI IIS) crashes when creating DOTNET instance every second time

2013-01-08 Thread johnphayes at gmail dot com
Edit report at https://bugs.php.net/bug.php?id=53140edit=1

 ID: 53140
 Comment by: johnphayes at gmail dot com
 Reported by:jeyb88 at gmail dot com
 Summary:PHP-CGI (FastCGI IIS) crashes when creating DOTNET
 instance every second time
 Status: Open
 Type:   Bug
 Package:COM related
 Operating System:   XP, Vista, Win 7,Win Server 2008
 PHP Version:5.3.3
 Block user comment: N
 Private report: N

 New Comment:

You may be able to fix this issue by recompiling PHP with the 

void php_com_dotnet_mshutdown()

defined in /ext/com_dotnet/com_dotnet.c. IIRC the problem was that that 
function 
was removed in this revision: 

http://svn.php.net/viewvc/php/php-src/trunk/ext/com_dotnet/com_dotnet.c?
r1=137794r2=146718. 

So if you can download the latest source, put that function back into 
com_dotnet.c, and recompile you should be good to go.


Previous Comments:

[2013-01-08 09:35:22] xandra_18ro at yahoo dot com

Is there a hotfix for this problem? Or a workaround perhaps.
thanks!


[2012-03-26 16:18:30] andrew dot king at simail dot co dot uk

I can confirm that this problem also exists on PHP 5.3.2 on Windows Server 2003 
32-bit with IIS running FastCGI. Problem also occurs on WAMP server, Windows 7 
64-bit running PHP 5.3.8, Apache 2.2.21 with PHP loaded as a module, not CGI.


[2011-08-24 17:02:08] johnphayes at gmail dot com

Here is the Application Event log entry in Windows Server 2003 when this crash 
occurs in my test case above:

Source: .NET Runtime 2.0 Error

Description:
Faulting application httpd.exe, version 2.2.19.0, stamp 4dd6eda8, faulting 
module 
php5ts.dll, version 5.2.17.17, stamp 4d25fb49, debug? 0, fault address 
0x000ea66d.

This source is a little odd, because I have .NET 4.0 Runtime installed. Note 
that although I have PHP 5.2.17 installed at the moment, I have experienced 
this 
with 5.3 as well.


[2011-08-24 16:23:21] johnphayes at gmail dot com

Can this bug's summary be edited to remove (FastCGI IIS)? My comment above 
shows 
that it can be reproduced under Apache as an Apache handler as well.


[2011-08-24 16:18:58] johnphayes at gmail dot com

This error only appears to happen when the offending code is run from a web 
server. If I run the offending code directly from the CLI, php never crashes. 
If 
I run the same code through Apache (via a cURL request), Apache crashes every 
other time. My configuration is:

* Windows Server 2003 R2
* Apache 2.2
* PHP 5.3 configured as an Apache handler, not under FastCGI (see 
http://www.php.net/manual/en/install.windows.apache2.php)
* The following 2 files:

--

?php
// testCrash.php - file #1
$stack = new DOTNET(mscorlib, System.Collections.Stack);
echo success;
?

--

?php
// testCrashClient.php - file #2
$endPoint = 'http://localhost/testCrash.php';

$client = curl_init();
curl_setopt_array($client, array(
CURLOPT_FRESH_CONNECT = TRUE,
CURLOPT_RETURNTRANSFER = TRUE,
CURLOPT_URL = $endPoint
));
$response = curl_exec($client);
curl_close($client);
var_dump($response);

echo 'done';
?

--

Use case #1 - run locally, we get no crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrash.php
3. Observe that we get the expected resulting output: 
   success
4. Repeat step 2. Expected result will always be obtained.

Use case #2 - run through the web server, we get the crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrashClient.php
3. Observe that we get the expected resulting output:
   string(7) success
   done
4. Repeat step 2.
5. Now observe that we get an error:
   bool(false)
   done
6. Repeat step 2.
7. Expected successful output is obtained again.

Repeating step 2 will cause the crash every other time. When the crash occurs, 
apache's error log gets:

--
[Wed Aug 24 12:13:25 2011] [notice] Parent: child process exited with status 0 -
- Restarting.
[Wed Aug 24 12:13:25 2011] [notice] Apache/2.2.19 (Win32) PHP/5.2.17 configured 
-- resuming normal operations
[Wed Aug 24 12:13:25 2011] [notice] Server built: May 20 2011 17:39:35
[Wed Aug 24 12:13:25 2011] [notice] Parent: Created child process 2624
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Child process is running
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Acquired the start mutex.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting 64 worker threads.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting thread to listen on 
port 80.
--


Bug #53140 [Com]: PHP-CGI (FastCGI IIS) crashes when creating DOTNET instance every second time

2012-03-26 Thread andrew dot king at simail dot co dot uk
Edit report at https://bugs.php.net/bug.php?id=53140edit=1

 ID: 53140
 Comment by: andrew dot king at simail dot co dot uk
 Reported by:jeyb88 at gmail dot com
 Summary:PHP-CGI (FastCGI IIS) crashes when creating DOTNET
 instance every second time
 Status: Open
 Type:   Bug
 Package:COM related
 Operating System:   XP, Vista, Win 7,Win Server 2008
 PHP Version:5.3.3
 Block user comment: N
 Private report: N

 New Comment:

I can confirm that this problem also exists on PHP 5.3.2 on Windows Server 2003 
32-bit with IIS running FastCGI. Problem also occurs on WAMP server, Windows 7 
64-bit running PHP 5.3.8, Apache 2.2.21 with PHP loaded as a module, not CGI.


Previous Comments:

[2011-08-24 17:02:08] johnphayes at gmail dot com

Here is the Application Event log entry in Windows Server 2003 when this crash 
occurs in my test case above:

Source: .NET Runtime 2.0 Error

Description:
Faulting application httpd.exe, version 2.2.19.0, stamp 4dd6eda8, faulting 
module 
php5ts.dll, version 5.2.17.17, stamp 4d25fb49, debug? 0, fault address 
0x000ea66d.

This source is a little odd, because I have .NET 4.0 Runtime installed. Note 
that although I have PHP 5.2.17 installed at the moment, I have experienced 
this 
with 5.3 as well.


[2011-08-24 16:23:21] johnphayes at gmail dot com

Can this bug's summary be edited to remove (FastCGI IIS)? My comment above 
shows 
that it can be reproduced under Apache as an Apache handler as well.


[2011-08-24 16:18:58] johnphayes at gmail dot com

This error only appears to happen when the offending code is run from a web 
server. If I run the offending code directly from the CLI, php never crashes. 
If 
I run the same code through Apache (via a cURL request), Apache crashes every 
other time. My configuration is:

* Windows Server 2003 R2
* Apache 2.2
* PHP 5.3 configured as an Apache handler, not under FastCGI (see 
http://www.php.net/manual/en/install.windows.apache2.php)
* The following 2 files:

--

?php
// testCrash.php - file #1
$stack = new DOTNET(mscorlib, System.Collections.Stack);
echo success;
?

--

?php
// testCrashClient.php - file #2
$endPoint = 'http://localhost/testCrash.php';

$client = curl_init();
curl_setopt_array($client, array(
CURLOPT_FRESH_CONNECT = TRUE,
CURLOPT_RETURNTRANSFER = TRUE,
CURLOPT_URL = $endPoint
));
$response = curl_exec($client);
curl_close($client);
var_dump($response);

echo 'done';
?

--

Use case #1 - run locally, we get no crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrash.php
3. Observe that we get the expected resulting output: 
   success
4. Repeat step 2. Expected result will always be obtained.

Use case #2 - run through the web server, we get the crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrashClient.php
3. Observe that we get the expected resulting output:
   string(7) success
   done
4. Repeat step 2.
5. Now observe that we get an error:
   bool(false)
   done
6. Repeat step 2.
7. Expected successful output is obtained again.

Repeating step 2 will cause the crash every other time. When the crash occurs, 
apache's error log gets:

--
[Wed Aug 24 12:13:25 2011] [notice] Parent: child process exited with status 0 -
- Restarting.
[Wed Aug 24 12:13:25 2011] [notice] Apache/2.2.19 (Win32) PHP/5.2.17 configured 
-- resuming normal operations
[Wed Aug 24 12:13:25 2011] [notice] Server built: May 20 2011 17:39:35
[Wed Aug 24 12:13:25 2011] [notice] Parent: Created child process 2624
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Child process is running
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Acquired the start mutex.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting 64 worker threads.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting thread to listen on 
port 80.
--


[2010-11-16 23:40:13] davidphp at limegreensocks dot com

It appears this behavior was intentionally introduced by WEZ back in 2003.  

http://svn.php.net/viewvc/php/php-src/trunk/ext/com_dotnet/com_dotnet.c?r1=137794r2=146718

I don't know what problem he was trying to fix back then, so I'm not sure of 
the implications of adding these two lines back.  But if you are using fastcgi, 
then jeyb88 is absolutely correct: this will crash every other time the code is 
run.  

My repro is even simpler than jeyb88's.  I don't even have to call any methods 
on the .net object.  I have a 1 line php file that calls the new against my 
.net class:

?php

  $class1 = new DOTNET(moo, Version=1.0.0.0, Culture=neutral, 

Bug #53140 [Com]: PHP-CGI (FastCGI IIS) crashes when creating DOTNET instance every second time

2011-08-24 Thread johnphayes at gmail dot com
Edit report at https://bugs.php.net/bug.php?id=53140edit=1

 ID: 53140
 Comment by: johnphayes at gmail dot com
 Reported by:jeyb88 at gmail dot com
 Summary:PHP-CGI (FastCGI IIS) crashes when creating DOTNET
 instance every second time
 Status: Open
 Type:   Bug
 Package:COM related
 Operating System:   XP, Vista, Win 7,Win Server 2008
 PHP Version:5.3.3
 Block user comment: N
 Private report: N

 New Comment:

This error only appears to happen when the offending code is run from a web 
server. If I run the offending code directly from the CLI, php never crashes. 
If 
I run the same code through Apache (via a cURL request), Apache crashes every 
other time. My configuration is:

* Windows Server 2003 R2
* Apache 2.2
* PHP 5.3 configured as an Apache handler, not under FastCGI (see 
http://www.php.net/manual/en/install.windows.apache2.php)
* The following 2 files:

--

?php
// testCrash.php - file #1
$stack = new DOTNET(mscorlib, System.Collections.Stack);
echo success;
?

--

?php
// testCrashClient.php - file #2
$endPoint = 'http://localhost/testCrash.php';

$client = curl_init();
curl_setopt_array($client, array(
CURLOPT_FRESH_CONNECT = TRUE,
CURLOPT_RETURNTRANSFER = TRUE,
CURLOPT_URL = $endPoint
));
$response = curl_exec($client);
curl_close($client);
var_dump($response);

echo 'done';
?

--

Use case #1 - run locally, we get no crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrash.php
3. Observe that we get the expected resulting output: 
   success
4. Repeat step 2. Expected result will always be obtained.

Use case #2 - run through the web server, we get the crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrashClient.php
3. Observe that we get the expected resulting output:
   string(7) success
   done
4. Repeat step 2.
5. Now observe that we get an error:
   bool(false)
   done
6. Repeat step 2.
7. Expected successful output is obtained again.

Repeating step 2 will cause the crash every other time. When the crash occurs, 
apache's error log gets:

--
[Wed Aug 24 12:13:25 2011] [notice] Parent: child process exited with status 0 -
- Restarting.
[Wed Aug 24 12:13:25 2011] [notice] Apache/2.2.19 (Win32) PHP/5.2.17 configured 
-- resuming normal operations
[Wed Aug 24 12:13:25 2011] [notice] Server built: May 20 2011 17:39:35
[Wed Aug 24 12:13:25 2011] [notice] Parent: Created child process 2624
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Child process is running
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Acquired the start mutex.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting 64 worker threads.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting thread to listen on 
port 80.
--


Previous Comments:

[2010-11-16 23:40:13] davidphp at limegreensocks dot com

It appears this behavior was intentionally introduced by WEZ back in 2003.  

http://svn.php.net/viewvc/php/php-src/trunk/ext/com_dotnet/com_dotnet.c?r1=137794r2=146718

I don't know what problem he was trying to fix back then, so I'm not sure of 
the implications of adding these two lines back.  But if you are using fastcgi, 
then jeyb88 is absolutely correct: this will crash every other time the code is 
run.  

My repro is even simpler than jeyb88's.  I don't even have to call any methods 
on the .net object.  I have a 1 line php file that calls the new against my 
.net class:

?php

  $class1 = new DOTNET(moo, Version=1.0.0.0, Culture=neutral, 
PublicKeyToken=14ba337483520f7a, moo.Impersonation);
  
? 

The constructor for my .net class is empty:

[ComVisible(true),
ClassInterface(ClassInterfaceType.None),
Guid(53C74B01-EC09-45a4-A741-42727858B2A1)]
public class Impersonation
{
public Impersonation()
{
}
// more code follows

When I first browse to the page, it (correctly) shows nothing.  Then I hit 
refresh, and I get the FastCGI process exited unexpectedly 0xc005.  If I 
hit refresh again, the page again (correctly) shows nothing, next time, fastcgi 
AVs again.

I am using php 5.3.3, Windows Server 2003, and I have tried both .Net 2.0 and 
.Net 3.5.

The pattern here is easily reproducible, causes an unrecoverable access 
violation, and there is no workaround.  A fix here would be greatly appreciated.


[2010-10-22 15:59:15] jeyb88 at gmail dot com

Description:

The php-cgi.exe will crash after every second refresh when I make an instance 
of the DOTNET class. The Website is hostet via IIS 7 and PHP is configured as 
FastCGI module. When I configure PHP on IIS as CGI module everything works 
fine, but I can not do without FastCGI. I have made a change in the 

Bug #53140 [Com]: PHP-CGI (FastCGI IIS) crashes when creating DOTNET instance every second time

2011-08-24 Thread johnphayes at gmail dot com
Edit report at https://bugs.php.net/bug.php?id=53140edit=1

 ID: 53140
 Comment by: johnphayes at gmail dot com
 Reported by:jeyb88 at gmail dot com
 Summary:PHP-CGI (FastCGI IIS) crashes when creating DOTNET
 instance every second time
 Status: Open
 Type:   Bug
 Package:COM related
 Operating System:   XP, Vista, Win 7,Win Server 2008
 PHP Version:5.3.3
 Block user comment: N
 Private report: N

 New Comment:

Can this bug's summary be edited to remove (FastCGI IIS)? My comment above 
shows 
that it can be reproduced under Apache as an Apache handler as well.


Previous Comments:

[2011-08-24 16:18:58] johnphayes at gmail dot com

This error only appears to happen when the offending code is run from a web 
server. If I run the offending code directly from the CLI, php never crashes. 
If 
I run the same code through Apache (via a cURL request), Apache crashes every 
other time. My configuration is:

* Windows Server 2003 R2
* Apache 2.2
* PHP 5.3 configured as an Apache handler, not under FastCGI (see 
http://www.php.net/manual/en/install.windows.apache2.php)
* The following 2 files:

--

?php
// testCrash.php - file #1
$stack = new DOTNET(mscorlib, System.Collections.Stack);
echo success;
?

--

?php
// testCrashClient.php - file #2
$endPoint = 'http://localhost/testCrash.php';

$client = curl_init();
curl_setopt_array($client, array(
CURLOPT_FRESH_CONNECT = TRUE,
CURLOPT_RETURNTRANSFER = TRUE,
CURLOPT_URL = $endPoint
));
$response = curl_exec($client);
curl_close($client);
var_dump($response);

echo 'done';
?

--

Use case #1 - run locally, we get no crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrash.php
3. Observe that we get the expected resulting output: 
   success
4. Repeat step 2. Expected result will always be obtained.

Use case #2 - run through the web server, we get the crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrashClient.php
3. Observe that we get the expected resulting output:
   string(7) success
   done
4. Repeat step 2.
5. Now observe that we get an error:
   bool(false)
   done
6. Repeat step 2.
7. Expected successful output is obtained again.

Repeating step 2 will cause the crash every other time. When the crash occurs, 
apache's error log gets:

--
[Wed Aug 24 12:13:25 2011] [notice] Parent: child process exited with status 0 -
- Restarting.
[Wed Aug 24 12:13:25 2011] [notice] Apache/2.2.19 (Win32) PHP/5.2.17 configured 
-- resuming normal operations
[Wed Aug 24 12:13:25 2011] [notice] Server built: May 20 2011 17:39:35
[Wed Aug 24 12:13:25 2011] [notice] Parent: Created child process 2624
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Child process is running
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Acquired the start mutex.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting 64 worker threads.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting thread to listen on 
port 80.
--


[2010-11-16 23:40:13] davidphp at limegreensocks dot com

It appears this behavior was intentionally introduced by WEZ back in 2003.  

http://svn.php.net/viewvc/php/php-src/trunk/ext/com_dotnet/com_dotnet.c?r1=137794r2=146718

I don't know what problem he was trying to fix back then, so I'm not sure of 
the implications of adding these two lines back.  But if you are using fastcgi, 
then jeyb88 is absolutely correct: this will crash every other time the code is 
run.  

My repro is even simpler than jeyb88's.  I don't even have to call any methods 
on the .net object.  I have a 1 line php file that calls the new against my 
.net class:

?php

  $class1 = new DOTNET(moo, Version=1.0.0.0, Culture=neutral, 
PublicKeyToken=14ba337483520f7a, moo.Impersonation);
  
? 

The constructor for my .net class is empty:

[ComVisible(true),
ClassInterface(ClassInterfaceType.None),
Guid(53C74B01-EC09-45a4-A741-42727858B2A1)]
public class Impersonation
{
public Impersonation()
{
}
// more code follows

When I first browse to the page, it (correctly) shows nothing.  Then I hit 
refresh, and I get the FastCGI process exited unexpectedly 0xc005.  If I 
hit refresh again, the page again (correctly) shows nothing, next time, fastcgi 
AVs again.

I am using php 5.3.3, Windows Server 2003, and I have tried both .Net 2.0 and 
.Net 3.5.

The pattern here is easily reproducible, causes an unrecoverable access 
violation, and there is no workaround.  A fix here would be greatly appreciated.


[2010-10-22 15:59:15] jeyb88 at gmail dot com

Description:

The php-cgi.exe will 

Bug #53140 [Com]: PHP-CGI (FastCGI IIS) crashes when creating DOTNET instance every second time

2011-08-24 Thread johnphayes at gmail dot com
Edit report at https://bugs.php.net/bug.php?id=53140edit=1

 ID: 53140
 Comment by: johnphayes at gmail dot com
 Reported by:jeyb88 at gmail dot com
 Summary:PHP-CGI (FastCGI IIS) crashes when creating DOTNET
 instance every second time
 Status: Open
 Type:   Bug
 Package:COM related
 Operating System:   XP, Vista, Win 7,Win Server 2008
 PHP Version:5.3.3
 Block user comment: N
 Private report: N

 New Comment:

Here is the Application Event log entry in Windows Server 2003 when this crash 
occurs in my test case above:

Source: .NET Runtime 2.0 Error

Description:
Faulting application httpd.exe, version 2.2.19.0, stamp 4dd6eda8, faulting 
module 
php5ts.dll, version 5.2.17.17, stamp 4d25fb49, debug? 0, fault address 
0x000ea66d.

This source is a little odd, because I have .NET 4.0 Runtime installed. Note 
that although I have PHP 5.2.17 installed at the moment, I have experienced 
this 
with 5.3 as well.


Previous Comments:

[2011-08-24 16:23:21] johnphayes at gmail dot com

Can this bug's summary be edited to remove (FastCGI IIS)? My comment above 
shows 
that it can be reproduced under Apache as an Apache handler as well.


[2011-08-24 16:18:58] johnphayes at gmail dot com

This error only appears to happen when the offending code is run from a web 
server. If I run the offending code directly from the CLI, php never crashes. 
If 
I run the same code through Apache (via a cURL request), Apache crashes every 
other time. My configuration is:

* Windows Server 2003 R2
* Apache 2.2
* PHP 5.3 configured as an Apache handler, not under FastCGI (see 
http://www.php.net/manual/en/install.windows.apache2.php)
* The following 2 files:

--

?php
// testCrash.php - file #1
$stack = new DOTNET(mscorlib, System.Collections.Stack);
echo success;
?

--

?php
// testCrashClient.php - file #2
$endPoint = 'http://localhost/testCrash.php';

$client = curl_init();
curl_setopt_array($client, array(
CURLOPT_FRESH_CONNECT = TRUE,
CURLOPT_RETURNTRANSFER = TRUE,
CURLOPT_URL = $endPoint
));
$response = curl_exec($client);
curl_close($client);
var_dump($response);

echo 'done';
?

--

Use case #1 - run locally, we get no crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrash.php
3. Observe that we get the expected resulting output: 
   success
4. Repeat step 2. Expected result will always be obtained.

Use case #2 - run through the web server, we get the crash:
Steps:
1. Open command prompt
2. Execute:
   php.exe testCrashClient.php
3. Observe that we get the expected resulting output:
   string(7) success
   done
4. Repeat step 2.
5. Now observe that we get an error:
   bool(false)
   done
6. Repeat step 2.
7. Expected successful output is obtained again.

Repeating step 2 will cause the crash every other time. When the crash occurs, 
apache's error log gets:

--
[Wed Aug 24 12:13:25 2011] [notice] Parent: child process exited with status 0 -
- Restarting.
[Wed Aug 24 12:13:25 2011] [notice] Apache/2.2.19 (Win32) PHP/5.2.17 configured 
-- resuming normal operations
[Wed Aug 24 12:13:25 2011] [notice] Server built: May 20 2011 17:39:35
[Wed Aug 24 12:13:25 2011] [notice] Parent: Created child process 2624
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Child process is running
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Acquired the start mutex.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting 64 worker threads.
[Wed Aug 24 12:13:26 2011] [notice] Child 2624: Starting thread to listen on 
port 80.
--


[2010-11-16 23:40:13] davidphp at limegreensocks dot com

It appears this behavior was intentionally introduced by WEZ back in 2003.  

http://svn.php.net/viewvc/php/php-src/trunk/ext/com_dotnet/com_dotnet.c?r1=137794r2=146718

I don't know what problem he was trying to fix back then, so I'm not sure of 
the implications of adding these two lines back.  But if you are using fastcgi, 
then jeyb88 is absolutely correct: this will crash every other time the code is 
run.  

My repro is even simpler than jeyb88's.  I don't even have to call any methods 
on the .net object.  I have a 1 line php file that calls the new against my 
.net class:

?php

  $class1 = new DOTNET(moo, Version=1.0.0.0, Culture=neutral, 
PublicKeyToken=14ba337483520f7a, moo.Impersonation);
  
? 

The constructor for my .net class is empty:

[ComVisible(true),
ClassInterface(ClassInterfaceType.None),
Guid(53C74B01-EC09-45a4-A741-42727858B2A1)]
public class Impersonation
{
public Impersonation()
{
}
// more code follows

When I first browse to the page, 

Bug #53140 [Com]: PHP-CGI (FastCGI IIS) crashes when creating DOTNET instance every second time

2010-11-16 Thread davidphp at limegreensocks dot com
Edit report at http://bugs.php.net/bug.php?id=53140edit=1

 ID: 53140
 Comment by: davidphp at limegreensocks dot com
 Reported by:jeyb88 at gmail dot com
 Summary:PHP-CGI (FastCGI IIS) crashes when creating DOTNET
 instance every second time
 Status: Open
 Type:   Bug
 Package:COM related
 Operating System:   XP, Vista, Win 7,Win Server 2008
 PHP Version:5.3.3
 Block user comment: N
 Private report: N

 New Comment:

It appears this behavior was intentionally introduced by WEZ back in
2003.  



http://svn.php.net/viewvc/php/php-src/trunk/ext/com_dotnet/com_dotnet.c?r1=137794r2=146718



I don't know what problem he was trying to fix back then, so I'm not
sure of the implications of adding these two lines back.  But if you are
using fastcgi, then jeyb88 is absolutely correct: this will crash every
other time the code is run.  



My repro is even simpler than jeyb88's.  I don't even have to call any
methods on the .net object.  I have a 1 line php file that calls the
new against my .net class:



?php



  $class1 = new DOTNET(moo, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=14ba337483520f7a, moo.Impersonation);

  

? 



The constructor for my .net class is empty:



[ComVisible(true),

ClassInterface(ClassInterfaceType.None),

Guid(53C74B01-EC09-45a4-A741-42727858B2A1)]

public class Impersonation

{

public Impersonation()

{

}

// more code follows



When I first browse to the page, it (correctly) shows nothing.  Then I
hit refresh, and I get the FastCGI process exited unexpectedly
0xc005.  If I hit refresh again, the page again (correctly) shows
nothing, next time, fastcgi AVs again.



I am using php 5.3.3, Windows Server 2003, and I have tried both .Net
2.0 and .Net 3.5.



The pattern here is easily reproducible, causes an unrecoverable access
violation, and there is no workaround.  A fix here would be greatly
appreciated.


Previous Comments:

[2010-10-22 15:59:15] jeyb88 at gmail dot com

Description:

The php-cgi.exe will crash after every second refresh when I make an
instance of the DOTNET class. The Website is hostet via IIS 7 and PHP is
configured as FastCGI module. When I configure PHP on IIS as CGI module
everything works fine, but I can not do without FastCGI. I have made a
change in the com_dotnet.c file in function php_com_dotnet_rshutdown.
The variable called stuff from type dotnet_runtime_stuff will not be
released like in the function php_com_dotnet_mshutdown. So I have added
this two lines to the function php_com_dotnet_rshutdown:



free(stuff);

COMG(dotnet_runtime_stuff) = NULL;



After that I have compiled PHP 5.3.3 with Visual Studio 2008 (VC9) x86
with almost the same configuration like in the PHP 5.3.3 nts version but
without zlib:



configure --enable-snapshot-build --enable-debug-pack
--disable-zts --disable-isapi --disable-nsapi --without-mssql
--without-pdo-mssql --without-pi3web --with-pdo-oci --with-oci8
--with-oci8-11g --with-enchant=shared
--enable-object-out-dir=../obj/ --enable-com-dotnet
--with-mcrypt=static --disable-zlib



The include and lib files are relative to the configuration file (in the
deps folder). I have earned following error and that's why I have
disabled zlib:



php5.dll.def : error LNK2001: unresolved external symbol compressBound

php5.dll.def : error LNK2001: unresolved external symbol deflateBound

php5.dll.def : error LNK2001: unresolved external symbol deflatePrime

php5.dll.def : error LNK2001: unresolved external symbol gzclearerr

php5.dll.def : error LNK2001: unresolved external symbol gzungetc

php5.dll.def : error LNK2001: unresolved external symbol inflateBack

php5.dll.def : error LNK2001: unresolved external symbol inflateBackEnd

php5.dll.def : error LNK2001: unresolved external symbol
inflateBackInit_

php5.dll.def : error LNK2001: unresolved external symbol inflateCopy

php5.dll.def : error LNK2001: unresolved external symbol
zlibCompileFlags



The error in the com_dotnet.c file was the error, because now with the
new compiled version, fastcgi will not be terminated. Is the zlib
extension necessary for complex php websites like Joomla? Because now
the compiled php version can interpret the sample shown below and it can
interpret simple php scripts, but when I try to load a Joomla site, the
FastCGI will crash. What is wrong with the made configuration? Can you
give me an important hint of how to compile php5.3.3 like in the
original php version?



Best regards, JeyB



Test script:
---
?php

try

{

$stack = new DOTNET(mscorlib, System.Collections.Stack);

$stack-Push(.Net);

$stack-Push(Hello );

echo $stack-Pop() . $stack-Pop();

}