Bug #74223 [Com]: db2 table locks during commit after hitting max_execution_time
| From: | j_a_v_i at hotmail dot com | Date: | Fri, 05 Jan 2018 12:54:00 +0000 |
| Subject: | Bug #74223 [Com]: db2 table locks during commit after hitting max_execution_time | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-213386@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=74223&edit=1
ID: 74223
Comment by: j_a_v_i at hotmail dot com
Reported by: giacomo dot fontanella at carige dot it
Summary: db2 table locks during commit after hitting
max_execution_time
Status: Open
Type: Bug
Package: PDO ODBC
Operating System: windows server 2008 R2
PHP Version: 5.6.30
Block user comment: N
Private report: N
New Comment:
Same problem here.
We have been facing this issue during years with different versions of PHP from 5.3 to 5.6 but in
Linux server.
The only solution we found is killing the server each time it happens and to create scripts to kill
process when they detect that happening.
Any chance this be solved?
Previous Comments:
------------------------------------------------------------------------
[2017-03-08 10:14:41] spam2 at rhsoft dot net
> PHP: 5.6.30
> Seems similar to bug #63576, reported for php 5.3.16
PHP 5.6 is as you should know EOL and won't get any updates except high critial security
patches
------------------------------------------------------------------------
[2017-03-08 10:04:20] giacomo dot fontanella at carige dot it
Description:
------------
Any script invoked through an Apache webserver that includes odbc calls to a IBM db2 database leaves
an open application on it if max_execution_timeout is reached. This can lead to db locks impossible
to resolve, unless either you kill the hanging process on db2 or you restart the webserver service.
For example, a Reorg operation that should take just few seconds wouldn't start unless the
hanging process is resolved.
Seems similar to bug #63576, reported for php 5.3.16.
My configuration is as follows:
WEBSERVER
OS: Windows server 2008 R2
webserver: Apache 2.4.23, VC11 compiler
PHP: 5.6.30, MSVC11 compiler
DBSERVER
OS: Windows server 2008 R2
database: IBM DB2 9.7.8
Test script:
---------------
<?php
set_time_limit (1);
include("../gestione_connessione.php");
$i = 0;
while(1){
$rs = odbc_exec($cn,"SELECT COUNT(*) as N_RECORD FROM DBTEST.TB_TEST");
echo "<br>".$i." ".odbc_result($rs,"N_RECORD");
$i++;
}
?>
Expected result:
----------------
Loading halted after 1 second, no after effects.
Actual result:
--------------
Loading halted after 1 second, this is the error in log file:
[Wed Mar 08 10:13:32.744279 2017] [:error] [pid 4872:tid 2064] [client xx.xx.xx.xx:62549] PHP Fatal
error: Maximum execution time of 1 second exceeded in [PATH]\\test_lock.php on line 8
On the db2 server remains a httpd.exe application in UOW waiting status:
(taken from db2 monitor)
ID: 7679
Application name: httpd.exe
OS user: [Account assigned to apache service]
DB user: [db2 user]
Status: UOW witing
Last operation: SQL fetch
DB: [db instance]
Connect time: 08/03/2017 10.13.33
This application hangs indefinitely; if I launch a REORG on DBTEST.TB_TEST, this is what I get from
the db2 monitor for the related process:
ID: 7712
Application name: db2bp.exe
OS user: [admin account]
DB user: [admin account]
Status: Lock wait
Last operation: Reorg
DB: [db instance]
Connect Time: 08/03/2017 10.51.08
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=74223&edit=1