Bug #76446 [Csd]: zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc.

From: Date: Wed, 13 Jun 2018 10:38:21 +0000
Subject: Bug #76446 [Csd]: zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-215677@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=76446&edit=1 ID: 76446 Updated by: cmb@php.net Reported by: spam2 at rhsoft dot net Summary: zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc. Status: Closed Type: Bug Package: Reproducible crash PHP Version: master-Git-2018-06-11 (Git) -Assigned To: +Assigned To: cmb Block user comment: N Private report: N New Comment: > this one is indeed fixed now bu topcache obviously ha still > terrible problems given that with opcache disabled the complete > testsuite runs without any warning Thanks for reporting! Since this is apparently another issue, though, I've filed it as bug #76466. Previous Comments: ------------------------------------------------------------------------ [2018-06-13 09:02:32] spam2 at rhsoft dot net this one is indeed fixed now bu topcache obviously ha still terrible problems given that with opcache disabled the complete testsuite runs without any warning hell, how can that lead to Duplicate column name 'pal_field1' /** * Ziel-Tabelle neu anlegen * * @param bool $only_if_not_exists * @param bool $tmp * @return void * @access private */ private function create_clear_table($only_if_not_exists=false, $tmp=false): void { /** Wenn angegeben abrechen falls Tabelle existiert */ if($only_if_not_exists) { if($this->cl_api->db->table_exists($this->get_table_name($tmp))) { return; } } /** Datenfeld-Array generieren */ $field_array = [ ['name'=>'pal_id'], ['name'=>'pal_kat', 'type'=>'varchar', 'length'=>255, 'unsigned'=>1] ]; for($i=1; $i<=$this->maxfield; $i++) { if($i == 4 || $i == 6 || $i == 12 || $i == 13) { $type = 'text'; } else { $type = 'varchar'; } $field_array[] = ['name'=>"pal_field{$i}", 'type'=>$type, 'length'=>255, 'unsigned'=>1]; } $field_array[] = ['name'=>'pal_checksum', 'type'=>'varchar', 'length'=>255, 'unsigned'=>1]; $field_array[] = ['name'=>'pal_timestamp', 'type'=>'int', 'length'=>10, 'unsigned'=>1]; /** Tabelle erzeugen und wenn bereits vorhanden im Vorfeld loeschen */ $this->cl_api->db->create_table ( /**$name*/$this->get_table_name($tmp), /**$field_array*/$field_array, /**$key_array*/ [ 'pal_key' => ['type'=>'key', 'fields'=>['pal_kat']], 'pal_fulltext' => ['type'=>'fulltext', 'fields'=>['pal_field2', 'pal_field3', 'pal_field4', 'pal_field5', 'pal_field6', 'pal_field12']], 'import_key' => ['type'=>'unique', 'fields'=>[$this->artikel_nr_field, 'pal_checksum']], ], /**$drop_if_exists*/1 ); } DATABASE-ERROR 1060: localhost/autotest.php - /cms/cms/modules/pal/api_pal.php line 567 (parent call: /cms/cms/modules/pal/api_pal.php on line 645): create table cl_autotest_pal_zsp_stock_tmp (pal_id mediumint(7) unsigned not null auto_increment, pal_kat varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null d! efault '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not n - Duplicate column name 'pal_field1' - 127.0.0.1 ------------------------------------------------------------------------ [2018-06-13 07:17:13] laruence@php.net Automatic comment on behalf of laruence@gmail.com Revision: http://git.php.net/?p=php-src.git;a=commit;h=609385bbf8fc82f334778bdfef5e16b7a3bd72c6 Log: Fixed bug #76446 (zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)-&gt;gc)). ------------------------------------------------------------------------ [2018-06-13 07:09:15] laruence@php.net > However, in this case we are not able to prove that the ROPE_ADD will not generate an error > (e.g. array to string conversion warning). this is checked in may_throw , I think make ROPE_END having side-affect is a safe way for 7.3, we could seek more aggressive way for 7.4 I am going to commit the fix, thanks ------------------------------------------------------------------------ [2018-06-12 22:27:42] cmb@php.net > "just mark ROPE_END as having side-effects with a FIXME that > this may be improved" don't help anybody […] Please try “disable-ROPE_END-dce.patch”. ------------------------------------------------------------------------ [2018-06-12 22:27:06] cmb@php.net The following patch has been added/updated: Patch Name: disable-ROPE_END-dce Revision: 1528842426 URL: https://bugs.php.net/patch-display.php?bug=76446&patch=disable-ROPE_END-dce&revision=1528842426 ------------------------------------------------------------------------ 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=76446 -- Edit this bug report at https://bugs.php.net/bug.php?id=76446&edit=1

« previous php.bugs (#215677) next »